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
smilingutopie - 30 août 2008 à 22:39
A voir également:
- PB $_SESSION quand je passe de php4 a php5
- Voir mot de passe wifi android - Guide
- Mot de passe administrateur - Guide
- Identifiant et mot de passe - Guide
- Trousseau mot de passe iphone - Guide
- Réinitialiser pc sans mot de passe - Guide
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 :
ç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
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
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.
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.
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
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.
$maintenant = date("Y-m-d");
if(isset($_SESSION['Stest']) && $_SESSION['Stest'] == 1)
{
$maintenant = $date;
echo $maintenant;
}
je désespère T_T.
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'
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'
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
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é ^^.
Merci de m'avoir un peu fais avancé ^^.
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
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?
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
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?
22 févr. 2008 à 11:14
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