Salut, alors mon easyphp c'est le 1.8
lorsque je clique sur 'se connecter' (qui est dans index.php), je fais $_SESSION['user']=$pseudo et je renvoie sur index2.php?pseudo=$pseudo
dans index2.php, je fais $_SESSION['pseudo']=$_GET['pseudo']; et après je vérifie comme ceci:
if($_SESSION['user']==$_SESSION['pseudo']){
...blabla
}
mais la il ne rentre pas dans la boucle, et en faisant des echo, j'ai vu que $_SESSION['user'] n'existait pas dans index2.php
ta variable user est enregistré comme variable de session. Il n'est pas nessecaire de la transmettre dans l'url. un simple SESSION['user'] la recuperera dans index2.php
.
Il faut commencer cependant ton fichier php par une instruction session_start(). Ce doit être la première ligne de code de ton fichier.
ça veut dire quoi ça fonctionne sur un retour POST? sinon j'ai fait juste avant un setcookie, mais je ne sait pas si le setcookie ecrit dans le header (je pense que si mais je suis pas sûr)
Un retour POST : la page s'appelle elle même par la méthode POST.
1) la page, index.php par exemple, s'affiche pour demander les identifiants. Elle contient un formulaire dont l'action est de rappeler la page elle même par la méthode POST :
2) L'utilisateur saisit ses données personnelles puis clique sur le bouton submit()
3) La page est envoyée au serveur, et sa partie serveur (php) verifie que les identifiants sont corrects.
4) la page revient vers l'utilisateur (retour POST), pour afficher confirmation ou redemander les identifiants en cas d'erreur. Si les identifiants sont bons alors la page qui vient de se rappeler redirige l'utilisateur vers index2.php dans ton exemple (partie sécurisée du site) :
ça ne marche toujours pas. pourtant c'est bete, je fais dans mon index $_SESSION['user]=$pseudo. puis, avant que je fasse la redirection, je fais un echo de $_SESSION['user'], et la il m'affiche bien le pseudo. Par contre, une fois la redirection faite, il me dit undefined index:user lorsque je fais un echo de $_SESSION['user'].
if ( $Nom && $Mdp ) { $Requete sprintf("SELECT Mdp FROM Membres WHERE Nom %s", ProtegerVariable($Nom));
$Reponse = mysql_query($Requete) or die('Erreur SQL :
'.mysql_error());
if (mysql_num_rows($Reponse) > 0) {
$Utilisateur = mysql_fetch_assoc($Reponse);
if (md5($Mdp) == $Utilisateur['Mdp'])
if ( isset($_SESSION['Nom']) ) {
$Erreur = true;
$MsgErr = "Quelqu'un est déjà connecté sous le nom de : ".$_SESSION['Nom'];
} else
$loginOK = true;
}
}
j'ai compris pour cela, mais le probleme c'est que dans le fichier bonjour.php (enfin son équivalent avec mon code), moi il me dit que $_SESSION['nom'] n'existe pas!!! Et je veux le récupérer...
Il faut mettre session_start() au début de chaque fichier qui va utiliser des variables de session et verifier que cette instruction s'est bien déroulée.
Ton problème vient peut être de là.
Si tu oublies de le faire avant la redirection les variables sont perdues parce que le traitement du fichier ne va pas jusqu'au bout et l'instruction session_write_close() qui est executée normalement automatiquement à la fin du traitement n'est pas réalisée. Voili voilou.