Problème SetCookie en php (urgent)

Résolu/Fermé
NoxXx - 2 juin 2007 à 10:40
 NoxXx - 2 juin 2007 à 19:08
Bonjour, alors je dois rendre un site comme projet d'informatique à la fac pour mardi et je suis à la bourre, d'autant plus que j'ai un problème, que je présente de suite:
Voilà, j'ai un problème avec ce code, j'utilise EasyPhp et le message d'erreur est le suivant:

"Warning: Cannot modify header information - headers already sent by (output started at c:\weblocal\sites\site1\connexion\validationidentification.php:1) in c:\weblocal\sites\site1\connexion\validationidentification.php on line 18"

Et voilà le code:
<?php
$tab=file("inscrits.txt");
for($i=0;$i<count($tab);$i++){
$l=explode("/",$tab[$i]);
$pseudo[$i]=$l[0];
$mdp[$i]=$l[1];
$mail[$i]=$l[2];
}
$nbusers=count($tab);
$_SERVER['PHP_AUTH_USER']=$_POST['login'];
$_SERVER['PHP_AUTH_PW']=$_POST['mdp'];
$user=$_SERVER['PHP_AUTH_USER'];
$passw=$_SERVER['PHP_AUTH_PW'];
for($i=0;$i<count($tab);$i++){
if(($user==$pseudo[$i]) && ($passw==$mdp[$i])){
setcookie(
'login',
$user);
echo $pseudo[$i];
echo "<html><body>Identification réussie vous allez maintenant être redirigé !</body></html>";
}
else{
$user=-1;
echo "<html><body>Mot de passe ou login incorrect, pour réessayer, cliquez <a href=\"identification.html\">ici</a></body></html>";
}
}


?>
A voir également:

2 réponses

Salut,

Le cookie doit etre envoyé avant TOUT code HTML.
Or je pense qu'avant le début de ton code php qui commence par <?php il y a probablement des espaces ou des sauts de lignes ? Ces caractères sont envoyés immédiatement donc en arrivant à setcookie il ne peut plus le gérer.

L'erreur est à la ligne 18 d'après le message et j'en compte 16 pour le setcookie, il y en a donc deux de trop au début que tu n'as pas recopié ?

de plus il dit output started at line 1 c'est donc bien que des caractères de la ligne 1 sont envoyés.

ec
0
merci sa venait du fait qu'il y avait un espace avant "<?php" c'est super sympa, j'étais dessus depuis un bon bout de temps, par contre c'était bien la ligne 18 qui correspondait en fait à la fermeture du cookie!
Je t'en remercie encore une fois
0