Page 1 sur 1

Fonction update chez Online

Posté : 13 janv. 2012, 08:19
par Nad21
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>";

Re: Fonction update chez Online

Posté : 13 janv. 2012, 09:47
par Mazarini
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.

Re: Fonction update chez Online

Posté : 13 janv. 2012, 11:10
par xTG
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

Posté : 14 janv. 2012, 11:15
par Nad21
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

Posté : 14 janv. 2012, 11:21
par xTG
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

Posté : 14 janv. 2012, 11:59
par Nad21
effectivement ca marche mieux comme ca
merci
Nadege