Bonjour,
un bug sur lequel je bute depuis plusieurs jours :
Je suis sur une release2 d'OVH en Gentoo.
je fais une première page de formulaire avec <? session_start(); ?>
Dans ce formulaire, je crée un token :
$token = md5(uniqid(rand(), true));
j'enregistre le token comme variable de session : $_SESSION['token']=$token;
Pour débugger , je le fais écrire cette variable :
echo "token = $_SESSION['token']" <br>;
ainsi que l'identifiant de session.
Mon formulaire envoie (en get) le token qui est comparé à la variable de session pour activer la page 2. Ca ne fonctionne pas.
Je reste sur la page 1, je rafraîchis, je note le session _ID et par ftp je le télécharge et l'ouvre : la variable de session token est différente et correspond à celle qui sera lue dans la page 2 ?????
Alors que la page 1 relis bien la variable stockée, celle qui apparaît dans le fichier de session est différente. Si je remplace le token par une chaîne de caractères 'mavariable', alors là, tout est OK, la variable de session affichée dans la page1, celle affichée dans la page2 et celle contenue dans le fichier session_id est bien 'mavariable'.
Quelqu'un a t'il une idée ? J'ai une vingtaine de sites, ce problème ce déclare aléatoirement sur 2 sites.
le code de la page 1:
le code de la page 2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <?PHP ini_set('session.save_path','/home/xxxxxxxx/www/sessions'); session_start(); ?> $token = md5(uniqid()); $_SESSION['token'] = $token; echo "tok=".$token." et session = ".$_SESSION['token']." <br>"; $nom = session_name(); $id = session_id(); echo "nom session: $nom<br>"; echo "id session: $id<br>"; //le lien pour agrandir l'image : <a href="javascript:JOpenWn('window_rdp.php?img_name= <?echo $image;?>&img_w=<?echo $width;?>&img_h=<?echo $height;?>&tok=<?echo $token;?>','photo','scrollbars=yes,resizable=yes,w idth=<?echo $width2;?>,height=<?echo $height2;?>')"> <img src="<?echo $image_m;?>" width="75" alt="clic pour agrandir"></a>
Ces codes sont à l'identique de ceux qui fonctionnent sur d'autres sites hébergés sur le même serveur et configurés de la même manière.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php ini_set('session.save_path','../sessions'); session_start(); $tok=$_GET['tok'] ; $session=$_SESSION['token']; //echo "tok=".$tok." et session = ".$_SESSION['token']." <br>"; if (isset($_SESSION['token'])&& $tok == $_SESSION['token']){ ...}
La question est de comprendre pourquoi quand je fais en page 1
$_SESSION['token'] = $token;
echo " session = ".$_SESSION['token']." <br>";
je ne retrouve pas cette variable sauvegardée dans le fichier de session alors que le echo est OK ???
Merci pour votre aide.
Partager