Les sessions en php

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 .

3 réponses

  1. Euh, tu l'as met ou ta sessions start
    car normanlement elle dois etre au tout debut, au dessus de ta balise <html>
    0
    1. 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
      1. Contributeur
        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
        1. 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
        2. Modérateur
          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
        3. @kilianmerci kilian j'ai essayé ton truc ça marche merci .
          0