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
Mimiste
Messages postés1149Date d'inscriptionsamedi 17 mai 2008StatutMembreDernière intervention 6 mars 2016206 8 mars 2009 à 13:15
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
8 mars 2009 à 14:11
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^^