Bonjour à tous,
j'ai un bon gros problème, qui malgré tous les posts que j'essaye de lire depuis un moment ne se résoud pas...Je commence à me poser beaucoup de questions...
Bon alors pour commencer, parlons des choses qui marchent.
Si je fais deux fichiers :
test1.php :
test2.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php session_start(); $_SESSION['essai']="cela fonctionne !"; echo "<a href=\"test2.php\">vérifier la variable de session</a>"; ?>
Tout marche impéc, je vois bien "cela fonctionne !".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php session_start(); $valeur = (!isset($_SESSION['essai']))?("Cela ne fonctionne pas !"):($_SESSION['essai']); echo $_SESSION['essai']; ?>
Mon problème est lorsque que j'essaye de faire ca via ajax...
Voici mon index :
voici menuLogin.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 <?php session_start(); ?> <html> <head> <meta http-equiv=content-type content="text/html; charset=UTF-8"> </head> <body> <table width="100%" height="100%" border="1"> <tr valign="top"> <td width="20%"> <?php require("menuLogin.php"); ?> </td> </tr> </table> </body> </html>
mon verif.php qui est apellé par mon ajax.request :
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 <table width="100%" height="20%" border="1"> <tr> <td> <form action="" method="post" id="formConnection"> Login : <input type="text" name="login" id="login" value="" /><br /> Mot de passe : <input type="password" name="mdp" id="mdp" value="" /><br /> <input type="button" name="submit" value="envoyer" onclick="verif();"> </form> </td> </tr> <tr> <td> <div id="resultatConnection"></div> </td> </tr> </table> <script src="prototype.js" type="text/javascript"></script> <script type="text/javascript"> function verif(){ var login = document.getElementById('login').value; var mdp = document.getElementById('mdp').value; var url ="verif.php"; new Ajax.Request(url,{ method: 'post', parameters: Form.serialize("formConnection"), onComplete: function(transport) { //transport.responseText sans tous les espaces: if(transport.responseText.replace(/[\s]{2,}/g,"")=="OK"){ window.location.replace("index2.php"); } else{ new Ajax.Updater('resultatConnection', 'connectionRefusee.php'); } }}); } </script>
et enfin mon index2.php qui est apellé si la vérification est OK :
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 <?php //TODO : A VIRER !! //destruction de toutes les variable de sessions if(!empty($_POST['login']) && !empty($_POST['mdp'])) { $login = htmlentities($_POST['login'], ENT_QUOTES); $mdp = htmlentities($_POST['mdp'], ENT_QUOTES); // on cripte le mot de passe envoyé par le formulaire $password_md5 = md5($mdp); require("pass/conf.php"); // Connexion à la base de données $db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd); $db = mysql_select_db($sql_bdd); //création de la requête SQL $sql = "SELECT * FROM user WHERE login_user = '".$login."' AND pass_user = '".$password_md5."'" ; //exécution de la requête SQL $requete = @mysql_query($sql, $db_link) or die($sql."<br>".mysql_error()) ; //on récupère le résultat $result = mysql_fetch_object($requete) ; //si la requête s'est bien passée if(is_object($result)) { $_SESSION['login'] = $login; echo 'OK'; } else { echo 'KO'; } } ?>
Pas de problème du coté de la vérification, puisque lorsque je rentre un login+mot de passe valide, il me lance index2.php. Seulement j'obtiens l'erreur "Notice: Undefined index: login in ...\index2.php on line 3".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php session_start(); echo $_SESSION['login']; ?>
J'ai beau tout essayé, je ne comprend pas...j'ai l'impression que ma variable de session se paume quelque part pendant la redirection ajax. Bref si quelqu'un à la moindre idée, je suis preneur !
Merci beaucoup de me sortir de ce !@#% :p
Partager