Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
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 08/05/2008, 22h44   #1
Invité régulier
 
Inscription : mars 2008
Messages : 18
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 18
Points : 6
Points : 6
Par défaut Enregistrer du texte avec des '

Bonjour, je fais mes premiers pas dans le php et je crée un formulaire de saisie avec sauvegarde d'une zone de texte en base.
Tout marche tres bien sauf quand le texte comporte des ' (des apostrophes quoi), le serveur l'interprête comme la fin de la chaine de texte, et plande bien sûr en interprétant la suite...
Comment transformer une requête d'insertion comportant une une zone de texte avec potentiellement des apostrophes en requête insérable ?
exemple comment faire pour transformer
"update toto set titi = 'tentative d'insertion'" en requête qui fonctionne ?
(Sous oracle on transforme les ' en '' pour les neutraliser mais en Mysql ? est-ce pareil ? Si oui existe-t-il une fonction qui le fasse ?)
Merci !
Lamy D est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2008, 22h56   #2
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
Citation:
Envoyé par Lamy D Voir le message
(Sous oracle on transforme les ' en '' pour les neutraliser mais en Mysql ? est-ce pareil ? Si oui existe-t-il une fonction qui le fasse ?)
Merci !
C'est idem !
Sinon tu peux utiliser mysql_real_escape_string()
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2008, 22h56   #3
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 835
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 835
Points : 3 468
Points : 3 468
Il existe la fonction mysql_real_escape_string( ).
Attention, selon la config de PHP selon peut-être effectué +/- automatiquement ( ), regarde du côté des "magic-quotes".
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2008, 23h11   #4
Invité régulier
 
Inscription : mars 2008
Messages : 18
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 18
Points : 6
Points : 6
Merci, je vais regarder ça mais je pige pas trop à priori ...
Je pensais utiliser str_replace("'","''",$texte) pour remplacer chaque ' par '' ...
Mais à l'éxecution ça ne marche pas : $texte est inchangé avant et après la fonction ...
Lamy D est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2008, 23h18   #5
Invité régulier
 
Inscription : mars 2008
Messages : 18
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 18
Points : 6
Points : 6
Curieux : ta fonction ne donne rien de mieux ...
Mon code :
var_dump($message);
// str_replace "'", "''",$message);
mysql_real_escape_string($message);
var_dump($message);
PS : je suis en "local" avec un serveur easy-php ...
Lamy D est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2008, 23h41   #6
Membre du Club
 
Étudiant
Inscription : décembre 2007
Messages : 44
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 44
Points : 45
Points : 45
Envoyer un message via MSN à Taka-kun
Une solution est d'utiliser les fonctions addslashes et et stripslashes...
Taka-kun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2008, 23h50   #7
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 835
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 835
Points : 3 468
Points : 3 468
Citation:
Envoyé par Lamy D Voir le message
Curieux : ta fonction ne donne rien de mieux ...
Mon code :
var_dump($message);
// str_replace "'", "''",$message);
mysql_real_escape_string($message);
var_dump($message);
PS : je suis en "local" avec un serveur easy-php ...
Il faut faire :

Code :
$message = mysql_real_escape_string($message);
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. 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 15h56.


 
 
 
 
Partenaires

Hébergement Web