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

  1. Je veux bien t'aider, mais il me faut ton code...
    1
    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
      1. Essaie de mettre ton session_start avant meme ton code <html><head>.
        C'est la 1ere chose a faire
        0
        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
          0
          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.
            0
        2. 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>
          0
          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
            0
            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
              0
              1. ok mai sa marche pas
                sa fe rien tu pe m'ecrire comment sa doit etre avec $_session [???????]
                je te fe ???? car moi c une variable
                please
                0
              2. ok sa c bon tu pe maider pour lecriture de $_session..... car moi c'est une varible
                0
                1. 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£
                  0
                  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.
                    0
                2. 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
                  0
                  1. Forcément, dans l'autre page on fait pas echo $11111111111111, mais echo $_SESSION["mavarible"]
                    0
                3. 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.
                  0
                  1. ok merci tout le monde jve voir tt sa
                    0