Les sessions en php

Fermé
amzo - 19 sept. 2005 à 20:14
 amzo - 20 sept. 2005 à 15:50
Bonjour .
je développe actuellement en php . dans mon code je veux utiliser des variables de session. j'utilise la fonction session_start() .
j'ai l'erreur suivante :
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1-8\www\forum.php:9) in c:\program files\easyphp1-8\www\forum.php on line 10

la ligne 10 est la ligne ou il ya la fonction session_start() .
mecri de votre aide .
A voir également:

3 réponses

Euh, tu l'as met ou ta sessions start
car normanlement elle dois etre au tout debut, au dessus de ta balise <html>
0
merci pour ta réponse .
j'ai la fonction start au debut voici tou le code :

<title>FORUM </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
session_start();
$id_connexion=mysql_connect('localhost','root') or die ('Impossible de se connecter à la base ');
mysql_select_db('amndiade') ;

$req = "select * from message order by date_message DESC" ;
$res = mysql_query($req);
echo' <table align="center"> ';
echo ' <form action="envoi_phorum.htm" method="get"> ';
echo ' <tr> <td colspan="2" align="center"> <input type="submit" name="valider" value="Nouveau message" align="center"> ';echo ' </form> </td></tr>' ;
//echo '<table> ' ;

echo' <tr align="center"> <td> <table border="1" width="500" align="center">' ;
echo' <tr height="40"> <td> Date</td> <td weigth="100"> Titre du message </td> <td> Auteur </td> <td> Réponse</td> </tr>' ;
while( $resultat=mysql_fetch_array($res) or die ( mysql_error()))
{ // requête pour avoir le nbre de réponse du message
$id_pere= $resultat['Id_pere'] ;
$req1 = "select count(*) as num from message where Id_pere = '$id_pere '";
$res1=mysql_query($req1);
// requête pour avoir le nom de l'auteur
$id_user =$resultat['Id_user'] ;
$req2 = " select * from user where Id_user ='$id_user'" ;
$res2= mysql_query($req2);
if ($resultat2 = mysql_fetch_array($res2) or die (mysql_error()))
{ $login = $resultat2['login'] ;

}
if ( $resultat1 = mysql_fetch_array($res1) or die (mysql_error()))
{
$nbre_reponse = $resultat1['num'] - 1;
}

$titre = $resultat['titre'];
$date_message=$resultat['date_message'];

$_SESSION['titre']=$titre ;
$_SESSION['login']=$login;
$_SESSION['date']=$date_message ;
$_SESSION['id_pere']=$id_pere ;


echo ' <tr>
<td> '.$date_message.' </td>
<td td weigth="100"> <a href =" forum1.php"> '.$titre.' </a> </td>
<td> '.$login.' </td>
<td> '.$nbre_reponse.' </td>
</tr>' ;


}


echo' </table> </td> <tr/>' ;

echo ' </table>';






?>

</body>
</html>
0
Fada09 Messages postés 1701 Date d'inscription lundi 15 septembre 2003 Statut Contributeur Dernière intervention 4 septembre 2010 541
20 sept. 2005 à 02:07
Salut,

En fait il faut que ta ligne
 session_start();
soit la premiere ligne de ton fichier avant même <head> (que tu as oublié).

++

;-)
~ ~ Fada ~ ~ : Member of #Star!alco
0
merci fada .
j'ai essayé ce que tu m'as dit mais j'ai toujours le même probleme .
pense tu pas que ce soit un probleme de configuration d'apache .
merci de votre aide .
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
20 sept. 2005 à 13:26
Salut,

Tu as une explication ici:
http://www.commentcamarche.net/faq/1916-%5BPHP%5D-Headers-already-sent-by

L'idéal: mettre une balise php au tout début de ton fichier, pas un seul caractère ou espace ne doit précéder cette balise.
Ensuite, tu mets ton session_start, et ensuite tu refermes ta balise php pour mettre ensuite tes premiers codes html.
0
amzo > kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016
20 sept. 2005 à 15:50
merci kilian j'ai essayé ton truc ça marche merci .
0