Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & PostgreSQL
PHP & PostgreSQL Forum d'entraide sur PostgreSQL avec PHP. Avant de poster -> FAQ PostgreSQL, Cours PostgreSQL. Pour les questions concernant le moteur PostgreSQL plutôt que les fonctions PHP, merci d'utiliser le forum PostgreSQL.
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 03/05/2007, 09h39   #1
Membre à l'essai
 
Inscription : août 2006
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 67
Points : 21
Points : 21
Par défaut [PostGreSQL] Trouver les ' et les remplacer par \' dans une chaine

Bonjour,

infos : dbb postgresql 8 et php 5

voilà je viens de tombé sur un erreur tout bête. Quand je veux faire une insertion sur ma bdd via php de ce que l'utilisateur a écrit j'ai une erreur si le text comporte une ou des apostrophes.

Sous pgsl il faut rajouter comme beaucoup de langage un \ et cela marche tout seul.

Sauf que je peux pas demander aux utilisateur d'écrire avec des \ dans leur phrase.


Est ce que qq pourrais m'aider a faire un systeme de vérification du genre, temps qu'il y a des ' seul dans une chaine, on les remplaces par des \'.

J'ai pas beaucoup de notion php et du coup il doit bien y avoir des fonction pour faire cela simplement avec un algo tout bête mais...


Merci pour votre aide
bossLINDROS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 09h44   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
tu as addslashes entre autres qui permet de faire celà.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 09h53   #3
Membre à l'essai
 
Inscription : août 2006
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 67
Points : 21
Points : 21
héhé c'est génial, en une ligne je peux faire mon truc alors que je commencais a partir dans un algo avec des tonnes de boucle ^^


merci bien
bossLINDROS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 10h31   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
N'utilisez surtout pas addslashes : c'est une fonction "générique" (et d'intérêt limité) qui ne prend pas en compte les spécificités de chaque SGBD ! En revanche, il y a généralement au moins une fonction spécifique proposée pour chaque SGBD (voir cette partie de la FAQ) et qui est donc bien plus appropriée.

Il faut également savoir qu'une partie du travail est effectuée sur les variables externes (méthodes Get, Post, Cookie, Session) lorsque magic_quotes_gpc est à On sur le serveur (équivalent de addslashes mais effectué de façon automatique par PHP en interne) et dans ce cas il faut d'abord appliquer stripslashes avant de faire appel à la fonction adéquate. Pour savoir si cette fonctionnalité est active vous pouvez utiliser la fonction get_magic_quotes_gpc et ainsi vous faire une fonction portable comme par exemple :
Code :
1
2
3
4
5
6
function quote_smart($string) {
    if (get_magic_quotes_gpc()) {
        $string = stripslashes($string);
    }
    return pg_escape_string($string);
}
Aujourd'hui il est conseillé d'avoir le paramètre magic_quotes_gpc à Off, ce qui évite notamment à avoir à faire des appels à stripslashes et de laisser au développeur le soin d'appliquer des traitements en fonction des données et de leur utilisation. En ce qui concerne les débutants, il vaut mieux qu'elle soit à On
julp 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 02h55.


 
 
 
 
Partenaires

Hébergement Web