Titre: session et rediréction
Posté par: sparh le le 20-06-2006 a 13:52:50
Bonjour, j'ai un problème avec le formulaire d'enregistrement de ma zone membre: Sur une page A il y a un lien qui pointe vers une page B (protégée). L'utilisateurs clic sur le lien et est redirigé vers un formulaire d'enregistrement (ici connect.php)(jusqu'ici tout va bien!). Une fois enregistré il est redirigé vers la page demandée en A. (voilà le problème)
Voilà l'en tête de mes pages protégées (ici B):
Code:
<?php $_SESSION['referer'] = $_SERVER['HTTP_REFERER']; if (!isset($_SESSION['email'])) { header('Location: http://Monsite.fr/connect.php'); } ?> |
|
Et voilà le code de ma page connect.php (formulaire d'enregistrement):
Code:
<?php include("config.php");?> <?php $db = mysql_connect($serveur, $login, $password); mysql_select_db($base,$db); //récuperation des champs de l'inscription $pseudo=htmlspecialchars($HTTP_POST_VARS["pseudo"]); $email=$HTTP_POST_VARS["email"]; $passe=htmlspecialchars($HTTP_POST_VARS["passe"]); $nom=htmlspecialchars($HTTP_POST_VARS["nom"]); $prenom=htmlspecialchars($HTTP_POST_VARS["prenom"]); $age=htmlspecialchars($HTTP_POST_VARS["age"]); $sexe=$HTTP_POST_VARS["sexe"]; $pays=htmlspecialchars($HTTP_POST_VARS["pays"]); $Département=$HTTP_POST_VARS["Département"]; $ville=htmlspecialchars($HTTP_POST_VARS["ville"]); $cdp=htmlspecialchars($HTTP_POST_VARS["cdp"]); $adresse=htmlspecialchars($HTTP_POST_VARS["adresse"]); $telephone=htmlspecialchars($HTTP_POST_VARS["telephone"]); $portable=htmlspecialchars($HTTP_POST_VARS["portable"]); $fax=htmlspecialchars($HTTP_POST_VARS["fax"]); $site=$HTTP_POST_VARS["site"]; $mot=htmlspecialchars($HTTP_POST_VARS["mot"]);
//je supprime les espaces vides $pseudo=trim($pseudo); $email=trim($email); $passe=trim($passe); $nom=trim($nom); $prenom=trim($prenom); $age=trim($age); $sexe=trim($sexe); $pays=trim($pays); $Département=trim($Département); $ville=trim($ville); $cdp=trim($cdp); $adresse=trim($adresse); $telephone=trim($telephone); $portable=trim($portable); $fax=trim($fax); $site=trim($site); $mot=trim($mot);
if ($action == "connect") { session_start(); session_register("email"); session_register("passe"); //récuperation des champs du formulaire $email=$HTTP_POST_VARS["email"]; $passe=$HTTP_POST_VARS["passe"]; $db = mysql_connect($serveur, $login, $password); mysql_select_db($base,$db); $sql="select * from $table where passe like '$passe' and email like '$email'"; $result= mysql_query($sql); $nb=mysql_num_rows($result); $rs=mysql_fetch_array($result); if($email == ""||$passe == ""){echo" <center>Le champs <b>email et password</b> sont obligatoires merci !</center>"; exit; } if ($nb==0) {echo"<center><b>l'email ou le mot de passe n'est pas connu</b><br><br><br><A HREF='index.php'><FONT SIZE='+1'><B>retour</B></FONT></center></A>";exit;
}
if ($nb==1) {$message="<FONT SIZE='+3'<b>salut<br> $email<br> vous êtes bien identifié vous allez être redirigé vers votre espace membre</b></font>"; setcookie("cokmail",$email,time()+365*24*60*60) ; //mise en session de l'email et du passe $email_session=$email; $code_session=$rs["code"];} header("Location: {$_SERVER['HTTP_REFERER']}"); exit; } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Document sans titre</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head>
<body> <div align="center"> <table width="19%" height="164" border="0" align="center"> <tr> <td align="center" valign="top"><form name="form1" method="post" action="connect.php"> <table width="89%" height="151" border="2"> <tr> <td><div align="center" class="titre1"> Email</div></td> </tr> <tr> <td><div align="center"> <label> <input name="email" type="text" id="email" value="<? echo"$cokmail";?>" size="20"> </label> </div></td> </tr> <tr> <td><div align="center" class="titre1">Password</div></td> </tr> <tr> <td><div align="center"> <input name="passe" type="password" id="passe" value="<? echo"$cokpasse";?>" size="20"> </div></td> </tr> <tr> <td><div align="center"><label> <input name="action" type="radio" value="connect" checked> <br> <input type="submit" name="Submit" value="connexion"> <br> </label> <div align="center"></div> <div align="center"><a href="inscription.php"><font size="2">Inscription</font></a> <label> <?php @include"config.php"; echo "<a href='passeperdu.php'><font size=\"2\">pass perdu</font></a>"; ?> <br> </label> </div> </div></td> </tr> </table> </form></td> </tr> </table></div> </body> /html><? ?> |
|
Si quelqu'un avait une idée?? Car j'ai relu et relu mon bout de code et impossible de trouver la ou les failles!! Merci d'avance |
Titre: Re:session et rediréction
Posté par: KaRaK le le 20-06-2006 a 17:09:58
| Tu ne donnes pas ton problème. Tu veux empêcher la redirection vers ta page A ? |
Titre: Re:session et rediréction
Posté par: sparh le le 20-06-2006 a 17:42:48
sur la page A j'ai un lien versl page B La page B est protégée Il y a donc redirection vers le formulaire d'enregistrement (connect.php)(jusqu'ici tout va bien) Une fois enregistré (quand il clic sur ok), l'utilisateur sera redirigé vers la page B (celle qui est protégée, celle vers laquelle le lien sur la page A pointe) j'éspère avoir été plus clair ;)
|
Titre: Re:session et rediréction
Posté par: vertigo_76 le le 21-06-2006 a 13:11:49
Salut,
non tu n'as pas été plus clair car tu donne le principe de fonctionnement mais pas ton problème.
As tu une message d'erreur ou ta redirection ne fonctionne pas?
Après avoir remplis ton formulaire, qu'elle est lecomportement que tu as pu voir(retour sur le formualire, page d'erreur de ressource non trouvable...)
De plus dans l'en-tete de ta page B, tu n'as pas posé le session_start() ce qui a ma souvenance ne te permet pas d'accéder au variable de ta session en cour(oublie, ou apperçu de ton en-tete incomplète?)
@+
|
Titre: Re:session et rediréction
Posté par: sparh le le 21-06-2006 a 14:07:28
une fois le formulaire remplis, j'ai une page blanche (avec un 0 en haut à gauche) avec le même url que mon formulaire. Ca c pour Mozilla. Exp^lorer me renvoi une page complètement vierge, tjrs le même url? |
Titre: Re:session et rediréction
Posté par: vertigo_76 le le 21-06-2006 a 16:38:58
deux petites remarque:
1. il me semble que tu n'attribues pas de valeur aux variables de sessions que tu as créé: $_SESSION['passe'] == $passe; $_SESSION['email'] == $email;
2.Tu vérifie tes variables après avoir fais ton interrogation dans mysql ce qui n'est pas logique ni du point de vu du traitement ni du point de vu de la sécurité. |
Titre: Re:session et rediréction
Posté par: sparh le le 22-06-2006 a 14:06:02
si!!
Code:
if ($action == "connect") { session_start(); session_register("email"); session_register("passe"); //récuperation des champs du formulaire $email=$HTTP_POST_VARS["email"]; $passe=$HTTP_POST_VARS["passe"]; $db = mysql_connect($serveur, $login, $password); mysql_select_db($base,$db);
|
|
enfin je crois!
|
Titre: Re:session et rediréction
Posté par: vertigo_76 le le 22-06-2006 a 19:34:03
Ca c'est ton fichier connect.php si je me trompe pas.
Le session_start() qui manque est dans l'en-tete:
<?php session_start(); $_SESSION['referer'] = $_SERVER['HTTP_REFERER']; if (!isset($_SESSION['email'])) { header('Location: http://Monsite.fr/connect.php'); } ?>
La tu devrais pourvoir acceder a tes variables de session |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|