Apostrophe et antislash

WRInaute discret
Bonjour,

J'ai des formulaires avec des champs text remplis par les utilisateurs du site.
Lorsque l'utilisateur entre un apostrophe, il arrive que celui si soit stocké avec un anti-slash dans la base de donnée, voire même avec plusieurs antislash.
J'ai donc dans certaines entrées de la BDD des :
"J\\\\\\\\\\\\'aime m\\\\\\\\\\\'amuser"...

Savez vous comment faire pour éviter que ces antislashs apparaissent ?

Merci !
 
WRInaute discret
Verifie que tu n'aie pas des boucles dans ton code php qui applique un addslashes plusieures fois sur le meme string.
 
WRInaute discret
Je fais simplement un:
$message = $HTTP_POST_VARS["message"];

suivi d'une query:
$query = "INSERT INTO $table2 VALUES (...,'$message',...)";

et pourtant c'est parfois sauvegardé avec plein d'antislashs dans la BDD....
 
WRInaute discret
:!: c'est pas bien ce que tu fais la ! Il faut que tu protège un minimum ta chaine avec mysql_real_escape_string si tu veux pas avoir des problèmes

Pour ton problème regardes peut etre au niveau des magic quotes
 
Nouveau WRInaute
Salut à tous,

Déjà ceci est très mauvais pour la sécurité :

Code:
$message = $HTTP_POST_VARS["message"];

suivi d'une query:
$query = "INSERT INTO $table2 VALUES (...,'$message',...)";

Donc ceci est mieux :

Code:
if(get_magic_quotes_gpc())
     stripslashes($_POST["message"]);

$message = mysql_escape_string($_POST["message"]);
$query = "INSERT INTO $table2 VALUES (...,'$message',...)";

Pourquoi faire un stripslashes si tu as les magic_quotes_gpc d'activer ? Tout simplement car se sont les magic_quotes_gpc qui te rajoute les \ et si tu en as plusieurs c'est que l'utilisateurs à fait une modification de sont nom par exemple mais que tu n'as pas enlever les \.

Donc pour commencer désactive les magic_quotes_gpc utilise la fonction de mysql pour te protéger et utilise les fonctions htmlentities ou htmlspecialchars avec l'option ENT_QUOTES.

De plus si tu as ce soucis c'est que tu ne fais pas attention le moins du monde à ce que tes utilisateurs t'envoies via les formulaires et tu es donc potentiellement attaquable pour le XSS et injection SQL.

Cordialement Inazo.
 
Discussions similaires
Haut