Variables de session
Posté : 02 nov. 2014, 15:42
Bonjour,
Bon, là je craque. Je suis certain qu'il s'agit d'une idiotie qui se cache quelque part, mais ça fait un bout de temps que je la cherche, et pas moyen de la trouver.
Je vous appelle donc à l'aide.
J'ai un formulaire qui me demande des données (jusque-là...). Une fois ces données saisies, j'appelle par submit un fichier php qui vérifie celles-ci, puis inclus un fichier session.php avec une fonction ouverture ()
Cette fonction prend en argument TRUE ou FALSE.
TRUE signifie qu'il s'agit d'une nouvelle session (c'est le cas ici). J'initialise des variables de session :
Au retour de cette fonction, si je teste la valeurs de mes variable $_SESSION, elles sont bonnes.
J'inclue ensuite un fichier php qui est un formulaire et demande d'autres données.
Au submit de celui-ci, j'ouvre un autre fichier php qui :
-inclus de nouveau session.php.
Appelle la fonction ouverture() avec cette fois FALSE en argument signifiant qu'il ne s'agit pas d'une première ouverture. Ceci pour maintenant tester que mes variables de Session existent et sont correctes pour accepter ou refuser ce travail.
Dans ma fonction ouverture et dans ce cas (ELSE en majuscules), j'ai fait un affichage de toutes mes variables de session : Il n'y a plus rien.
Et là, ça me dépasse.
Deux jours que je tourne autour; je n'arrive plus à voir quoi que ce soit.
Et vous ?
Merci d'avance
Michel
EDIT : Je rajoute que si je vais voir mes cookies, je trouve bien le cookie facture et le cookie PHPSESSID.
Par contre, si je vais dans le dossier divers/session du session_save_path() je ne trouve rien.
Bon, là je craque. Je suis certain qu'il s'agit d'une idiotie qui se cache quelque part, mais ça fait un bout de temps que je la cherche, et pas moyen de la trouver.
Je vous appelle donc à l'aide.
J'ai un formulaire qui me demande des données (jusque-là...). Une fois ces données saisies, j'appelle par submit un fichier php qui vérifie celles-ci, puis inclus un fichier session.php avec une fonction ouverture ()
Cette fonction prend en argument TRUE ou FALSE.
TRUE signifie qu'il s'agit d'une nouvelle session (c'est le cas ici). J'initialise des variables de session :
function ouverture($premier =TRUE) { //return TRUE si ok, FALSE autrement
if ($premier) { //nouvelle session
//Sécurisation des sessions
session_save_path(realpath(dirname($_SERVER['DOCUMENT_ROOT'])."divers/session"));
//...J'ai coupé car long et sans interet dans mon problème
if (!session_start()) return FALSE; //si l'ouverture de session échoue
session_regenerate_id(TRUE);
if (isset($_SERVER["REMOTE_ADDR"])) $_SESSION["ip1"] =$_SERVER["REMOTE_ADDR"]; //mémorisation adresse ip (ou proxy)
else $_SESSION["ip1"] ="inconnu";
//Mémorisation Adresse ip derrière proxy
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) $_SESSION["ip2"] =$_SERVER["HTTP_X_FORWARDED_FOR"];
else $_SESSION["ip2"] ="inconnu";
//Mémorisation du navigateur
if (isset($_SERVER["HTTP_USER_AGENT"])) $_SESSION["navigateur"] =$_SERVER["HTTP_USER_AGENT"];
else $_SESSION["navigateur"] ="inconnu";
$_SESSION["idauto"] =session_id(); //pas vraiment sûr de l'utilité...
$_SESSION["cookie"] =mt_rand(0,1000); //Création valeur aléatoire
$_SESSION["appel"] =""; //variable permettant de vérifier quel fichier à appeler le fichier recourant à la session
setcookie("facture", $_SESSION["cookie"],0); //Création d'un cookie contenant cette valeur aléatoire
return TRUE;
} ELSE { //Ce n'est pas une ouverture de session, on vérifie que les valeurs de session sont bonnes
if (!session_start()) return FALSE; //si l'ouverture de session échoue
echo ($_SESSION["ip1"]." ip1<br>");
echo ($_SESSION["ip2"]." ip2<br>");
echo ($_SESSION["navigateur"]." navigateur<br>");
echo ($_SESSION["idauto"]." idauto<br>");
echo ($_SESSION["cookie"]." cookie<br>");
echo ($_SESSION["appel"]." appel<br>");
exit(0);
J'ai coupé ce qui n'est pas intéressant.Au retour de cette fonction, si je teste la valeurs de mes variable $_SESSION, elles sont bonnes.
J'inclue ensuite un fichier php qui est un formulaire et demande d'autres données.
Au submit de celui-ci, j'ouvre un autre fichier php qui :
-inclus de nouveau session.php.
Appelle la fonction ouverture() avec cette fois FALSE en argument signifiant qu'il ne s'agit pas d'une première ouverture. Ceci pour maintenant tester que mes variables de Session existent et sont correctes pour accepter ou refuser ce travail.
Dans ma fonction ouverture et dans ce cas (ELSE en majuscules), j'ai fait un affichage de toutes mes variables de session : Il n'y a plus rien.
Et là, ça me dépasse.
Deux jours que je tourne autour; je n'arrive plus à voir quoi que ce soit.
Et vous ?
Merci d'avance
Michel
EDIT : Je rajoute que si je vais voir mes cookies, je trouve bien le cookie facture et le cookie PHPSESSID.
Par contre, si je vais dans le dossier divers/session du session_save_path() je ne trouve rien.