Modifier bdd en php

salut a tous, tout d'abord un petit café pour la route!!
bon je vous explique mon probleme, j'ai une base de donnée et des pages en php, et ca marche, la j essaye de pouvoir modifier de champs dans ma bases, alors j ai fait comme ca:

$bdd = "auvergnelocal";
$user = "root";
$passwd = "";
$host = "localhost";
$numsite = $_GET['site_num1'];
$site_num2 = $_GET['site_num2'];

mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");

$requete=mysql_query("SELECT * FROM `adherent` WHERE site_num1=$numsite" );
while ($donnees = mysql_fetch_array ($requete) )
{?>
Numero du site:<input type="text" name="new_site_num1" size="20" value=<?echo($donnees['site_num1']);?> ><br>
Numero de sous-site:<input type="text" name="new_site_num2" size="20" value=<?echo($donnees['site_num2']);?>><br>
Nom de l etablissement:<input type="text" name="new_etb" size="20" value=<?echo($donnees['etb']);?>><br>

<?}?>

<? UPDATE adherent SET site_num1= new_site_num1 WHERE site_num1=$numsite AND site_num2=$site_num2 ;?>

mais j'ai le message d'erreur suivant:
Parse error: parse error, unexpected T_STRING in c:\program files\easyphp1-7\www\modif.php on line 31

j'ai pourtant essayer de mettre des guillemets, de changer des truc dans le update, mai bon rien a faire....

si quelqu'un voit le probleme faite moi signe ;)

l'informatique ca rend fou!!!!!

31 réponses

Résumé de la discussion

Problème rencontré lors de la modification de champs d'une base MySQL via PHP, avec une tentative d'UPDATE et des erreurs de syntaxe provoquées par une injection HTML/PHP et des requêtes non échappées. Plusieurs réponses expliquent qu'UPDATE est une requête SQL exécutée via mysql_query et entourée de guillemets, et recommandent d'utiliser un formulaire avec submit et d'envoyer les valeurs vers traitement.php pour mettre à jour les enregistrements. En parallèle, la présence d'erreurs de syntaxe et de balises PHP imbriquées dans le HTML peut provoquer des parse errors; mieux vaut séparer le traitement PHP du HTML et privilégier des requêtes sécurisées.

