Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme de variable

syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

    29 décembre 2005 à 18:16:04

    voila ca fait un bonne heure que je suis sur mon scripte mais il fonctionn e toujour pas pouriez vous m'aider svp

    Citation : moi

    <?
    session_start();
    $_nombre = htmlentities($_POST['nombre']) + $_SESSION['homme1'];
    $_or = $_SESSION['or'] - htmlentities($_POST['nombre']);

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

    mysql_query("UPDATE boris_code SET pseudo='$_SESSION['pseudo']', code='$_SESSION['code'] WHERE homme1='$_nombre'");
    mysql_query("UPDATE boris_code SET pseudo='$_SESSION['pseudo']', code='$_SESSION['code'] WHERE or='$_or'");
    mysql_close();

    header("location:royaume.php");
    ?>


    merci de votre aide


    EDIT: dzl j'ai oublier de mettre la phrase qu'i mettait


    Citation : moi

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/heberg/boris/html/boris.network-hosting.com/traitements.php on line 9

    </span>
    • Partager sur Facebook
    • Partager sur Twitter
      29 décembre 2005 à 18:33:59

      Passage à la coloration syntaxique, j'édite et je met en valeur l'erreur.


      <?
      session_start();
      $_nombre = htmlentities($_POST['nombre']) + $_SESSION['homme1'];
      $_or = $_SESSION['or'] - htmlentities($_POST['nombre']);

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

      mysql_query("UPDATE boris_code SET pseudo='$_SESSION['pseudo']', code='$_SESSION['code'] WHERE homme1='$_nombre'");
      mysql_query("UPDATE boris_code SET pseudo='$_SESSION['pseudo']', code='$_SESSION['code'] WHERE or='$_or'");
      mysql_close();

      header("location:royaume.php");
      ?>


      Prends la bonne habitude de mettre or die(mysql_error()) à la fin de chaque requête, car ici, cela aurait pu te permettre de trouver l'erreur très rapidement: Tu ne fermes pas les ' de code= dans la requête... ;)
      Seconde erreur: concaténation. Si tu es sûr de tes variables, concaténes le $_SESSION. Dans le cas contraire, appliques un htmlentities(addslashes, puis enregistre la nouvelle variable ainsi rectifiée.
      Dans ce cas, on obtient pour la concaténation:
      <?php
      mysql_query("UPDATE boris_code SET pseudo='".$_SESSION['pseudo']."', code='".$_SESSION['code']."' WHERE or='$_or'") or die(mysql_error());
      ?>



      Lpu8er
      • Partager sur Facebook
      • Partager sur Twitter
        29 décembre 2005 à 18:45:19

        merci de ta reponse mais maintenant mon ordinateur m'affiche ca

        Citation : mon ordi

        You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or='420'' at line 1



        et oui je suis sur que mes variable $_SESSION existe bien
        • Partager sur Facebook
        • Partager sur Twitter
          29 décembre 2005 à 18:47:24

          Je me suis donc planté ^^


          <?php
          $pseudo_session = $_SESSION['pseudo'];
          $code_session = $_SESSION['code'];
          mysql_query("UPDATE boris_code SET pseudo='$pseudo_session', code='$code_session' WHERE or='$_or'") or die(mysql_error());
          ?>


          En principe, ce code devrait fonctionner ^^
          Et si non, je saurais pourquoi ;)


          Lpu8er
          • Partager sur Facebook
          • Partager sur Twitter
            29 décembre 2005 à 18:49:43

            Si je ne m'abuse, ta concaténation n'est pas bonne :p

            Essaye ça :

            <?php
            $pseudo_session = $_SESSION['pseudo'];
            $code_session = $_SESSION['code'];
            mysql_query('UPDATE boris_code SET pseudo='".$pseudo_session."', code='".$code_session."' WHERE or='".$_or."'') or die(mysql_error());
            ?>
            • Partager sur Facebook
            • Partager sur Twitter
              29 décembre 2005 à 18:51:28

              o_O

              Pour ma première concaténation, celle de tout à l'heure, j'uis d'accord, j'ai sûrement dû faire une erreur...

              Mais mon dernier code, s'il ne marche pas, c'est que les variables $_SESSION contiennent des guillemets, et ça fait planter la requête... We'll see. ^^


              Lpu8er
              • Partager sur Facebook
              • Partager sur Twitter
                29 décembre 2005 à 18:53:28

                peut etre un signe du destin il manque encor un probleme de "

                Citation : mon ordi

                Parse error: syntax error, unexpected '"' in /home/heberg/boris/html/boris.network-hosting.com/traitements.php on line 18



                EDIT:voila mon code

                Citation : moi

                <?
                session_start();
                if($_SESSION['a'] !=
                {
                header("location:index.php");
                }

                else
                {
                $_nombre=htmlentities($_POST['nombre']) + $_SESSION['homme1'];
                $_or=$_SESSION['or'] - htmlentities($_POST['nombre']);

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

                $pseudo_session = $_SESSION['pseudo'];
                $code_session = $_SESSION['code'];
                mysql_query('UPDATE boris_code SET pseudo='".$pseudo_session."', code='".$code_session."' WHERE or='".$_or."'') or die(mysql_error());
                }
                ?>
                • Partager sur Facebook
                • Partager sur Twitter
                  29 décembre 2005 à 18:55:33

                  ... dans quel code ? celui de Ext1cTi0n ? Ou le dernier que j'ai mis ?

                  Et c'est strange... Appliques un addslashes sur les variables session avant le query.

                  Trouvé ! $_nombre = htmlentities($_POST['nombre']) + $_SESSION['homme1'];
                  $_or = $_SESSION['or'] - htmlentities($_POST['nombre']);
                  Manque la parenthèse de fin à la première ligne ^^



                  Lpu8er
                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 décembre 2005 à 18:55:43

                    Tu as utilisé quel code ??

                    Dis nous ce que chaque code retourne comme erreur...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 décembre 2005 à 19:01:53

                      je suis desoler de te dire que ce n'est pas ca (Lpu8er)

                      la ligne qui pose probleme c'est celle la

                      Citation : moi

                      mysql_query('UPDATE boris_code SET pseudo='".$pseudo_session."', code='".$code_session."' WHERE or='".$_or."'') or die(mysql_error());



                      j'ai editer mon post d'au dessu
                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 décembre 2005 à 19:13:16

                        [EDIT: voir la solution plus ba...]
                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 décembre 2005 à 19:22:03

                          Même, il faut néanmoins que tu corriges d'abord l'erreur du dessus, car PHP est une bestiole assez bête sur les bords ^^

                          Et si, après ça, cette requête:
                          <?php
                          mysql_query("UPDATE `boris_code` SET pseudo='$pseudo_session', code='$code_session' WHERE or='$_or'") or die(mysql_error());
                          ?>

                          Ne fonctionne pas, alors c'est que les variables contiennent quelque chose faisant planter la query...


                          Lpu8er
                          • Partager sur Facebook
                          • Partager sur Twitter
                            29 décembre 2005 à 19:35:10

                            Je viens de trouver l'erreur (je pense) !

                            J'ai inversé ' et " !

                            Donc le bon code (je pense), et :

                            <?php
                            mysql_query('UPDATE boris_code SET pseudo="'.$pseudo_session.'", code="'.$code_session.'" WHERE or="'.$_or'."') or die(mysql_error());
                            ?>


                            Dis moi si ça marce ;)
                            • Partager sur Facebook
                            • Partager sur Twitter

                            probleme de variable

                            × 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