par
AB » 06 janv. 2010, 01:36
Oui ce sont tes données qui sont mal formatées dans ta bdd.
Cela vient de ton système d'enregistrement qui n'a pas vérifié si get_magic_quotes_gpc était activé ou non.
En fait la bonne méthode est d'appliquer la fonction stripslashes
à la réception de ton formulaire si et uniquement si get_magic_quotes_gpc est activé et ensuite tu rentre les données protégées avec mysql_real_escape_string dans ta bdd.
La solution la plus portable - qui fonctionne quelque soit la configuration du serveur - est comme ci-dessous.
Exemple décomposé avec deux variables
function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
return $chaine;
}
if (isset($_POST))
{
// Supprime les slashes uniquement en cas de besoin (si la config serveur get_magic_quotes_gpc est sur on)
$pseudo = isset($_POST['pseudo']) ? Verif_magicquotes($_POST['pseudo']) : null;
$pass = isset($_POST['pass']) ? Verif_magicquotes($_POST['pass']) : null;
// Si $pseudo et $pass différents de null
if(isset($pseudo,$pass))
{
// Connexion au serveur
// ...
// Connexion à la base
// ...
// Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
$nom = mysql_real_escape_string($pseudo);
$password = mysql_real_escape_string($pass);
// Requête
$insertion = "INSERT INTO matable(pseudo,pass) VALUES('".$nom."', '".$password."')";
// suite code
}
}
Exemple tiré de
ce tuto
De cette façon, tu n'auras pas à te préocupper de la configuration get_magic_quotes_gpc du serveur.
Oui ce sont tes données qui sont mal formatées dans ta bdd.
Cela vient de ton système d'enregistrement qui n'a pas vérifié si get_magic_quotes_gpc était activé ou non.
En fait la bonne méthode est d'appliquer la fonction stripslashes [b]à la réception de ton formulaire[/b] si et uniquement si get_magic_quotes_gpc est activé et ensuite tu rentre les données protégées avec mysql_real_escape_string dans ta bdd.
La solution la plus portable - qui fonctionne quelque soit la configuration du serveur - est comme ci-dessous.
Exemple décomposé avec deux variables
[php]function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
return $chaine;
}
if (isset($_POST))
{
// Supprime les slashes uniquement en cas de besoin (si la config serveur get_magic_quotes_gpc est sur on)
$pseudo = isset($_POST['pseudo']) ? Verif_magicquotes($_POST['pseudo']) : null;
$pass = isset($_POST['pass']) ? Verif_magicquotes($_POST['pass']) : null;
// Si $pseudo et $pass différents de null
if(isset($pseudo,$pass))
{
// Connexion au serveur
// ...
// Connexion à la base
// ...
// Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
$nom = mysql_real_escape_string($pseudo);
$password = mysql_real_escape_string($pass);
// Requête
$insertion = "INSERT INTO matable(pseudo,pass) VALUES('".$nom."', '".$password."')";
// suite code
}
}
[/php]
Exemple tiré de [url=http://forum.phpfrance.com/faq-tutoriels/inscription-connexion-dans-espace-membres-t242539.html]ce tuto[/url]
De cette façon, tu n'auras pas à te préocupper de la configuration get_magic_quotes_gpc du serveur.