Modification sql UPDATE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Modification sql UPDATE

par Ajoloca » 23 nov. 2006, 19:58

Re,

Dans ce cas
il y en a 5 sur la page
Il faut procéder par étapes, une par une et déterminer celle qui ne fait pas ce que tu souhaites (mais c'est sur, elle fait ce que tu lui demandes)

Teste tous les paramètres que tu reçois avant l'affectation ($_POST[], $_GET[], $_SESSION[], .....)
Evite ce genre de choses
<?php if (isset($_GET['site'])) {
$site = $_POST['hexval1'];
utilise plustôt ceci
<?php if (isset($_GET['hexval1']) && $_GET['hexval1'] != '') {
   $site = $_POST['hexval1'];
}else{
   die('$_POST['hexval1'] est inexistante ou vide');
}

par Invité » 23 nov. 2006, 19:47

oui il y en a 5 sur la page et les cinq sont construite de la meme façon :

Code : Tout sélectionner

UPDATE temp SET evolution='oui', site='#0000FF' WHERE ip='127.0.0.1'
logiquement cette requete ne modifie que les champs demandé non?

par Ajoloca » 23 nov. 2006, 19:33

Re,

Tu est sur que nous parlons des mêmes requêtes ?
UPDATE temp SET banniere='1', evolution='oui' WHERE ip='127.0.0.1'
UPDATE temp SET evolution='oui', site='" . $site . "' WHERE ip='". $ip . "'"

par Invité » 23 nov. 2006, 19:16

Voila la requête :

Code : Tout sélectionner

mysql_query("UPDATE temp SET banniere='1', evolution='oui' WHERE ip='127.0.0.1'") or die (mysql_error(" Erreur MySQL : ".mysql_error()." "));
Elle fonctionne correctement, sauf que de tps en tps elle me supprime les valeur d'un autre champs???
Idem pour les autres requêtes, je ne comprend pas..??

par Ajoloca » 23 nov. 2006, 18:50

Bonjour,

Il est conseillé de séparer le SQL des variables PHP tout comme pour le HTML
$maj = "UPDATE temp SET evolution='oui', site='" . $site . "' WHERE ip='". $ip . "'";
mysql_query($maj) or die('<center>Erreur MySQL : <br /><b>'. mysql_error(). '</b></center>');
Est tu sur de ça ?
<?php if (isset($_GET['site'])) {
$site = $_POST['hexval1']; 
Tu ne testes pas la valeur que tu affectes ($_POST['hexval1'])

Je te conseille d'afficher la requête avant l'exécution pour voir exactement ce qu'elle contient.

Modification sql UPDATE

par pingoo67 » 23 nov. 2006, 18:09

Bonjour je ne sais pas si je suis au bonne endroit pour cette question mais je tente ma chanche...
Voila j'ais une page qui comprend plusieurs possibilitées de modification par formulaire.
Pour chaque partie je modifie simplement la valeur par un set toto=$valeur.
Le problème est que lorsque je modifie un champs dans une table, quelque fois d'autre champs ce vide?????
Voila mon code :
<form name="form1" method="post" action="creation.php?site=oui"> 
Cliquez sur "Valider" une fois votre couleur choisi.
<input type="text" name="hexval1" size="9" onChange="document.bgColor = document.form1.hexval1.value;">
<input type="submit" value="Valider" onClick="if(blocolor1) { blocolor1 = false; } else { blocolor1 = true; }">
</form><br />
<?php if (isset($_GET['site'])) {
$site = $_POST['hexval1']; 
mysql_query("UPDATE temp SET evolution='oui', site='$site' WHERE ip='$ip'") or die (mysql_error("<center>Erreur MySQL : <br><b>".mysql_error()."</b></center>"));
} ?>
Merci pour votre aide