Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/07/2011, 15h42   #1
Membre habitué
 
Homme
Inscription : octobre 2003
Messages : 255
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2003
Messages : 255
Points : 103
Points : 103
Par défaut utilisation mysql_real_escape_string + magic_quotes

Bonjour, j'aurais une question sur l'utilisation de cette fonction ou du moins besoin d'une confirmation.

Dans la documentation, il est dit qu'il faut utiliser la fonction "stripslashes" avant si magic_quotes est activé.

Un ami, lui trouvait logique de faire stripslashes(mysql_real_escape_string(...))

La donnée reçue possède déjà les anti-slashs si on a les magic_quotes ?
D4rK_C0uaK6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 15h56   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 656
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 656
Points : 5 359
Points : 5 359
php.net propose un bout de code qui résume assez bien le problème :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
//si les magic quotes sont actives, utilisation de stripslashes
if (get_magic_quotes_gpc()) {
    $lastname = stripslashes($_POST['lastname']);
}
else {
    $lastname = $_POST['lastname'];
}
 
// Si vous utilisez MySQL
$lastname = mysql_real_escape_string($lastname);
 
$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
L'idée étant que les magic quotes ajoutent des slashes aux données POST et compagnie, la logique par rapport ce qu'utilisait ton ami ce serait plutot mysql_real_escape_string(stripslashes(...));.

Le mieux reste quand même de désactiver les magic quotes
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 16h01   #3
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 806
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 806
Points : 1 520
Points : 1 520
Il est préférable de tester l'activation des magic_quotes avant de faire un stripslashes().
Car cette dernière enlève un slash où qu'il se trouve.

Ainsi deux chaînes, l'une passant sur un serveur avec magic_quotes et l'autre sans :
Citation:
une chaîne avec un \ pour l'éclater
Une chaîne avec un \ pour l\'éclater
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 17h42   #4
Membre habitué
 
Homme
Inscription : octobre 2003
Messages : 255
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2003
Messages : 255
Points : 103
Points : 103
Ok merci. Oui c'est exactement ce que je fais. Merci pour la confirmation.
D4rK_C0uaK6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h26.


 
 
 
 
Partenaires

Hébergement Web