Session_start()

Bonjour,
J'ai un probleme avec session_start();
au tt debut j'au une fonction java pour interdire les champ vide apre j'ai du code html pour le formulaire avec login et mdp apre j'ai mon code php avc la connexion a ma bdd acess et apre g les requetes et les redirection de page
j'ai mi session_start() au debut du code php mai sa met le message d'erreur :
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by

please help me
Configuration: Windows XP
Internet Explorer 7.0

14 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut,
    comme l'a dit Xil, il faut que tu mette ton session_start() en premier, au debut de ton fichier
    ex:
    <?php
    session_start()
    ?>
    blablabla le reste de ton code ...


    Si l'erreur persiste, vérifie l'encodage de ton fichier, il faut que celui-ci soit en UTF8 sans BOM pour qu'il y ait pas de caractères invisibles au début de ton fichier, ce qui pourrait expliquer le message d'erreur que tu as: Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent ...

    Pour vérifier ça je te conseil d'utiliser un éditeur de texte hexadécimal (ex: Notepad ++), comme ça tu verra s'il y a des caractères invisibles devant ton code ou pas.

    Bon courage.
    1. J'ai tre bien compri le fonctionnement mais sa marche pas
      J'ai mi $_session[mavarible]=$11111111111
      et apre dans mon otre page echo $11111111111111111111111111111
      et toujours rien donc si tu pe maider rep
      1. Forcément, dans l'autre page on fait pas echo $11111111111111, mais echo $_SESSION["mavarible"]
    2. Merci bcp mais ji ai deja lu mai eux il font avecsa:
      $_session['variable']=$aaa
      mai moi le prob c'est dans le 'variable' c'est deja une varible comment ji ecri
      ?????
      MERCI£
      1. Le tableau de session $_SESSION s'utilise de la même facon que n'importe quel tableau PHP, à ceci près que son contenu est sauvegardé entre plusieurs pages.

        Si tu as mal compris le fonctionnement des tableaux en PHP, il faut aller relire un cours là dessus.
    3. ok sa c bon tu pe maider pour lecriture de $_session..... car moi c'est une varible
      1. Ton session_start doit être au tout début de ton fichier principal de la page, et nulle part ailleurs.
        Avant le HTML, avant le Javascript, avant tout.
        1. Meme quand je met en commentaire tout mon code php je met juste:
          <?php
          session_start();
          ?>
          Il me met l'erreur:
          Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by
          1. En faite je fais une requete sur le niveau d'acces de l'utilisateur et je voudrai garder en memoire ou transferer cette variable ($rr) donc je pense qu'il faut que j'utilise les session mais ji arrive pas
            1. ok Tien:
              <script language="javascript">
              function recupere_info ()
              {
              if(document.form1.login.value == "" || document.form1.mdp.value == "")
              {
              alert ("Veuillez remplir tous les champs!!!");
              return false;
              }
              return true;
              }
              </script>
              <html>
              <div align="left">
              <table border="22" cellpadding="6" width="100%">
              <tr>
              <td>
              <table border="22" cellpadding="40" >
              <tr bgcolor="#B22222">
              <td valign="top" colspan="2">
              <center>
              <font size="1" color="yellow"><b><br>
              </b></font>
              <font size="10" color="white"><b>Site <p>
              <font size="6" color="white"><b>Identifiez-Vous
              </td></tr>
              <form id="form1" name="form1" method="post" action="?" onsubmit=" return (recupere_info());">
              <table>
              <tr>
              <td width="102"><strong>Login</strong></td>
              <td width="267"><label>
              <input name="login" type="text" size="20" />
              </label></td>
              </tr>
              <tr><td colspan="2"> </td></tr>
              <tr>
              <td height="41"><strong>Mot de passe</strong></td>
              <td><label>
              <input name="mdp" type="password" size="20" />
              </label></td>
              </tr>
              </table>
              <?php
              session_start();
              $bd="BDD";
              $user="...";
              $password="...";
              $cnx = odbc_connect( $bd , $user, $password );
              if( ! $cnx ) echo "Impossible de se connecter";
              $login = $_POST['login'];
              $mdp = $_POST['mdp'];
              $q=("SELECT Login FROM identification WHERE Login='$login'");
              $valeur=odbc_exec($cnx,$q);
              while(odbc_fetch_row( $valeur))
              {
              $zz= odbc_result( $valeur,1);
              }
              $r =("SELECT Mot_de_passe FROM identification WHERE Login='$login'");
              $val= odbc_exec($cnx,$r);
              while(odbc_fetch_row($val))
              {
              $vv= odbc_result( $val,1);
              }
              $aaa=("SELECT * FROM identification WHERE Login='$login'");
              $va=odbc_exec($cnx,$aaa);
              while(odbc_fetch_row( $va))
              {
              $rr= odbc_result( $va,6);
              }
              $_SESSION['$rr'] = $nivo ;
              echo '<p><input type="submit" id="submit" name="submit" value="IDENTIFICATION" /></p>'."\n";
              if (isset($_POST['submit']))
              {
              if (($login ==$zz) AND ($mdp ==$vv))
              {
              if ((((($login ==...) AND ($mdp ==a))OR ($login==...) AND ($mdp==e)) OR ($login==...) AND ($mdp==b)) OR ($login==...) AND ($mdp==p)){
              echo '<a href="http://127.0.0.1/site_intra-extranet/formulaireinscription.php"><font size="5">Inscrire un utilisateur</font>';
              echo "<br>";
              echo '<a href="http://127.0.0.1/site_intra-extranet/mapage.php"><font size="8"><strong>Aller sur le site</strong></font>';}
              else {
              echo '<a href="http://127.0.0.1/site_intra-extranet/mapage.php"><font size="8"><strong>Aller sur le site</strong></font>';}
              }
              else
              {
              echo '<p style="color:#FF0000; font-weight:bold;">Erreur d identification</p>';
              }
              };
              echo "<br>";
              ?>
              <img src="Vague 100 ad3.jpg" width="1016" height="301">
              </html>
              1. salu merci pour la reponse

                Mais il ne le comprend pas il n'est pas en 'bleu'
                il mecri sur ma page session start
                1. Il faut aussi mettre les balises PHP :
                  <?php session_start(); ?>
                  

                  Sinon ce n'est pas interpreté comme étant du PHP, mais du HTML, sans balises, donc du texte.
              2. Essaie de mettre ton session_start avant meme ton code <html><head>.
                C'est la 1ere chose a faire