Toujours ces satanés apostrophes
lionel0769
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
lionel0769 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
lionel0769 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je m' occupe d'un forum ou des choses ont été développé et j'essaye de corriger certains bug et je bug sur celui des apostrophes pourtant j'ai lu plusieurs sujets mais j'ai du mal à suivre et en tout cas ça n'a rien donné
la portion de code incriminé:
et lorsque $bac->description contient un apostrophe ça plante
Merci pour votre aide
Je m' occupe d'un forum ou des choses ont été développé et j'essaye de corriger certains bug et je bug sur celui des apostrophes pourtant j'ai lu plusieurs sujets mais j'ai du mal à suivre et en tout cas ça n'a rien donné
la portion de code incriminé:
function save_bac($bac, $user_id){ global $db, $table_prefix; $lastupdate = date('Y-m-d G:i', time()); if($bac->id){ $sql = "UPDATE ".$table_prefix . "visiobac_bac SET biotope_id='".$bac->biotope->id."', volume='$bac->volume',filtration='".$bac->filtration."', eclairage='".$bac->eclairage."', sable='".$bac->sable."', description='".$bac->description."', url='".$bac->url."', longueur='$bac->longueur', largeur='$bac->largeur', hauteur='$bac->hauteur', marque='".$bac->marque."', lastupdate='$lastupdate' WHERE id=$bac->id"; } else { $sql = "INSERT INTO ".$table_prefix ."visiobac_bac (user_id, biotope_id, volume, filtration, eclairage, sable, description, url, longueur, largeur, hauteur, marque, lastupdate) VALUES ('$user_id','".$bac->biotope->id."','$bac->volume','".$bac->filtration."', '".$bac->eclairage."', '".$bac->sable."', '".$bac->description."', '".$bac->url."', '$bac->longueur', '$bac->largeur', '$bac->hauteur', '".$bac->marque."', '$lastupdate')"; } $db->sql_query($sql); }
et lorsque $bac->description contient un apostrophe ça plante
Merci pour votre aide
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
3 réponses
Bonjour,
1 - ... tu utilises l'ancienne extension mysql ... elle est considérée comme obsolète.
Je t'invite à lire ceci :
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Puis à passer à mysqli ou ( je préfère....) la PDO.
Avec les nouvelles extensions mysql existe les requêtes préparées qui permettent, entre autres choses, de ne plus avoir à s'inquiéter des apostrophes....
2 - Dans le cas où tu ne voudrais pas passer à une nouvelle extension mysql (tu aurais tord... mais bon...) ... il existe la fonction addslashes
:http://php.net/manual/fr/function.addslashes.php
Cordialement,
Jordane
1 - ... tu utilises l'ancienne extension mysql ... elle est considérée comme obsolète.
Je t'invite à lire ceci :
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Puis à passer à mysqli ou ( je préfère....) la PDO.
Avec les nouvelles extensions mysql existe les requêtes préparées qui permettent, entre autres choses, de ne plus avoir à s'inquiéter des apostrophes....
2 - Dans le cas où tu ne voudrais pas passer à une nouvelle extension mysql (tu aurais tord... mais bon...) ... il existe la fonction addslashes
:http://php.net/manual/fr/function.addslashes.php
Cordialement,
Jordane
Salut,
En complément de la réponse de jordane45, préfère l'utilisation de la fonction dédiée mysql_real_escape_string() à la place de addslashes() pour échapper les caractères spéciaux sql.
Dans l'idéal si tu passes à PDO ou Mysqli, l'équivalent est :
- les requêtes préparées ou quote() pour PDO
- mysqli_real_escape_string() pour Mysqli
Bonne journée
En complément de la réponse de jordane45, préfère l'utilisation de la fonction dédiée mysql_real_escape_string() à la place de addslashes() pour échapper les caractères spéciaux sql.
Dans l'idéal si tu passes à PDO ou Mysqli, l'équivalent est :
- les requêtes préparées ou quote() pour PDO
- mysqli_real_escape_string() pour Mysqli
Bonne journée