user_add

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans ce forum.

Modérateur: Equipe

Re: user_add

Messagepar sonik1st » 03 Oct 2008 à 16:07

et donc ?...
Même si la fonction session_begin() est une fonction PHPBB, Gryffondor a-t-il raison sur le fait qu'appeler cette fonction réinitialise les varaiables de session ?

PS : Il a peut être mal répondu, mais au moins il a tenté de me répondre lui :wink:
sonik1st
Posteur néophyte
Posteur néophyte
 
Messages: 15
Inscription: 01 Oct 2008 à 17:11

Re: user_add

Messagepar ErnadoO » 03 Oct 2008 à 16:27

sonik1st a écrit:PS : Il a peut être mal répondu, mais au moins il a tenté de me répondre lui :wink:

C'est la blague du jour ou caméra cachée? Je vous ai dis que ce qui n'allait pas:
ErnadoO a écrit:manquerait pas un petit session_start(); en début de fichier?

ErnadoO a écrit:session_start() c'est une fonction php pour initialiser le système de session php, ligne obligatoire pour accéder au tableau $_SESSION

Donc ce genre de phrase vous vous les gardez, ou bien vous ouvrez les yeux, au choix.
Même si la fonction session_begin() est une fonction PHPBB, Gryffondor a-t-il raison sur le fait qu'appeler cette fonction réinitialise les variables de session ?

Outre le fait que ce n'est pas ce qu'il dit, je le répète, Gryffondor se plante et en plus ces deux phrases sont complètement contradictoires: Comment l'inclusion de fichier permettant de déclarer une fonction servant, soit disant, à récupérer le tableau $_SESSION (en l'occurrence, session_begin()) peut lui même vider le tableau en question? C'est de un manque de reflexion flagrant
Non, l'initialisation des sessions phpBB ne vide pas le tableau $_SESSION, si c'est vide, c'est uniquement à cause de ce que je dis plus haut
ErnadoO
 

Re: user_add

Messagepar sonik1st » 03 Oct 2008 à 16:52

Ah oui désolé, je n'avais pas vu ta réponse et n'ai fait que suivre le lien de l'alerte email qui m'a emmené seulement à la réponse de gryffondor. Donc encore toutes mes excuses de t'avoir froissé :oops: :wink:

Quoiqu'il en soit le problème ne vient pas du session_start(), car j'en ai un bien au dessus et lorsque je fais un var_dump de ma variable de session avant le code PHPBB, ma variable est bel est bien pleine, mais ce même var_dump après le code me renvoie NULL
sonik1st
Posteur néophyte
Posteur néophyte
 
Messages: 15
Inscription: 01 Oct 2008 à 17:11

Re: user_add

Messagepar ErnadoO » 03 Oct 2008 à 16:57

Il n'est pas dans le code que tu as donné, si tu ne donnes pas tout au complet on passe peut être à coté de quelque chose :D

Pour info, le code suivant récupère bien le contenu de $_SESSION['cl_user'] (qui est une chaine de caractère définie dans un autre fichier)

Code: Tout sélectionner
<?php
session_start
();
$cl_user=unserialize($_SESSION['cl_user']);
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include(
$phpbb_root_path . 'common.' . $phpEx);

$user->session_begin();
$auth->acl($user->data);
$user->setup();
echo $_SESSION['cl_user'];

session_unset();
session_destroy();

?>

Commence par oublier ton var_dump() et unserialize() et test juste si tu récupères bien le tableau $_SESSION[] après session_begin() de phpbb car mon code marchant, il n'y a pas de raison que ça ne marche pas chez toi (a moins encore une fois que tu n'ai pas donné tout le code que tu utilises)

;)
ErnadoO
 

Re: user_add

Messagepar sonik1st » 03 Oct 2008 à 17:36

alors sans le unserialize, il m'affiche "Object"
Donc pour vérifier si l'objet contient toujours mes valeurs j'ai fait le debugage suivant
Code: Tout sélectionner
   $formInscription=unserialize($_SESSION['formInscription']);
   
   echo 'test 1 : '.$formInscription->champ['user']['login']['value'].'<br>';
   define('IN_PHPBB', true);
   $phpbb_root_path = FORUM_PATH;
   $phpEx = substr(strrchr(__FILE__, '.'), 1);
   echo 'test 2 : '.$formInscription->champ['user']['login']['value'].'<br>';
   include($phpbb_root_path . 'common.' . $phpEx);
   echo 'test 3 : '.$formInscription->champ['user']['login']['value'].'<br>';
   include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
   echo 'test 4 : '.$formInscription->champ['user']['login']['value'].'<br>';
   $user->session_begin();
   $auth->acl($user->data);
   $user->setup();
   echo 'test 5 : '.$formInscription->champ['user']['login']['value'].'<br>';


Et ceci me retourne cela :
test 1 : ma valeur
test 2 : ma valeur
test 3 :
test 4 :
test 5 :

Ma variable se vide donc après l'include du "common.php", pourquoi et comment faire ?

PS : je suis impressionné de la rapidité des réponses ! :wink:
sonik1st
Posteur néophyte
Posteur néophyte
 
Messages: 15
Inscription: 01 Oct 2008 à 17:11

Re: user_add

Messagepar sonik1st » 03 Oct 2008 à 17:39

