Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 27/10/2006, 14h39   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 9
Points : 3
Points : 3
Par défaut [SQL] Apostrophe dans une requete SQL

Bonjour,

Sur mon site PHP, j'ai des formulaires liés à une base Oracle.
Or, quand je saisi un Apostrophe dans un champ Texte, le UPDATE ne fonctionne pas...
Je n'ai pas trouvé de moyen pour pourvoir en saisir quand meme...

si quelqu'un connait la solution...

Merci.

jdiamsss
jdiamsss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2006, 15h14   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Passe ta donnée par mysql_real_escape_string().
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2006, 01h42   #3
Membre à l'essai
 
Étudiant
Inscription : octobre 2006
Messages : 36
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2006
Messages : 36
Points : 22
Points : 22
Envoyer un message via MSN à adil_aeh
Bonjour,
Moi aussi j'avais le même probléme dans un projet en php, la solution que j'ai trouvé c'est la fonction addslashes(), elle permet d'ajouet des slashes afin que la requête soit accepté
si ta zone de texte est nommée : zone_texte
alors
Code :
1
2
$texte = $_POST['zone_texte'];
            $texte = addslashes($texte);
là tu peux utiliser la variable $texte dans ta requête sans probléme
adil_aeh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2006, 18h05   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Citation:
Envoyé par adil_aeh
Bonjour,
Moi aussi j'avais le même probléme dans un projet en php, la solution que j'ai trouvé c'est la fonction addslashes(), elle permet d'ajouet des slashes afin que la requête soit accepté
si ta zone de texte est nommée : zone_texte
alors
Code :
1
2
$texte = $_POST['zone_texte'];
            $texte = addslashes($texte);
là tu peux utiliser la variable $texte dans ta requête sans probléme
Je ne suis pas d'accord. mysql_real_escape_string() ne protège pas que les apostrophes, elle protège tous les caractères dangereux d'une chaîne. Elle est donc la seule à te garantir la sécurité à 100% de ta requête.
D'après le manuel php :
Citation:
mysql_real_escape_string() protège les caractères spéciaux de la chaîne unescaped_string, en prenant en compte le jeu de caractères courant de la connexion link_identifier. Le résultat peut être utilisé sans problème avec la fonction mysql_query(). Si des données binaires doivent être insérées, cette fonction doit être utilisée.

mysql_real_escape_string() appelle la fonction mysql_escape_string() de la bibliothèque MySQL qui ajoute un slashe aux caractères suivants : NULL, \x00, \n, \r, \, ', " et \x1a.

Cette fonction doit toujours (avec quelques exceptions) être utilisée pour protéger vos données avant d'envoyer la requête à MySQL.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2006, 21h30   #5
Membre à l'essai
 
Étudiant
Inscription : octobre 2006
Messages : 36
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2006
Messages : 36
Points : 22
Points : 22
Envoyer un message via MSN à adil_aeh
Oui, tu as tout à fait raison vg33, addslashes() ne protége la chaine que contre les guillemets simples ( ' ), guillemets doubles ( " ), anti-slash ( \ ) et NUL (le caractère NULL ). Merci pour l'information
adil_aeh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h12.


 
 
 
 
Partenaires

Hébergement Web