Cookie (c'est trop bon sauf en php^^)
Résolu
titi
-
titi -
titi -
Bonsoir à tous
voila j'ai un petit gros problème (ca change pas trop des autres sujets) de cookies pour l'identification de l'utilisateur.
voici le code et je vous explique le souci incompréhensible aprés^^
lors de la connexion de l'utilisateur, le serveur affiche:
"Warning: Cannot modify header information - headers already sent by... "pour les deux lignes de la création des cookies.
En faite j'avais déja tester ce code sur un autre serveur, mais a la place de la ligne "setcookie("ADRESSE_EMAIL", $row["Adresse_Email"], $expiration, "/");"
j'avais setcookie("NOM_UTILISATEUR", $row["Nom_Utilisateurl"], $expiration, "/"); et tout marcher nickel!
Et la plus rien ne marche.... je comprend vraiment pas
voila j'ai un petit gros problème (ca change pas trop des autres sujets) de cookies pour l'identification de l'utilisateur.
voici le code et je vous explique le souci incompréhensible aprés^^
<? // Redirige l'utilisateur s'il est déjà identifié if(isset($_COOKIE["ID_UTILISATEUR"])) { header("Location: index.php"); } else { // Formulaire visible par défaut $masquer_formulaire = false; // Une fois le formulaire envoyé if(isset($_POST["BT_Envoyer"])) { // Vérification de la validité des champs if(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$", $_POST["TB_Adresse_Email"])) { $message = "Votre adresse e-mail n'est pas valide"; } elseif(!ereg("^[A-Za-z0-9]{6,}$", $_POST["TB_Mot_de_Passe"])) { $message = "Votre mot de passe doit comporter au moins 6 caractères"; } else { // Connexion à la base de données // Valeurs à modifier selon vos paramètres configuration mysql_connect("xxxxxx", "xxxxxxx", "xxxxxx"); mysql_select_db("crea"); // Sélection de l'utilisateur concerné $result = mysql_query(" SELECT ID_Utilisateur, Adresse_Email, Mot_de_Passe, Compte_Active FROM Comptes_Utilisateurs WHERE Adresse_Email = '" . $_POST["TB_Adresse_Email"] . "' "); // Si une erreur survient if(!$result) { $message = "Une erreur est survenue lors de la tentative de connexion"; } else { // Si aucun utilisateur n'a été trouvé if(mysql_num_rows($result) == 0) { $message = "L'adresse " . $_POST["TB_Adresse_Email"] . " n'existe pas"; } else { // Récupération des données $row = mysql_fetch_array($result); // Si le compte n'a pas été activé if($row["Compte_Active"] == 0) { $message = "Votre compte utilisateur n'a pas été activé"; } else { // Vérification du mot de passe if(md5($_POST["TB_Mot_de_Passe"]) != $row["Mot_de_Passe"]) { $message = "Votre mot de passe est incorrect"; } else { // Définition du temps d'expiration des cookies $expiration = empty($_POST["CB_Connexion_Automatique"]) ? 0 : time() + 90 * 24 * 60 * 60; // Création des cookies setcookie("ID_UTILISATEUR", $row["ID_Utilisateur"], $expiration, "/"); setcookie("ADRESSE_EMAIL", $row["Adresse_Email"], $expiration, "/"); } } } } // Fermeture de la connexion à la base de données mysql_close(); } } } ?> <html> <head><title>page</title> <!--<link href="../style.css" rel="stylesheet" type="text/css" media="screen" /></head>--> <body> <div id="fond"> <div id="top"></div> <div id="banner"></div> <br/><br/> <div id="tiret"></div> <div id="menu"> <ul><li><a href="../index.php" class="accueil"></a></li> <li><a href="../communaute.php" class="communaute"></a></li> <li><a href="../interviews.php" class="interwievs"></a></li> <li><a href="../photos.php" class="photos"></a></li> <li><a href="../recrea.php" class="recrea"></a></li> <li><a href="forum.php" class="forum"></a></li> </ul> </div> <div id="glogintop"></div> <div id="gcommiddle"><div id="textecadre4"> <? if(isset($message)) { ?> <p><?= $message; ?></p> <? } if($masquer_formulaire != true) { ?> <form action="http://<?= $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post"> <p> Adresse Email : <input type="text" name="TB_Adresse_Email" /> </p> <p> Mot de passe : <input type="password" name="TB_Mot_de_Passe" /> </p> <p> <input type="checkbox" name="CB_Connexion_Automatique" /> Se connecter automatiquement à chaque visite </p> <p> <input type="submit" name="BT_Envoyer" value="Envoyer" /> </p> </form> <? } ?> </div></div> <div id="gcombottom"></div> <div id="bottom"></div> </div> </body> </html>
lors de la connexion de l'utilisateur, le serveur affiche:
"Warning: Cannot modify header information - headers already sent by... "pour les deux lignes de la création des cookies.
En faite j'avais déja tester ce code sur un autre serveur, mais a la place de la ligne "setcookie("ADRESSE_EMAIL", $row["Adresse_Email"], $expiration, "/");"
j'avais setcookie("NOM_UTILISATEUR", $row["Nom_Utilisateurl"], $expiration, "/"); et tout marcher nickel!
Et la plus rien ne marche.... je comprend vraiment pas
A voir également:
- Cookie (c'est trop bon sauf en php^^)
- Easy php - Télécharger - Divers Web & Internet
- Supprimer cookie - Guide
- Expert php pinterest - Télécharger - Langages
- Mode avion sauf un numero ✓ - Forum LG
- Telephone en silencieux sauf pour une personne - Forum Samsung
1 réponse
Salut
Comme dis l'erreur les entêtes de la pages ont déjà été envoyée.
Un setcookie ne peut etre fait qu'avant toute autre sortie de type echo, print, affichage d'un element HTML etc... Tu ne doit rien afficher avant de faire un setcookie
dans ton cas vérifie bien que tu n'a pas mis d'espace ou quoi avant le premier "<?" par exemple
Comme dis l'erreur les entêtes de la pages ont déjà été envoyée.
Un setcookie ne peut etre fait qu'avant toute autre sortie de type echo, print, affichage d'un element HTML etc... Tu ne doit rien afficher avant de faire un setcookie
dans ton cas vérifie bien que tu n'a pas mis d'espace ou quoi avant le premier "<?" par exemple
oui en effet, au lieu de commencer mon code a la ligne 1, je l'ai commencé a la 2....
j'aime pas ce genre d'erreur^^