Setcookie non pris en compte (Warning: Cannot modify header information - headers already sent by)
Bonjour,
Je viens vcers vous car j'ai un souci avec Setcookie, celui fonctionne parfaitement avec easyphp mais sur le serveur 1and1 ... bug !
Sur l'index j'ai un formulaire d'identification normal,
J'ai tout essayer mais je comprend pas pourquoi le setcookie est pas pris en compte, je fait un echo juste en dessous, j'ai bien l'echo qui s'affiche. J'ai essayer d'encoder sans BOM, rien n'y fait ...
Voici la page index :
Code:
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| <?php
include "admin/config.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>p1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<link rel="stylesheet" href="style.css" />
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<title>p1</title>
</head>
<body>
<div id="bloc_page">
<header>
<div id="espacelogo">
<h1>
<a href="#" title="page1">
<img src="logo.png" alt="Logo de" id="logo" style="display: inline-block;" />
</a>
</h1>
</div>
<div id="one">
</div>
</header>
<div id="menu">
<nav>
<ul>
<li><a href="index.html">Accueil</a></li>
<li><a href="#">Inscription</a></li>
<li><a href="#">Connexion</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</div>
<div id="banniere_image">
<div id="banniere_description">
test test test test
</div>
</div>
<div id="nivoshadow">
</div>
<section>
<article>
contenu 2
</article>
<aside>
<?php
include('lib/flogin.php');
?>
</aside>
</section>
<div id="classement">
<h1>Le classement</h1>
</div>
<div id="mentions">Mentions légales - Contactez-nous</div>
<div id="copyright">copy</div>
</div>
</body>
</html> |
et la page incluse :
Code:
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| <?php
if(isset($_POST["BT_Envoyer"]))
{
// Vérification de la validité des champs
if(!ereg("^[A-Za-z0-9_]{2,20}$", $_POST["TB_Nom_Utilisateur"]))
{
echo "Votre nom d'utilisateur doit comporter entre 2 et 20 caractères<br />\n";
$message .= "L'utilisation de l'underscore est autorisée";
}
elseif(!ereg("^[A-Za-z0-9]{6,}$", $_POST["TB_Mot_de_Passe"]))
{
echo "Votre mot de passe doit comporter au moins 6 caractères";
}
else
{
// Sélection de l'utilisateur concerné
$result = mysql_query("
SELECT ID_Utilisateur, Nom_Utilisateur, Mot_de_Passe, Compte_Active
FROM Comptes_Utilisateurs
WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
");
// Si une erreur survient
if(!$result)
{
echo "Une erreur est survenue lors de la tentative de connexion";
}
else
{
// Si aucun utilisateur n'a été trouvé
if(mysql_num_rows($result) == 0)
{
echo "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"] . " 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)
{
echo "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"])
{
echo "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("NOM_UTILISATEUR", $row["Nom_Utilisateur"], $expiration, "/");
// Fermeture de la connexion à la base de données
mysql_close();
// Redirection de l'utilisateur
header("Location: index.php");
}
}
}
}
}
}
?>
<?php if(isset($_COOKIE["ID_UTILISATEUR"])) { ?>
<p> <h1>Ton compte</h1>
<a href="deconnexion.php">Déconnexion</a>
</p>
<?php } else { ?>
<p>
<h1>Connecte-toi</h1>
<form method="post">
<p>
Nom d'utilisateur : <input type="text" name="TB_Nom_Utilisateur" />
</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>
<a href="creer-compte-utilisateur.php">Créer un compte utilisateur</a> |
</form>
</p>
<?php } ?> |