Partage
  • Partager sur Facebook
  • Partager sur Twitter

erreur session_start();

a laide svp !!

    27 janvier 2006 à 15:53:11

    Bonjour,

    alors voila, j'ai fait un petit pour mon site virtuel qui permet de changer un mot dans ma base selon un formulaire proposé. Or ca me donne une erreur avec une erreur de session.

    En plus claire voici l'erreur:

    Warning: session_start(): Cannot send session cache limiter - headers already sent (outpout started at /home/......./hote2.php: 2) in /home/........./hote2.php on line 3


    et voici mon code:

    Secret (cliquez pour afficher)
    <?
    session_start();

    $login = $_SESSION['login'];

    include('verif.php');

    mysql_connect("localhost", "******", "******");
    mysql_select_db("*************");

    $T1 = isset($_POST['T1']) ? $_POST['T1'] : $T1 = 0;
    $T2 = isset($_POST['T2']) ? $_POST['T2'] : $T2 = 0;
    $T3 = isset($_POST['T3']) ? $_POST['T3'] : $T3 = 0;
    $T4 = isset($_POST['T4']) ? $_POST['T4'] : $T4 = 0;
    $T5 = isset($_POST['T5']) ? $_POST['T5'] : $T5 = 0;
    $T6 = isset($_POST['T6']) ? $_POST['T6'] : $T6 = 0;
    $T7 = isset($_POST['T7']) ? $_POST['T7'] : $T7 = 0;
    $T8 = isset($_POST['T8']) ? $_POST['T8'] : $T8 = 0;
    $T9 = isset($_POST['T9']) ? $_POST['T9'] : $T9 = 0;

    $prix = 10;

    $margent = $_SESSION['argent'] - $prix;

    if ($margent < 0 OR $_SESSION['metier'] != "au chommage" )
    {
    include("**************recrutement.php");


    print("<script>alert(\"Vous n'avez pas assez d'argent pour vous payer cette formation ou vous avez déja un métier !\")</script>");
    }

    elseif ($_POST['T3'] AND $_POST['T5'] AND $_POST['T8'])
    {
    $argent = mysql_query("SELECT argent FROM tbl_user WHERE login='$login'") or die (mysql_error());
    $donnees = mysql_fetch_array($argent);

    $total2 = $donnees['argent'] - $prix;
    $_SESSION['argent'] = $total2;

    mysql_query("UPDATE tbl_user SET argent='$total2' WHERE login='$login' ") or die(mysql_error());

    //entre le métier dans la base

    mysql_query("UPDATE tbl_user SET metier='hotesse/stewart de sol' WHERE login='$login' ") or die(mysql_error());

    include("**********************recrutement.php");


    print("<script>alert(\"Félicitation ! Vous avez reussi votre concours, vous recevrez 20 € par jour ! Pour le bon fonctionnement du jeux, je vous demande svp de bien vouloir vous reconnectez pour une meilleure prise en compte de votre nouveau métier. Merci.\")</script>");

    }

    else
    {
    $argent = mysql_query("SELECT argent FROM tbl_user WHERE login='$login'") or die (mysql_error());
    $donnees = mysql_fetch_array($argent);

    $total2 = $donnees['argent'] - $prix;
    $_SESSION['argent'] = $total2;

    mysql_query("UPDATE tbl_user SET argent='$total2' WHERE login='$login' ") or die(mysql_error());

    //refut

    include("*******************recrutement.php");


    print("<script>alert(\"Désolé vous avez loupé ce concours ! Vous pouvez toujours recommencer mais attention à votre argent !\")
    </script>"
    );

    }

    //et on ferme
    mysql_close();
    ?>



    SVP pouvez vous me dire d'ou peut venir cette erreur ? je voi pas trop puisque j'ai pratiquement fait le meme code sur d'autre pages.

    ps: ce code est dans un popup avec la page du formulaire mais normalement sa devrai pas poser de probleme puisque comme je l'est dit j'ai deja fait une autre page avec pratiquement le meme code et sa marche.

    Merci d'avance :(
    • Partager sur Facebook
    • Partager sur Twitter
      27 janvier 2006 à 15:57:46

      Salut,

      Avant un session_start il ne doit pas y avoir de contenu affiché à l'ecran. C'est à dire :
      - Pas de code html
      - pas d'espace blanc.
      - pas d'echo

      Comme à mon avis ta page est utilisés dans un include, je pense que t'as du code avant ton session_start, d'où cette jolie erreur.

      ++
      • Partager sur Facebook
      • Partager sur Twitter
        27 janvier 2006 à 17:51:08

        forcement puisque c'est la redirection d'un formulaire et encore dans ma pages ou il y le formulaire j'ai aussi fait un session start donc il devrai pas y avoir cette erreur

        comment faire ? :(
        • Partager sur Facebook
        • Partager sur Twitter
          27 janvier 2006 à 18:05:41

          Au tout début de tes pages (pas les includes mais celles ou tu inclues justement)
          tu mets : ob_start("ob_gzhandler");
          et à la fin de ces mêmes pages tu mets : ob_end_flush();

          et normalement, plus de problème.
          • Partager sur Facebook
          • Partager sur Twitter
            27 janvier 2006 à 20:14:42

            excuse mais j'ai pas compris ou je devais mettre au debut ton code
            • Partager sur Facebook
            • Partager sur Twitter
              27 janvier 2006 à 22:35:45

              Tu as des pages dans lesquelles tu inclues d'autres pages non ?
              Bon eh bien sur ces pages où tu inclues d'autres pages, tu mets mon code.
              • Partager sur Facebook
              • Partager sur Twitter
                28 janvier 2006 à 1:58:57

                Ba dans la page qui incluie les autre tu met en haut de celle ci ton session_start(); :) Comme ça plus de problème de header
                • Partager sur Facebook
                • Partager sur Twitter
                  28 janvier 2006 à 11:02:19

                  a je crois que j'ai compris je vais essayé

                  donc ça deviendrais ca:

                  <?
                  ob_start("ob_gzhandler");
                  session_start();

                  $login = $_SESSION['login'];

                  include('verif.php');

                  mysql_connect("localhost", "******", "******");
                  mysql_select_db("*************");

                  $T1 = isset($_POST['T1']) ? $_POST['T1'] : $T1 = 0;
                  $T2 = isset($_POST['T2']) ? $_POST['T2'] : $T2 = 0;
                  $T3 = isset($_POST['T3']) ? $_POST['T3'] : $T3 = 0;
                  $T4 = isset($_POST['T4']) ? $_POST['T4'] : $T4 = 0;
                  $T5 = isset($_POST['T5']) ? $_POST['T5'] : $T5 = 0;
                  $T6 = isset($_POST['T6']) ? $_POST['T6'] : $T6 = 0;
                  $T7 = isset($_POST['T7']) ? $_POST['T7'] : $T7 = 0;
                  $T8 = isset($_POST['T8']) ? $_POST['T8'] : $T8 = 0;
                  $T9 = isset($_POST['T9']) ? $_POST['T9'] : $T9 = 0;

                  $prix = 10;

                  $margent = $_SESSION['argent'] - $prix;

                  if ($margent < 0 OR $_SESSION['metier'] != "au chommage" )
                  {
                  include("**************recrutement.php");


                  print("<script>alert(\"Vous n'avez pas assez d'argent pour vous payer cette formation ou vous avez déja un métier !\")</script>");
                  }

                  elseif ($_POST['T3'] AND $_POST['T5'] AND $_POST['T8'])
                  {
                  $argent = mysql_query("SELECT argent FROM tbl_user WHERE login='$login'") or die (mysql_error());
                  $donnees = mysql_fetch_array($argent);

                  $total2 = $donnees['argent'] - $prix;
                  $_SESSION['argent'] = $total2;

                  mysql_query("UPDATE tbl_user SET argent='$total2' WHERE login='$login' ") or die(mysql_error());

                  //entre le métier dans la base

                  mysql_query("UPDATE tbl_user SET metier='hotesse/stewart de sol' WHERE login='$login' ") or die(mysql_error());

                  include("**********************recrutement.php");


                  print("<script>alert(\"Félicitation ! Vous avez reussi votre concours, vous recevrez 20 € par jour ! Pour le bon fonctionnement du jeux, je vous demande svp de bien vouloir vous reconnectez pour une meilleure prise en compte de votre nouveau métier. Merci.\")</script>");

                  }

                  else
                  {
                  $argent = mysql_query("SELECT argent FROM tbl_user WHERE login='$login'") or die (mysql_error());
                  $donnees = mysql_fetch_array($argent);

                  $total2 = $donnees['argent'] - $prix;
                  $_SESSION['argent'] = $total2;

                  mysql_query("UPDATE tbl_user SET argent='$total2' WHERE login='$login' ") or die(mysql_error());

                  //refut

                  include("*******************recrutement.php");


                  print("<script>alert(\"Désolé vous avez loupé ce concours ! Vous pouvez toujours recommencer mais attention à votre argent !\")
                  </script>"
                  );

                  }

                  //et on ferme
                  mysql_close();

                  ob_end_flush();
                  ?>
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 janvier 2006 à 11:41:47

                    Mais ça c'est une page que tu inclues dans une autre page ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      28 janvier 2006 à 16:26:35

                      non ! c'est la page de resultat d'un formulaire d'une autre page.

                      <form action="CETTE PAGE" methode="post">
                      mon formulaire

                      </forme>
                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 janvier 2006 à 18:51:02

                        Ben si cette page est indépendante ça veut dire que le problème est ailleurs.
                        Tu es en local ou sur un hébergeur ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          28 janvier 2006 à 21:03:02

                          sur un hebergeur mais je pense pas que sa vienne de lebergeur car sur dotre page assez similaire sa marche tres bien
                          • Partager sur Facebook
                          • Partager sur Twitter
                            29 janvier 2006 à 13:11:55

                            Le fichier hote2.php, c'est celui dont tu nous as montré le code ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              29 janvier 2006 à 22:59:12

                              et en ligne 2 il est écrit session_start(); ?
                              Tu ne réutilises la fonction nulle part ailleurs ?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                3 février 2006 à 15:01:10

                                non juste dans ma page ou ya le formulaire et la page php du dessus
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  11 février 2006 à 12:00:52

                                  personne peut vraiment m'aider ? :(
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  erreur session_start();

                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                  • Editeur
                                  • Markdown