Fonction update chez Online

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 : Fonction update chez Online

Re: Fonction update chez Online

par Nad21 » 14 janv. 2012, 11:59

effectivement ca marche mieux comme ca
merci
Nadege

Re: Fonction update chez Online

par xTG » 14 janv. 2012, 11:21

Utilises les avant le sprintf(). ^^'
Et le prototype de la fonction indique l'utilisation suivante :
$chaine_echappe = mysql_real_escape_string($chaine_non_echappe);

Re: Fonction update chez Online

par Nad21 » 14 janv. 2012, 11:15

Bonjour
Effectivement je viens de faire un texte c'est effetivement les apostrophes qui font bugguer le tout
j'ai donc essayer la fonction mysql_real_escape_string
mais ce ne fonctionne pas, je n'ai aucun message d'erreur mais rien ne s'affiche (comme si la fonction n'etait pas lue)

Code : Tout sélectionner

$up=sprintf("UPDATE contenu SET fr1='$fr1', fr2='$fr2', gb1='$gb1', gb2='$gb2' WHERE id=$id"; mysql_real_escape_string($id), mysql_real_escape_string($fr1), mysql_real_escape_string($fr2); mysql_real_escape_string($gb1), mysql_real_escape_string($gb2));
merci

Re: Fonction update chez Online

par xTG » 13 janv. 2012, 11:10

Il ne faut pas mettre and, mais une virgule dans la partie set.
Les deux écritures sont autorisées.

Dans l'ensemble on peut voir que tu ne protèges pas tes variables insérées dans la requête.
Donc je parierai sur la configuration magic_quote qui était auparavant active et qui t'échappait donc toute données provenant d'un formulaire évitant ainsi l'erreur SQL.
Regardes la fonction mysql_real_escape_string() dans la documentation. ;)

Re: Fonction update chez Online

par Mazarini » 13 janv. 2012, 09:47

Il faudrait nous donner le SQL tel qu'affiché par l'echo et le message d'erreur de mysql_error().

Il ne faut pas mettre and, mais une virgule dans la partie set.

Fonction update chez Online

par Nad21 » 13 janv. 2012, 08:19

Bonjour
J'ai un soucis ma fonction update chez Online ne fonctionne plus alors que tout se passait bien avant
Je suppose qu'il y a eu un changement au niveau de leur serveur qui fait que je doive changer mon code mais a vrai dire pour moi tout est ok
si quelque 'un peut voir ou ca bug
j'ai un message d'erreur d'insertion dans la base
merci
Nadège

Code : Tout sélectionner

function modifier_contenu($id,$fr1,$fr2,$gb1,$gb2){ //vérification des paramètres passés $tab_erreur = array(); if(is_null($fr1)){ $tab_erreur["fr1"] = $fr1; } if(is_null($fr2)){ $tab_erreur["fr2"] = $fr2; } if(is_null($gb1)){ $tab_erreur["gb1"] = $gb1; } if(is_null($gb2)){ $tab_erreur["gb2"] = $gb2; } //affichage du tableau d'erreurs si elles existent $nb_erreur = count($tab_erreur); if($nb_erreur > 0){ echo $tab_erreur; exit(); } $up="UPDATE contenu SET fr1='$fr1', fr2='$fr2', gb1='$gb1', gb2='$gb2' WHERE id=$id"; echo '<br>'.$up; $resultat=mysql_query($up); if ($resultat){ return true; } else { return false; } }
sur la page du site

Code : Tout sélectionner

$UP="UPDATE contenu SET 'fr1'='$fr1' AND 'fr2'='$fr2'AND'gb1'='$gb1'AND'gb2'='$gb2' WHERE id='$id'"; mysql_query($UP); echo $UP; echo"<br><br><div align=\"center\">Votre modification a bien été enregistrée"; echo"<p align=\"center\"><a href=\"index.php\">retour à l'accueil de l'adminsitration</a></p>";