PB $_SESSION quand je passe de php4 a php5

Fermé
RDB77 Messages postés 66 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 4 avril 2008 - 22 févr. 2008 à 10:13
 smilingutopie - 30 août 2008 à 22:39
Bonjour,
Je suis entrain d'essayer de reglé un problème sur un site qui fonctionnait très bien en php4 et lorsque l'on a passer le site en php5 le $_SESSION ne me retourne rien. J'ai rajouté en haut du le page:

foreach($_GET as $key => $value)
${$key} = $value;

foreach($_POST as $key => $value)
${$key} = $value;

foreach($_FILES as $key => $value)
${$key} = $value;

pour les problème que j'avais pour les $_GET... mais apres quang je fait:

$maintenant = date("Y-m-d");
if(isset($_SESSION['Stest']) && $_SESSION['Stest'] == 1)
{
$maintenant = $date;
echo $maintenant;
}

quoi qu'il arrive le programme ne rentre jamais dans le if. Je voudrais savoir si je peux par remplacer:
if(isset($_SESSION['Stest']) && $_SESSION['Stest'] == 1)
par autre chose.
A voir également:

7 réponses

Bonjour

if(isset($_SESSION['Stest']) && $_SESSION['Stest'] == 1) devrat fonctionner en php5.
essaye
if(isset($_SESSION['Stest']))
echo $_SESSION['Stest'];
else
echo 'Stest pas défini';

juste pour vérifier

D'autre part, ne refais jamais ça :

foreach($_GET as $key => $value) 
${$key} = $value; 

foreach($_POST as $key => $value) 
${$key} = $value; 

foreach($_FILES as $key => $value) 
${$key} = $value;



ça permet à n'importe qui de créer les variables qu'il veut dans ton script et donc éventuellement de faire croire qu'il s'est identifié, qu'il est un admin ...
Ne récupère que les variables que tu as effectivement créées, et par la méthode (GET ou POST) correspondante. C'est (un peu) plus laborieux, mais indispensable
0
RDB77 Messages postés 66 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 4 avril 2008 7
22 févr. 2008 à 11:14
J'ai essayer:
if(isset($_SESSION['Stest']))
echo $_SESSION['Stest'];
else
echo 'Stest pas défini';
et il m'affiche Stest pas défini

Mais le problème c'est que s'est pas moi qui est programmer le site en question et
foreach($_GET as $key => $value)
${$key} = $value;

foreach($_POST as $key => $value)
${$key} = $value;

foreach($_FILES as $key => $value)
${$key} = $value;
c'est encore une autre personne qui l'a mis a cause des problèmes entre php4 et php5 et elle m'as dit que sans cela sa marchais pas donc j'ai laisser comme c'était et j'ai été au problème suivant et je comprend pas pk il va pas cherché Stest et rentre dans la boucle. La page qui est avant celle la c'est:

<?php
foreach($_GET as $key => $value)
${$key} = $value;

foreach($_POST as $key => $value)
${$key} = $value;

foreach($_FILES as $key => $value)
${$key} = $value;

include("../../../connexion.php");
session_start();
session_unregister("Sid");
session_unregister("Snom");
session_unregister("Sprenom");
session_destroy();
session_start();

//on vide les bonnes réponses de TEST
$sqldelete="DELETE FROM etatJoueurtemp WHERE idJoueur='1'";
mysql_query($sqldelete) or die("Erreur : ".mysql_error()." sur ".$sqldelete);
$sqldelete2="DELETE FROM reponsestemp WHERE idJoueur='1'";
mysql_query($sqldelete2) or die("Erreur : ".mysql_error()." sur ".$sqldelete2);
$sqljoueur="SELECT id,nom,prenom FROM joueur WHERE password='02bd08' AND login='test'";
$appjoueur=mysql_query($sqljoueur) or die("Erreur : ".mysql_error()." sur ".$sqljoueur);
if (mysql_num_rows($appjoueur)=='1')
{
$joueur=mysql_fetch_array($appjoueur);
session_register("Sid");
session_register("Snom");
session_register("Sprenom");
session_register("Sdatetest");
session_register("Stest");
$Stest=1;
$Sid=$joueur["id"];
$Snom=$joueur["nom"];
$Sprenom=$joueur["prenom"];
$Sdatetest=$date;
$compteur="UPDATE joueur SET compteurconn=compteurconn+1 WHERE id='".$Sid."'";
mysql_query($compteur);
//redirection :
?><script language="JavaScript">
window.location="http://.../jeu2/jeu.php?date=<?php echo $Sdatetest; ?>";
</script><?php
}
else
{
//redirection vers l'index [refus=1 permet de mettre le message de mauvais loggage ?>
<script language="JavaScript">
window.location="http://.../jeu2/index.php?msg=erreur";
</script><?php
}
?>

(Elle a mis
foreach($_GET as $key => $value)
${$key} = $value;

foreach($_POST as $key => $value)
${$key} = $value;

foreach($_FILES as $key => $value)
${$key} = $value;
dans tout les .php)
sa fait depuis le debut de la semaine que je suis dessus et je vais pété un cable :s
Merci pour ta réponse
0
juste avant le
if (mysql_num_rows($appjoueur)=='1')
peux-tu insérer
echo 'mysql_num_rows : ',mysql_num_rows($appjoueur),'<BR>';
toujours pour diagnostiquer

Pour ce qui est des foreach, ça marche sûrement mais c'est très dangereux. On en reparlera quand le problème de session sera réglé, si tu veux.
0
RDB77 Messages postés 66 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 4 avril 2008 7
22 févr. 2008 à 12:27
Il me retourne bien 1 donc il fait rentre bien dans le if le problème c'est qu'il envoi pas le Stest et donc rentre pas dans
$maintenant = date("Y-m-d");
if(isset($_SESSION['Stest']) && $_SESSION['Stest'] == 1)
{
$maintenant = $date;
echo $maintenant;
}

je désespère T_T.
0
Il faut remplacer tous les session_register("Sid"); par des $_SESSION['Sid']=$Sid;
idem pour toutes les variables de session
parceque register_globals vaut off (même problème qui a obligé à ajouter les foreach)
comme il est dit dans la doc PHP à la rubrique 'sessions'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RDB77 Messages postés 66 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 4 avril 2008 7
22 févr. 2008 à 17:15
Il y a de l'amélioration merci même si il y a toujours quelque chose qui ne va pas par contre pour les foreach si je l'ai met pas la manip' ne fonction pas donc j'ai été de les laisser c'est bizarre.
Merci de m'avoir un peu fais avancé ^^.
0
RDB77 Messages postés 66 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 4 avril 2008 7
28 févr. 2008 à 14:24
En faite j'ai mal posé le truc parce que le programme fonctionnait avant en php4 et quand on est passer en php5 il y avai quelque piti truc mais facile a arranger donc c'est pas normal que sa fonctionne pas non?
0
RDB77 Messages postés 66 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 4 avril 2008 7
28 févr. 2008 à 14:32
Qu'est ce qu'il faut que je rajoute a mon programme en php4 si je veux le passer en php5?
0
smilingutopie
30 août 2008 à 22:39
J'ai le même problème avez vous trouvé une solution ?
0