En regardant le common.php je suis tombé de suite sur ca :
Code: Tout sélectionner
function deregister_globals()
{
   $not_unset = array(
      'GLOBALS'   => true,
      '_GET'      => true,
      '_POST'      => true,
      '_COOKIE'   => true,
      '_REQUEST'   => true,
      '_SERVER'   => true,
      '_SESSION'   => true,
      '_ENV'      => true,
      '_FILES'   => true,
      'phpEx'      => true,
      'phpbb_root_path'   => true
   );
....

Serait-ce dû à cette fonction, si oui puis-je changer la valeur de la variable '_SESSION' à false sans que cela fasse bugger tout le forum ?
sonik1st
Posteur néophyte
Posteur néophyte
 
Messages: 15
Inscription: 01 Oct 2008 à 17:11

Re: user_add

Messagepar ErnadoO » 03 Oct 2008 à 17:55

Non ça n'a rien à voir

commence par faire ce que je t'ai suggéré, à savoir tester après common.php, le contenu du tableau $_SESSION et non pas l'objet $formInscription
ErnadoO
 

Re: user_add

Messagepar sonik1st » 03 Oct 2008 à 18:10

Oui c'est ce que j'avais fait et répondu cela m'affiche "Object" à chaque niveau de test. Donc je suis passé à l'étape d'après et cela m'a donné ce que je t'ai donné.
sonik1st
Posteur néophyte
Posteur néophyte
 
Messages: 15
Inscription: 01 Oct 2008 à 17:11

Re: user_add

Messagepar ErnadoO » 03 Oct 2008 à 18:29

Donc la conclusion est simple: common.php neutralise tout objet initialisé au préalable, ce n'est donc pas un problème de session :)

Tu dois absolument récupérer un objet de ton tableau $_SESSIONS?
ErnadoO
 

Re: user_add

Messagepar Gryffondor » 03 Oct 2008 à 18:55

Donc common.php neutralise tout objet initialisé au préalable.
J'ai pas dis ça comme sa mais je suis persuadé que c'est ce que j'ai voulu dire :mrgreen: .
'fin bref :roll:
[url="http://www.last-survivor.com"]Last Survivor: La fin du monde ne fait que commencer...[/url]
Avatar de l’utilisateur
Gryffondor
Maître des floodeurs
Maître des floodeurs
 
Messages: 2314
Inscription: 31 Juil 2006 à 19:48
Localisation: A Last Survivor : Là où la fin du monde ne fait que commencer!
Avertissements: 1

Re: user_add

Messagepar ErnadoO » 03 Oct 2008 à 19:08

j'aurais dis que common envoie un homme sur la lune que tu me répondrais la même chose? :roll:
car vider un tableau de session et supprimer un objet, ça n'a rien à voir, sauf pour ceux qui veulent avoir raison.
Mais surtout, là on parle d'un cas particulier, car chez moi en local cela ne se vérifie pas, il faut donc trouver pourquoi

Dommage... :roll:
ErnadoO
 

Re: user_add

Messagepar sonik1st » 04 Oct 2008 à 10:01

Je vais donc tester de récupérer mes variables "objet" dans des variables "simples" avant le "common" et tenter de réinitialiser ma session après mes insertions add_user. Je vous tiens au courant.
sonik1st
Posteur néophyte
Posteur néophyte
 
Messages: 15
Inscription: 01 Oct 2008 à 17:11

Re: user_add

Messagepar sonik1st » 06 Oct 2008 à 14:33

BON !

Il semblerait que j'ai trouvé ma réponse. Je résume :
1/ J'ai fait le test avec $formInscription=unserialize($_SESSION['formInscription']) : ca ne marche pas
2/ J'ai fait le test avec $mavariable=unserialize($_SESSION['formInscription']) : et là ca marche !
En fait, il semblerait que la fonction de phpBB qui libère les variables de sessions m'a également supprimé ma variable "simple" vu qu'elle portait le même nom que ma varaible de session.
Donc moyennant cette petite bidouille qui coûte pas trop cher en code, je vais pouvoir m'en sortir :mrgreen:
Merci à tous et Que La Force Soit Avec Vous !
sonik1st
Posteur néophyte
Posteur néophyte
 
Messages: 15
Inscription: 01 Oct 2008 à 17:11

Re: user_add

Messagepar ErnadoO » 06 Oct 2008 à 15:03

sonik1st a écrit:1/ J'ai fait le test avec $formInscription=unserialize($_SESSION['formInscription']) : ca ne marche pas
2/ J'ai fait le test avec $mavariable=unserialize($_SESSION['formInscription']) : et là ca marche !
En fait, il semblerait que la fonction de phpBB qui libère les variables de sessions m'a également supprimé ma variable "simple" vu qu'elle portait le même nom que ma varaible de session.

J'en était arrivé aux mêmes conclusions vendredi :)
ErnadoO
 

Re: user_add

Messagepar sonik1st » 06 Oct 2008 à 15:16

hmmmm pas vu de réponse claire ou alors je suis vraiment miro, mais en tout cas tu m'as bien aidé et puis ca fait du bien de chercher un peu et si tel était ton objectif, je t'en remercie encore plus :wink:
sonik1st
Posteur néophyte
Posteur néophyte
 
Messages: 15
Inscription: 01 Oct 2008 à 17:11

PrécédenteSuivante

Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 13 invités

cron
Partenaires : phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB3 Styles • phpBB podpora • phpBB Portugal    Liens : Net Avenir • PromoBenef • Ticket Gagnant