JeuWeb - Crée ton jeu par navigateur
Bug session - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Bug session (/showthread.php?tid=5279)



Bug session - Tryounette - 23-02-2011

Salut à tous,

Je vais essayé de vous expliquer un petit problème que j'ai avec les sessions PHP. Je travaille avec une BD mysql et je récupère des données que je stocke dans une session PHP. Mes données stockées en base sont des nombres de grande valeur en général (de l'ordre du milliard voir au dessus)

J'ai fais un petit script qui reproduit le même phénomène.

Voilà mon code:

<?php
session_start();

//session_destroy();

unset($_SESSION['header']);
unset($_SESSION['datas']);
unset($_SESSION['colors']);

$_SESSION['header'] = array();
$_SESSION['datas'] = array();
$_SESSION['colors'] = array();

for($i=0; $i<24; $i++) $_SESSION['datas'][0][$i] = $i*$i*$i*$i*$i*$i*$i*$i*$i;

$_SESSION['header'][0] = 'header0';
$_SESSION['colors'][0] = 'color0';

echo "<pre>-------------var_dump session";
var_dump($_SESSION);
echo "fin var_dump session--------------------</pre>";
?>

Au 1er chargement de la page, tout se passe bien:
Citation :-------------var_dump session

array
'header' =>
array
0 => string 'header0' (length=7)
'datas' =>
array
0 =>
array
0 => int 0
1 => int 1
2 => int 512
3 => int 19683
4 => int 262144
5 => int 1953125
6 => int 10077696
7 => int 40353607
8 => int 134217728
9 => int 387420489
10 => int 1000000000
11 => float 2357947691
12 => float 5159780352
13 => float 10604499373
14 => float 20661046784
15 => float 38443359375
16 => float 68719476736
17 => float 118587876497
18 => float 198359290368
19 => float 322687697779
20 => float 512000000000
21 => float 794280046581
22 => float 1207269217792
23 => float 1801152661463
'colors' =>
array
0 => string 'color0' (length=6)

fin var_dump session--------------------


Après un rechargement de la page (F5):
Citation :-------------var_dump session

array
'd:198359290367.:;i:19;d:322687697779;i:20;d:511:00000000;i:21;d:794280046580.:;i:22;d:1207269217792;i:23;d:1801152661463;}}colors' =>
array
0 => string 'color0' (length=6)
'header' =>
array
0 => string 'header0' (length=7)
'datas' =>
array
0 =>
array
0 => int 0
1 => int 1
2 => int 512
3 => int 19683
4 => int 262144
5 => int 1953125
6 => int 10077696
7 => int 40353607
8 => int 134217728
9 => int 387420489
10 => int 1000000000
11 => float 2357947691
12 => float 5159780352
13 => float 10604499373
14 => float 20661046784
15 => float 38443359375
16 => float 68719476736
17 => float 118587876497
18 => float 198359290368
19 => float 322687697779
20 => float 512000000000
21 => float 794280046581
22 => float 1207269217792
23 => float 1801152661463
'colors' =>
array
0 => string 'color0' (length=6)

fin var_dump session--------------------


Il me créé "cette chose bizarre" qui ressemble à une variable sérialisé et je ne sais pas d'où elle sort.

Si vous avez une idée du pourquoi du comment, je suis preneur.
Tryou


RE: Bug session - christouphe - 23-02-2011

Tu n'as même pas remarqué que c'est ton tableau de session sérialisé...


d:198359290367.:;i:19;d:322687697779;i:20;d:511:00000000;i:21;d:794280046580.:;i:22;d:1207269217792;i:23;d:1801152661463;}}

0 => int 0
1 => int 1
2 => int 512
3 => int 19683
4 => int 262144
5 => int 1953125
6 => int 10077696
7 => int 40353607
8 => int 134217728
9 => int 387420489
10 => int 1000000000
11 => float 2357947691
12 => float 5159780352
13 => float 10604499373
14 => float 20661046784
15 => float 38443359375
16 => float 68719476736
17 => float 118587876497
18 => float 198359290368
19 => float 322687697779
20 => float 512000000000
21 => float 794280046581
22 => float 1207269217792
23 => float 1801152661463


RE: Bug session - Tryounette - 23-02-2011

Si si j'avais remarqué... Et tu peux même remarquer que les 2 valeurs précédentes sérialisés sont la valeur 20 et 21 du tableau mais avec une sorte de -1.

Mais la vrai question c'est de savoir pourquoi il a été sérialisé? et pourquoi il est là ?


RE: Bug session - Roworll - 23-02-2011

Les variables de session sont sérialisés quand elles sont stockées dans le fichier de session.
D'ailleurs, en regardant dans le php.ini de ta configuration, tu peux voir ou sont stockés les fichier de session et les ouvrir toi même avec un éditeur de texte.

Reste à savoir pourquoi il apparaît.
j'ai repris ton code donné en exemple et je n'ai pas le problème.
est-tu sur de nous avoir transmis la version que tu utilises ? Sinon, ça peut dépendre de ta configuration, ta version de PHP, d'éventuels modules, que sais-je encore.


RE: Bug session - Tryounette - 23-02-2011

Effectivement, en testant mon script sur un serveur, il marche très bien...
Pourtant en vérifiant le phpinfo du serveur et celui de mon environnement local (un xampp que j'ai pas bidouiller), ils sont identiques sur la configuration des sessions.