Bobot (l’IA à votre service)
  1. Ouais j'étais plus là !

    Ben si ça marche alors... Que demande le peuple ?! :)

    .::: "A trop vouloir feindre de faire fi, on finit
    par faire fi de vouloir feindre."
    :::.
    0
    1. ca ca marche, mais j ai un autre probleme now avec le update!!!
      mais bon la je quitte le boulot c'est 6h
      donc j'espere qe tu sera la demain pour me sauver ( encore une fois :p)

      l'informatique ca rend fou!!!!!
      0
  2. a ba chelou!! en changeant rien ca marche now.....

    l'informatique ca rend fou!!!!!
    0
    1. super flocko t'est parti???

      l'informatique ca rend fou!!!!!
      0
      1. ya un truc trop chelou, quand je fait ca:
        <tr>
        <td><INPUT TYPE="Hidden" NAME="site_num1" VALUE="<? echo $numsite; ?>"></td>
        <td><INPUT TYPE="Hidden" NAME="site_num2" VALUE="<? echo $site_num2; ?>"></td>
        </tr>

        et ba site_num1 y marche et pas site_num2!!!!!!
        et y me dit que le probleme vient de la:
        $site_num1=$_GET['site_num1'];
        $site_num2=$_GET['site_num2'];

        Notice: Undefined index: site_num2 in c:\program files\easyphp1-7\www\traitement.php on line 19

        l'informatique ca rend fou!!!!!
        0
        1. Je ne sais pas, mais de toute façon ce n'est pas une façon propre de procéder.

          Rajoutes plutôt dans ton formulaire un champ caché :
          <INPUT TYPE="Hidden" NAME="site_num1" VALUE="<? echo $numsite; ?>">

          .::: "A trop vouloir feindre de faire fi, on finit 
          par faire fi de vouloir feindre." 
          :::.
          0
          1. a ba nikel, je te remercie, ca mache!!
            je ne savais pas que l'on pouvait faire ca;)

            l'informatique ca rend fou!!!!!
            0
        2. je voudrai savoir, pourquoi quand je fait ca:
          <FORM ACTION="traitement.php?site_num1=<? echo $numsite; ?>" METHOD="get">

          et que dans la page traitement e fait ca:
          $site_num1=$_GET['site_num1'];

          ca me dit:
          Notice: Undefined index: site_num1 in c:\program files\easyphp1-7\www\traitement.php on line 18

          l'informatique ca rend fou!!!!!
          0
          1. "$donnees['nm']"
            C'est quoi ce 'nm' ? Une variable ou non ?

            PS: Si tu veux avoir le même rendu que si tu avais utilisé des tabulations, tu devrais mettre un border=0 à ton tableau.

            .::: "A trop vouloir feindre de faire fi, on finit 
            par faire fi de vouloir feindre." 
            :::.
            0
            1. arf dsl flocko, ce que j'ai di au dessus c'est n'importe quoi, en fait ca marche:p
              c'est juste que mon champs était vide!!!:p
              je sais je suis un boulet :p
              sur les autre ca marche
              sinon, pour le style d tableau, je verai, pour l'instant, ca n'a pas d'importance, je modifierai la presentation plus tard;)

              l'informatique ca rend fou!!!!!
              0
          2. a ba connais pas :D
            e vais me la faire a l'ancienne, par contre quand je fais ca:
            <FORM ACTION="traitement.php" METHOD="get">
            <table border="3" cellspacing="6" cellpadding="5">
            <tr>
            <td>Nom:</td>
            <td><input type="texte" name="new_nm" size="20" value="<?echo($donnees['nm']);?>"></t</td>

            </tr>

            et bien le value y marcepas, il n'y a rien dedans :(

            l'informatique ca rend fou!!!!!
            0
            1. Ça ressemble à ça :
              .menu {
              color: #FFFFFF;
              font-family: arial;
              font-size: 12pt;
              font-weight: bold;
              background-image: url("menu.jpg");
              background-repeat: no-repeat;
              float: left;
              width: 144px;
              padding: 10px;
              margin-right: 50px;
              height: 100%;
              }

              .::: "A trop vouloir feindre de faire fi, on finit 
              par faire fi de vouloir feindre." 
              :::.
              0
              1. Tu peux utiliser le CSS, mais si tu connais pas il va te falloir apprendre le mode de positionnement.

                Sinon tu peux utiliser un éditeur WYSIWYG gratuit comme ceux qu'on t'a indiqués l'autre jour, et ton tableau se fera tout seul, tu n'auras plus qu'à copier-coller tes champs dans les cellules...

                .::: "A trop vouloir feindre de faire fi, on finit 
                par faire fi de vouloir feindre." 
                :::.
                0
                1. si ca ce trove je sais ce que c'est le css, mais je connais pas le nom!:p
                  tu pourait pas me dire a quoi ca ressemble??

                  l'informatique ca rend fou!!!!!
                  0
              2. par contre, ca s'anonce super chiant!!
                ca va me faire un max de:
                <tr>
                <td>
                <td>
                </tr>
                en fait pour une ligne y me faut un truc comme ca, et vu qe j'ai une vintaine de ligne....
                ya pa plus simple??
                genre mettre une tabulation apres le texte, cmme ca les champs sont tos au niveau de la tabulation?
                en sachant que j'ai deja tout taper..
                mais bon si il faut refaire, je referais!!

                l'informatique ca rend fou!!!!!
                0
                1. remarque très judicieuse....... ;)

                  l'informatique ca rend fou!!!!!
                  0
                  1. "ps: ne me proposez pas de les mettre en tableau, mon chef aime mieu que elle soient les une sous les autre;) "

                    Je ne comprends pas en quoi le fait de les disposer dans un tableau imposerait que tes zones de saisies ne soient pas les unes sous les autres !

                    .::: "A trop vouloir feindre de faire fi, on finit 
                    par faire fi de vouloir feindre." 
                    :::.
                    0
                    1. re tout le monde!
                      bon ba la je pence que le petit digo s'impose, donc c'est ma tournée;)
                      bon, j ai encore une petite question, en fait la c'est juste un problème de presentation, je vous explique:

                      <FORM ACTION="traitement.php" METHOD="get">
                      Nom:<input type="texte" name="new_nm" size="20" value="<?echo($donnees['nm']);?>"><br>
                      Nom de l etablissement: <input type="texte" name="new_etb" size="20" value="<?echo($donnees['etb']);?>"><br>
                      Code postal:<input type="texte" name="new_cp" size="20" value="<?echo($donnees['cp']);?>"><br>
                      Adresse:<input type="texte" name="new_ad" size="20" value="<?echo($donnees['ad']);?>"><br>

                      j'ai un truc comme ca, en fait ca me met par exemple:
                      nom: et le champs pour ecrire

                      le probleme, c'est que come vous vous en doutez, ca fait bien bien moche que toute les zones de saisies ne soient pas alignées, donc j'aurai aimer savoir commen les alignés dans un soucis d'estetique, car la c'est vraiment très moche et ca fait grave le bordel!!!

                      ps: ne me proposez pas de les mettre en tableau, mon chef aime mieu que elle soient les une sous les autre;)

                      l'informatique ca rend fou!!!!!
                      0
                      1. j'ai failli oublier:
                        APERO POUR TOUT LE MONDE!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                        l'informatique ca rend fou!!!!!
                        0
                        1. De rien, bon appétit à toi aussi ! :)

                          .::: "A trop vouloir feindre de faire fi, on finit 
                          par faire fi de vouloir feindre." 
                          :::.
                          0
                          1. en effet flocko, c'est une exellente idée!
                            meme mon chef a trouver que c'etait une bonne idée!!MDR
                            c'est pour ca que je repond tard, il est venu voir ce que je faisait et
                            je lui ai di oui mai regardez ce que on ma proposé sur un forum :p
                            et il a trouvé l'idée très judicieuse ;)
                            donc la je vai refaire avec ta methode, et je pense pas reposter avant cette aprem
                            je vous tiens au courant
                            bon ap et encore merci flocko

                            l'informatique ca rend fou!!!!!
                            0
                            1. Ah oui pardon j'avais pas lu ce que tu as fait avant !

                              Alors en fait tu t'y prends mal, puisque tu viens de faire un formulaire, il te suffit d'y ajouter un bouton submit !

                              Tu places une balise <FORM ACTION="traitement.php" METHOD="get">, tu rajoutes tes INPUT, puis tu ajoutes <INPUT TYPE="submit" Value="Modifier"></FORM>

                              .::: "A trop vouloir feindre de faire fi, on finit 
                              par faire fi de vouloir feindre." 
                              :::.
                              0
                              1. arf!!
                                en plus ta methode ba elle a pas l'air de fonctionner, ca le rend fou, il dit que new_site_num1 n'est pas défini.... ce qui dans un sens va avec ce que je vient de te demandre juste au dessus...
                                qu'est ce que tu en pense??

                                l'informatique ca rend fou!!!!!
                                0
                                1. Ah ben oui c'est normal ! :)

                                  Regarde ce que tu as fait :
                                  <a href=traitement.php?site_num1=new_site_num1&site_num2=new_site_num2&etb=new_etb>

                                  Il faut faire :
                                  <a href=traitement.php?site_num1=<? echo $new_site_num1; ?>&site_num2=<? echo $new_site_num2; ?>&etb=<? echo $new_etb; ?>>

                                  .::: "A trop vouloir feindre de faire fi, on finit 
                                  par faire fi de vouloir feindre." 
                                  :::.
                                  0
                                  1. ba c'est bizar, car quand tu met:
                                    site_num1=<? echo $new_site_num1; ?>
                                    ca insinu que new_site_num_1 c'est une variable, hors, regarde mon code au debut et tu vera que je l'ai pas declarer en variable...

                                    a moin que je n'ai pas compris, les variable... je pensais que c'etait une variable que si tu mettait $ devant, et sinon, c'etait pas de vrai variable

                                    ?!?!? etrange......

                                    l'informatique ca rend fou!!!!!
                                    0
                                • 1
                                • 2