Page 1 sur 1

Problème PHP ou cookie? sur Internet Explorer

Posté : 30 sept. 2008, 23:37
par karty
Bonjour,

voilà je vous explique brièvement j'ai un gros problème :? sur ma page connexion.php qui sert de lien entre la page où il faut s'identifier (avec son email et password) et la page d'accueil de mon site.

Il y a apparemment un morceau de code qu'Internet Explorer ne digère pas, et pourtant à ma grande surprise tous les autres navigateurs marchent parfaitement. Le problème vient donc du code de cette page connexion sur Internet Explorer car les visiteurs reste bloqué sur cette page avec strictement rien d'afficher...

Avez-vous une idée du problème ? Ai-je fais une erreur quelque part, car là je comprends pas ce bug ??

Merci d'avance votre aide ! Voici le code :



Code : Tout sélectionner

<?php // Redirige l'utilisateur s'il est déjà identifié if(isset($_COOKIE["ID"])) { header("Location: http://www.monsite.com/accueil.php"); } else { // Une fois le formulaire envoyé if(isset($_POST["valider"])) { // Vérification de la validité des champs if(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$", $_POST["email"])) { $message = "Votre adresse email est incorrecte. Merci de la resaisir correctement."; } elseif(!ereg("^[A-Za-z0-9]{4,}$", $_POST["password"])) { $message = "Votre mot de passe comporte entre 4 caractères et 8 caractères. Merci de le resaisir correctement."; } else { //connexion à la base de données require ("db.php") ; // Sélection de l'utilisateur concerné $result = mysql_query("SELECT * FROM base WHERE email = '" . $_POST["email"] . "' "); // Si une erreur survient if(!$result) { $message = "Une erreur est survenue lors de la tentative de connexion. Veuillez réessayer de vous connecter ultérieurement."; } else { // Si aucun utilisateur n'a été trouvé if(mysql_num_rows($result) == 0) { $message = "Votre compte n'a encore pas été créé."; } else { // Récupération des données $row = mysql_fetch_array($result); // Si le compte n'a pas été activé if($row["clef"] == 0) { $message = "Votre compte n'a encore pas été activé."; } else { // Vérification du mot de passe if(md5($_POST["password"]) != $row["password"]) { $message = "Votre mot de passe est incorrect. Veuillez le resaisir correctement."; } else { // Création des cookies setcookie("ID", $row["id"], (time() + 2628000), "/"); setcookie("EMAIL", $row["email"], (time() + 2628000), "/"); setcookie("PASSWORD", $row["password"], (time() + 2628000), "/"); // Redirection de l'utilisateur header("Location: http://www.monsite.com/accueil.php"); } } } } } } } ?>

Posté : 30 sept. 2008, 23:47
par djtec
Déjà la je pense qu'il y a une erreur car tu dit que le mot de passe doit être compris entre 4 et 8 caractères mais là tu dis 4, et rien

met ceci:
elseif(!ereg("^[A-Za-z0-9]{4,8}$", $_POST["password"])) 
à la place de:
elseif(!ereg("^[A-Za-z0-9]{4,}$", $_POST["password"])) 

Posté : 01 oct. 2008, 00:12
par karty
Merci, mais évidement le problème ne vient pas de là. En fait, le formulaire ne comporte que 8 caractères max, c'est pour celà que je ne l'ai pas rajouté sur la page de connexion, car c'est impossible qu'il y en ait plus.

Le problème se situe (à mon avis) plus bas, vers la gestion du dernier else et des cookies, car quand on se connecte sur Internet Explorer rien ne s'affiche, donc j'en conclut qu'il ignore tous mes $message, car il faut savoir que j'ai rajouté un echo $message juste un peu en dessous ce code.

Qu'en pensez-vous ?? Une autre idée de ce qui pourrait clocher dans ce code uniquement sur Internet Explorer ?? Firefox marchant parfaitement !

Posté : 01 oct. 2008, 09:56
par caroube
Essaye en mettant des exit après les header (location ...)

Posté : 01 oct. 2008, 10:15
par karty
Ca ne change rien non plus :( En fait, Internet Explorer ne comprends pas mon code, car même s'il y a une erreur de mot de passe, d'identifiant, ou autre, la page est blanche. Je capte vraiment pas pourquoi...