Bonjour, je suis en train de découvrir les variablles sessions et je rencontre actuellement le problème que voici
J'ai une première page, page1.php
qui défini un formulaire et qui l'affiche s'il n'a pas encoré été envoyé. Lorsque le formulaire est envoyé, une recherche dans MySql est établie pour vérifier que le membre existe et, dans ce cas, un message est affiché, ainsi qu'un lien pointant vers une page2.php.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 <? include("connect.php"); //on initialise une session session_start(); if (!isset($_POST["send"])) { //Si le formulaire n'est pas envoyé, on l'affiche ?> <form method="post" action="page1.php"> Nom d'utilisateur : <input type="text" name="mlogin"><br /> Mot de passe : <input type="password" name="mpass"><br /> <input type="submit" name="send" value="log in"> </form> <? } else { $membre=AddSlashes($_POST["mlogin"]); $passw=$_POST["mpass"]; $sql="SELECT pass FROM membres WHERE login='$membre'"; $req=mysql_query($sql); $res=mysql_fetch_array($req); if ($passw!= NULL && $res['pass']==$passw) { $_session["membre"]=$membre; echo "Bienvenue "; echo $membre; echo "<p>"; echo "<a href=\"page2.php\"> entrez dans l'espace membre</a>"; } else { echo "mauvais login ou pass"; } } ?>
Jusque là, pas de problème. Tout fonctionne.
Le code de ma page2.php est le suivant ;
et, lorsque dans la page 1, après avoir authentifié un utilisateur,je clique sur le lien m'amenant vers la page 2, j'obtiens un message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <? include("connect.php"); session_start(); if (isset($_SESSION["membre"])) { $sql="SELECT pass FROM membres WHERE login='".$_SESSION["membre"]."'"; $req=mysql_query($sql); $res=mysql_fetch_array($req); echo "bienveue".$_session["membre"]; echo "votre mot de passe est ".$res['pass']; } else { echo $_SESSION["membre"]; echo "désolés, vous n'avez pas accès à cette page. Veuillez vous loguer"; } ?>
Undefined index: membre in e:\easyphp\www\newlook\login\page2.php on line 14
et c'est le test Else qui est exécuté, alors que de devrait être le premier test qui devrait l'être puisque l'utilisateur a bien été correctement identifié à la page 1.
ma page connect.php est classique
Quelqu'un peut-il me dire quelle erreur je fais ? Comment se fait il qu'apparemment la variable session 'membre' créée en page1.php ne soit pas reconnue en page2.php ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <? //initialisation des variables $serveur = "localhost"; $login = "root"; $pass = ""; $base = "jncoffy"; // connexion au serveur $id= MYSQL_CONNECT($serveur,$login,$pass); //connexion à la base de données //(une autre version de procéder) mysql_select_db("$base"); mysql_select_db($base,$id); ?>
J'ai cherché dans tous les sens sans trouver...
Jean Noël









Répondre avec citation
Partager