Prob Session... Wamp : Que se passe t'il ?

Prob Session... Wamp : Que se passe t'il ? - PHP - Programmation

Marsh Posté le 20-12-2006 à 21:18:18    

Bonjour...
Etant un adepte du PHP, je viens de rencontrer un erreur un peu curieuse...
J'ai 2 pages : Acceuil / Espace.
 
Sur la page acceuil, j'ai un form log/pass avec ce petit script :  
 

Code :
  1. $i=0;
  2. if ((isset($_POST['sendidentif']))&& (!empty($_POST['sendidentif'])))
  3. {
  4.   $log=$_POST['ident'];
  5.   $pass=md5($_POST['psw']);
  6.   $req='SELECT * FROM parent WHERE mdp="'.$pass.'" AND CodeP="'.$log.'"';
  7.   $res=$sess_sql -> execute($req);
  8.   if(mysql_num_rows($res)>0)
  9.   {
  10.       $req2="SELECT * FROM eleve WHERE Codep=$log";
  11.       $res2=$sess_sql -> execute($req2);
  12.       while($tmp=$sess_sql -> traite($res2))
  13.       {   echo $i;
  14.           $i=$i+1;
  15.           $_SESSION[$i]['codee']=$tmp['codeE'];
  16.           $_SESSION[$i]['nom']=$tmp['nome'];
  17.           $_SESSION[$i]['prenom']=$tmp['PrenomE'];
  18.           $_SESSION[$i]['ddn']=$tmp['DateNaissE'];
  19.       }
  20.       var_dump($_SESSION);
  21.       echo '<p class="redir"><a id="redir" href="./espace.php"><center>Veuillez patientez, vous aller etre rediriger dans 8 secondes, cliquez ici si vous voulez etre redirigé de suite.</center></a></p>';
  22.       echo '<meta http-equiv="refresh" content="10; url=./espace.php" >';
  23.   }


 
et sur la page Espace mon $_SESSION est vide...
que se passe t'il ?  
j'ai bien mis  
 

Code :
  1. <?php
  2. session_start();
  3. ?>


 
en haut de mes 2 pages...
config : wamp 1.6.6 sur winXP SP2
merci !

Reply

Marsh Posté le 20-12-2006 à 21:18:18   

Reply

Marsh Posté le 20-12-2006 à 22:04:02    

up !

Reply

Marsh Posté le 21-12-2006 à 06:39:54    

up

Reply

Marsh Posté le 21-12-2006 à 10:31:03    

var_dump($_SESSION);, il t'affiches ce que tu veux?

Reply

Marsh Posté le 21-12-2006 à 10:35:15    

Depuis quand on met des espaces entre autour d'un -> ?[:autobot]
ça passe, ça?[:autobot]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 21-12-2006 à 12:39:52    

oui avec des espaces entre les -> ca passe, j'ai toujours procédé ainsi, mais la n'est pas le sujet...
oui quand je fais un var_dump $_SESSION ca me l'affiche dans la page ou je l'ai affecté (acceuil) , par contre quand j'appel mon autre page (espace) et que je fais ce meme var_dump, il m'affiche array 0 {}  :sweat:  
non je n'ai pas oublié de mettre <?php session_start(); ?> tout en haut des mes 2 pages...


Message édité par Agmoh le 21-12-2006 à 12:41:23
Reply

Marsh Posté le 21-12-2006 à 15:06:54    

As-tu pensé à mettre l'errorlevel à E_ALL? Il y a peut-être quelque chose qui t'échappe pour l'instant...

Reply

Marsh Posté le 21-12-2006 à 20:05:43    


Notice: Undefined variable: _SESSION in C:\wamp\www\Suivetel\espace.php on line 33
 
dans la deuxième page.


Message édité par Agmoh le 21-12-2006 à 20:06:50
Reply

Marsh Posté le 21-12-2006 à 20:27:55    

et ton session_start, il est aussi sur la page d'accueil, car sur la page espace, ca suffit pas je crois. Il faut faire le session_start avant de faire l'affectation

Reply

Marsh Posté le 21-12-2006 à 20:40:31    

J'ai que 2 pages.  
Session_start est au debut des 2.  
C'est pas une erreur de syntaxe. c'est un paramètre dans le php.ini.

Reply

Marsh Posté le 21-12-2006 à 20:40:31   

Reply

Marsh Posté le 21-12-2006 à 23:23:36    

Fais voir ta fameuse page Espace ?

Reply

Marsh Posté le 22-12-2006 à 08:32:51    

Tu es sur de pouvoir utiliser la variable session comme un tableau.. moi je ne crois pas...
 
pourquoi tu ne claque pas une variable de type array, dans une variable de session, ça ferais la même chose que ce que tu souhaite faire, mais en plus propre.

Reply

Marsh Posté le 22-12-2006 à 09:00:35    

chani_t a écrit :

Tu es sur de pouvoir utiliser la variable session comme un tableau.. moi je ne crois pas...


et pourquoi?[:pingouino]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-12-2006 à 10:59:06    

ba disons que perso ça me géne... tu claque un tableau directement sur le variable $_SESSION..., du coups pour retrouver ton tableau, soit tu utilise directement la variable $_SESSION, soit tu doit te débrouiller pour ne sélectionner qu'une partie... enfin bien chiant.
 
alors que si tu passe par une variable intermédiaire, que tu mets dans ta variable $_SESSION.. c'est bien plus simple à traiter, moins de risque d'erreur. exemple :
 
ce que je ne ferais pas : $_SESSION[1][bobo]='bobo'; $_SESSION[1][baba]='baba'; $_SESSION[2][bibi]='bibi';
 
Ce que je privilégierais. $tableau=array (1=>array('bobo'=>'bobo', 'baba'=>'baba'), array('bibi'=>'bibi'));
$_SESSION[tableau]=$tableau;
 
bon c'est juste pour illustrer hein ;)

Reply

Marsh Posté le 22-12-2006 à 11:24:06    

bah c'est pas ça qui va l'empêcher de fonctionner, son truc...[:spamafote]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-12-2006 à 12:00:11    

barf en effet... bon disons que je n'ais rien dis :D.. (ça n'empéche que je n'aime pas cette façon de faire :D...)

Reply

Marsh Posté le 22-12-2006 à 12:09:47    

Et bien après quelque cheveux en moins j'ai trouvé hier soir la source du problème..  
Chani_t a mis le doigt ou il fallais.
 
Si tu fais  
while ($i<5)
{
$_SESSION[$i][Nom]="salut";
$i++
}
 
bah ca va pas marcher lorsque tu va recuper ton $_SESSION sur la deuxième page... alors qu'en fesant  
 
while ($i<5)
{
$_SESSION[Nom][$i]="salut";
$i++
}
ca va marcher... fallait le savoir ca !  
Voila ! merci a tous d'avoir participer !

Reply

Marsh Posté le 22-12-2006 à 12:53:23    

Agmoh a écrit :

Et bien après quelque cheveux en moins j'ai trouvé hier soir la source du problème..
Chani_t a mis le doigt ou il fallais.

 

Si tu fais
while ($i<5)
{
$_SESSION[$i][Nom]="salut";
$i++
}

 

bah ca va pas marcher lorsque tu va recuper ton $_SESSION sur la deuxième page... alors qu'en fesant

 

while ($i<5)
{
$_SESSION[Nom][$i]="salut";
$i++
}
ca va marcher... fallait le savoir ca !
Voila ! merci a tous d'avoir participer !

 

:heink:

 

On n'aurait pas le droit d'utiliser des indices numériques dans $_SESSION ?[:pingouino]


Message édité par skeye le 22-12-2006 à 12:53:32

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-12-2006 à 13:01:47    

je vois ça comme un bug de php, perso...ya rien là-dessus dans la doc...:o


Message édité par skeye le 22-12-2006 à 13:02:00

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-12-2006 à 14:12:03    

en fait si c'est noté ;) :
 
Les clés du tableau $_SESSION sont sujettes aux mêmes limitations que les variables PHP
habituelles, c'est-à-dire qu'elles ne peuvent pas commencer par un nombre, mais commencer par
une lettre ou un souligné '_'. Pour plus de détails, reportez-vous à la section sur les variables .

Reply

Marsh Posté le 22-12-2006 à 14:13:29    

chani_t a écrit :

en fait si c'est noté ;) :

 

Les clés du tableau $_SESSION sont sujettes aux mêmes limitations que les variables PHP
habituelles, c'est-à-dire qu'elles ne peuvent pas commencer par un nombre, mais commencer par
une lettre ou un souligné '_'. Pour plus de détails, reportez-vous à la section sur les variables .

 

J'avais raté ça.:o
C'est ridicule.[:dawa]
$_SESSION se manipule comme un tableau, mais ils l'implémentent de manière à ce que ça ne se comporte pas pareil, en fait.[:dawao]

 

Langage de charlots.:o


Message édité par skeye le 22-12-2006 à 14:13:48

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-12-2006 à 14:23:16    

mouais... enfin les variable style $_post, etc.. sont un peu particuliéres... donc je ne les utiliserais de tout façon pas comme un array standard.. ([Mode tétu ON] et pis je persiste à dire que claquer un tableau directement en session c'est mal [Mode tétu OFF])

Reply

Marsh Posté le 22-12-2006 à 16:34:51    

Nan mais ça suffit [:pingouino]

Reply

Marsh Posté le 22-12-2006 à 17:12:03    

FlorentG a écrit :

Nan mais ça suffit [:pingouino]


hein ? :??:

Reply

Marsh Posté le 22-12-2006 à 17:24:41    

Les trucs genre $_POST ou $_SESSION s'utilisent comme des tableaux standards, c'est voulus par PHP (juste le coup des clés numériques)...

Reply

Marsh Posté le 22-12-2006 à 17:56:40    

C'est bien ce que je dis, vu que ça ne marche pas vraiment pareil, c'est de la merde php.:o


Message édité par skeye le 22-12-2006 à 17:56:49

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed