begin process at 2012 05 31 12:14:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

probleme avec update


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme avec update

jeudi 19 février 2009 à 16:35:30 | probleme avec update

rishi24

Bonjour, bon voila mon prob. je veux modifier un element dans ma base en faisant un update grace à un formulaire.Je passe mes variables en parametre grace à la méthode post. Le truc c'est que quand je fais le teste, il m'indique que la modification a été correctement faite mais lorsque je consulte ma base, elle n'a pas été modifier. Pouvez vous m'aider svp.Merci. voici mon code:
formulaire avec bouton modifier->modification1.php->modifiction2.php
.....
dans modification1.php
/*afficher le formulaire*/
        echo '<form id="contact" method="post" action="modification2.php">';
        echo '  <center><p><h2><u>Modification</u></h2></p></center>'."\n";       
        echo '    <fieldset style="background-color:#b0c4de"><legend></legend>'."\n";
        echo '        <p>'."\n";
        echo '    <fieldset style="background-color:#dcdcdc">'."\n";
        echo '            <label for="Nom">Nom :</label>'."\n";
        echo '    <input type="text" id="Nom" name="Nom" value="'.stripslashes($_GET['nom']).'" tabindex="1"/>'."\n";
        echo '        </p>'."\n";
        echo '    </fieldset>'."\n";
        echo '<input type="submit" value="modifier">';
        echo '</form>'."\n";

et dans modification 2.php
// On commence par récupérer les champs
if(isset($_POST["nom"]))
  $nom=$_POST['nom'];
else      $nom="";

//création de la requête SQL:
  $sql = "UPDATE personnes
            SET nom         = '$nom',
           WHERE nom = '$nom' " ;
           
  //exécution de la requête SQL:
  $requete = mssql_query($sql, $cnx) or die("->".mssql_get_last_message()."<-" ) ;
  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
    echo("La modification a été correctement effectuée") ;
  }
  else
  {
    echo("La modification a échouée") ;
  }
.......
jeudi 19 février 2009 à 20:28:20 | Re : probleme avec update

TychoBrahe

Salut,

Commence déjà par relire ce que fait ta requette SQL, au besoin fait une simulation avec un exemple. D'ailleurs regardons ensemble ce que ça donne si l'utilisateur entre toto dans le champ :
UPDATE personnes SET nom='toto' WHERE nom='toto'
Donc en gros, tu cherche une personne dont le nom est toto et tu va le changer en toto. Il faut avouer que modifier un nom par le même nom n'a pas beaucoup d'effet.

Soit dit en passant j'ai le plaisir de t'avertir d'un grave faille de sécurité dans ton code. N'importe quel attaquant est en mesure d'écraser toutes les données de ta table a l'aide d'une injection de SQL. A titre informatif je te donne ici un exemple de requette permettant une telle destruction :
toto' --
(l'espace a la fin est important).
Une telle requête va écraser le champ non de toutes les entrés de ta table. Bien entendu je suppose que tu dispose d'une faille similaire autre part dans ton site avec un SELECT qui affiche un résultat, un attaquant pourrais s'en servir pour dumper toutes te base et accessoirement améliorer la requette ci dessus en lui donnant les autres champs de ta table a écraser.
jeudi 19 février 2009 à 20:38:16 | Re : probleme avec update

rishi24

salut TychoBrahe,merci de m'avoir répondu. Au fait c'est juste un devoir à rendre,je vais pas publié mon site sur le web.Néamoins c'est bien de m'avoir averti quand meme.

Pour revenir à mon problème, as tu une idée comment je peux faire pour résoudre mon pb. Peut etre en mettant des id.?
jeudi 19 février 2009 à 21:09:45 | Re : probleme avec update

TychoBrahe

Réponse acceptée !
Pour faire un tel formulaire je suppose que l'utilisateur est connecté. Si c'est effectivement le cas tu est en mesure de connaître l'utilisateur et donc de repérer dans la base de donnée l'entrée qui lui correspond a l'aide son son id, nom ou autre.

Pour ce qui est de l'injection de SQL, tu peux utiliser mysql_real_escape_string() ou htmlentities() avec l'option ENT_QUOTES afin d'assainir la chaîne de caractères. Bon ok si ce n'est qu'un devoir ce n'est pas bien important, sauf bien entendu si ton prof fait rentrer ce genre de choses dans le barème d'évaluation.

Soit dit en passant, ton test de la réussite de la modification e sert a rien : dans el cas où cette dernière échoue, le script sera arrêté net par le die() avant le test.


Cette discussion est classée dans : php, sql, echo, modification, update


Répondre à ce message

Sujets en rapport avec ce message

php bizarre.. à l'aide. [ par bossun ] salut, j'ai 2 requetes... une insert l'autre update... 1. $sql ="Insert ...."; $result = mysql_query($sql); 2.$sqlUpd ="Update..." $result2 = mysql_q comment modifier les champs d'un formulaire [ par dekec ] je souhaiterais recevoir de vous une aide. j'ai un formulaire, j'arrive a inserrer les données dans le formulaire, mais concernant les modification, h tableau php sql [ par fredsaxo ] Bonjour, Après trop de temps passé, je me tourne vers vous.. Je cherche à mettre en place un tableau de vignettes photo. Quand on passe sur la vigne cellule tableau php sql [ par jolina87 ] Bonjour, je veux vos aides s.v.p. je veux afficher les coordonnées d'un étudiant, c.à.d j'ai récupéré le nom et le prénom dans un tableau et j'ai asso Faire un update sql sur plusieurs ligne avec un formulaire [ par Bxapero ] Bonjour, Je créer un logiciel pour la société que je monte, je suis bloqué pour faire un update a partir d'un formulaire générer en php. Je ne sais modification de données [ par saloumasamo ] Saut les amis Bon voila je suis un débutante en php/mysql, j'ai créer un BD et je suis entrain de faire les ajouts et les suppressions à travers une Problème de sécurité session [ par mailliam ] Bheu.. n'aurais-je pas compris qque chose au sujet des sessions [^^confus2] j'ai un formulaire de connexion qui envoie la variable $user à mon script Options pour formulaire de contact Php [ par paikan06 ] Bonjour à tous ! Je suis admin réseau de formation et je me lance tout doucement dans le php ([^^sad2]pas très simple !!) Je viens de créer un formula comment crypter mon mot de passe [ par msi079 ] salut . j'ai un code qui marche mais mon problème est que le mot de passe n'est pas crypté . je suis débutant en php je sais pas comment m'y prendre. php&sql&image [ par ftsitoha ] J'ai insert une image dans ma DB est elle est bien là mais je ne réussis pas a faire apparaître sur le page " alt=" image rien" width="50" height=


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales