Les sessions en php

amzo -  
 amzo -
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. Boulie
     
    Euh, tu l'as met ou ta sessions start
    car normanlement elle dois etre au tout debut, au dessus de ta balise <html>
    0
  2. amzo
     
    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
  3. Fada09 Messages postés 1741 Statut Contributeur 547
     
    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. amzo
       
      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. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
       
      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
      1. amzo > kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention  
         
        merci kilian j'ai essayé ton truc ça marche merci .
        0