Cookie header erreur free

Résolu/Fermé
Signaler
Messages postés
84
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
10 avril 2013
-
 le père -
Bonjour,

j'ai bien fais attention à ne pas mettre de HTML pour pouvoir mettre tous les headers avant mais j'ai toujours le même problème chez free :

voici l'erreur qu'on retrouve toujours... :

Warning: Cannot modify header information - headers already sent by (output started at /mnt/142/sda/5/0/clan.tkt/connection.php:1) in /mnt/142/sda/5/0/clan.tkt/session_nb_co.php on line 63


Et voici comment je m'y suis p ris pour mon site :


--------------------------------------------------------index------------------------------------------------------------
<?php
include ('session_nb_co.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
....
----------------------------------------------------------------------------------------------------------------------------

et dans session_nb_co.php il n'y a aucun signe de html : c'est au niveau du setcookie que j'ai une erreur :/ (enfin deux mais pour la même raison)

-------------------------------------------------------------script du session_nb_co.php --------------------------------

<?php // 3 parties : creer / ouvrir / login / fermer regarder cookie/s'occuper session/nombre de connectes
session_start();
include ('connection.php');
$temps_unan=time()+365*24*3600;

// il faut D'ABORD DECO SI BESOIN ! donc en first déco & supp cookie
If(isset($_GET['deco']) and $_GET['deco']==1)
{
$_SESSION['connect']=0;
$_SESSION['menu']=0;
session_destroy();
session_start();
$_SESSION['pseudo']='inconnu(e)';
$_SESSION['mdp_login']='inconnu';
$pseudo=$_SESSION['pseudo'];
$mdp_login=$_SESSION['mdp_login'];
setcookie('$pseudo',$pseudo,0);
setcookie('$mdp_login',$mdp_login,0);
/* echo '<script language="Javascript">
<!--
document.location.replace("index.php");
// -->
</script>';
*/

}



// variable qui n'existe pas
// creer la session
If (!empty($_SESSION['connect']))
{
//SESSION EXISTE PAS : cookie existe on ouvre la session + Maj du cookie
If ((isset($_COOKIE['pseudo']))and (isset($_COOKIE['mdp_login'])) ) ///connect
{
//If ($_SESSION['pseudo']!='inconnu(e)') {
$_SESSION['pseudo']=$_COOKIE['pseudo'];
$_SESSION['mdp_login']=$_COOKIE['mdp_login'];
$_SESSION['connect']=1;
$pseudo=$_SESSION['pseudo'];
$mdp_login=$_SESSION['mdp_login'];
setcookie('$pseudo',$pseudo,$temps_unan);
setcookie('$mdp_login',$mdp_login,$temps_unan);

}
//cookie existe pas, on ouvre la session en inconnu + Ajout ? cookie
Else
{
$_SESSION['pseudo']='inconnu(e)';
$_SESSION['mdp_login']='inconnu';
$pseudo=$_SESSION['pseudo'];
$mdp_login=$_SESSION['mdp_login'];
setcookie('$pseudo',$pseudo,$temps_unan); ///////////////////////////////// ERREUR ICI
setcookie('$mdp_login',$mdp_login,$temps_unan);///////////////////////////////// ERREUR ICI
$_SESSION['connect']=0;
}
}
Else
{ // SESSION EXISTE : mets à jour le cookie + : prévoir nombre de co / dernière fois co / visiteur?
$pseudo=$_SESSION['pseudo'];
$mdp_login=$_SESSION['mdp_login'];
setcookie('$pseudo',$pseudo,$temps_unan);
setcookie('$mdp_login',$mdp_login,$temps_unan);

$_SESSION['connect']=1;

If ($_SESSION['pseudo']!='inconnu(e)')
{//donc c'est un membre donc faut METS A JOUR TIMESTAMP
$time=time();
mysql_query("UPDATE membres SET last_seen='$time' WHERE pseudo='$pseudo'")or die (mysql_error());

}
Else
{
$_SESSION['connect']=0;
}


}
// Lors du login :) on écrit pas le cookie on se log et le script le fait ailleur
If ((isset($_POST['pseudo']))and (isset($_POST['mdp_login'])))
{
If ((($_POST['pseudo'])!=NULL)and (($_POST['mdp_login'])!=NULL))
{
//on verifie ici que le pseudo fait parti d'un membre et on le met dans la session.
$resultat_membres=mysql_query("SELECT * FROM membres")or die (mysql_error());
while($donnees_membres=mysql_fetch_array($resultat_membres))
{
If (($donnees_membres['pseudo']==$_POST['pseudo'])and ($donnees_membres['mdp_inscription']==$_POST['mdp_login']))
{
$_SESSION['pseudo']=$_POST['pseudo'];
$_SESSION['mdp_login']=$_POST['mdp_login'];


echo '<script language="Javascript">
<!--
document.location.replace("index.php");
// -->
</script>';
}
}
}
}

?>

-----------------------------------------------------------------------------------------------------------------------

Voilà, avec WAMPSERVER, je n'ai aucun problème...et en ligne j'ai ces problèmes. Auriez vous une idée ? j'avais pas envie de tout mettre dans "index" car ça fait long mais si faut le faire... je le ferai :s

ps :

include ('connection.php'); <<< j'ai juste mis l'adresse de free, le login et le mot de passe. Pas de html dedant bien sur.


Merci d'avance

6 réponses

Quand je regarde le source de la page générée, il y a deux caractères de tabulation avant le message d'erreur, tu peux le vérifier toi-même. Tu es sûr qu'il n'y a vraiment rien avant le <?php ??? Ou à la rigueur après le ?>, mais d'après le numéro de ligne c'est au début
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
6423
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
24 mars 2019
1 995
On dirait bien que monsieur a un BOM en debut de page, mais je n' ai pas regardé le code....


regarde en quoi est encodé ta page
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Bonjour

D'après le message, les sorties ont commencé commencent dès la ligne 1 de connection.php
Peux-tu nous montrer ce fichier (en remplaçant le mot de passe par des *** bien sûr !)
Messages postés
84
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
10 avril 2013
10
-------------------------connection.php-----------------
<?php
mysql_connect("sql.free.fr","clan.tkt","***");
//mysql_connect("localhost","root","");
mysql_select_db("clan_tkt");
?>
-----------------------------------------------------------

voilà :x
Messages postés
84
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
10 avril 2013
10
Exact, ces 2 tabulations faisaient planter.

Je ne comprends pas pourquoi vu qu'elles sont censé être dans le php mais je suis content que ça aille mieu!

Merci !

problème résolu :)
Elles n'étaient pas dans le php, puis qu'elles étaient avant la balise... Le PHP ne commence qu'à la balise.