Vous n'êtes pas identifié(e).
Pages : 1
Bien vu !
J'ai essayé de jouer avec les standard_conforming_string, sans succès, effectivement, car pg_escape_strings devait suffire.
Mais effectivement, je n'avais pas pensé aux magic_quotes, et les config sont différents sur mes serveurs local et distant !
Merci pour ces éclairages ; je vais continuer ma quête sur les forum PHP pour voir comment désactiver ça proprement.
Ca ne marche pas mieux...
En fait j'ai le sentiment que mon code PHP est correct (puisqu'il fonctionne sur mon PC), mais que la base est "mal configurée".
Argh, ça ne marche pas (mais merci d'avoir essayé !) :
pg_escape_literal n'est supporté que sur les versions récentes de PHP, et sur OVH, le PHP n'est pas assez récent...
J'ai pris soin de n'utiliser que des fonctions de PHP suffisamment "anciennes".
D'autres idées ?
Bonjour,
j'ai développé un site sur mon PC qui fonctionne avec PHP et PostgreSQL 9.1.
J'ai besoin d'ajouter des formulaires avec guillemets simples (') et doubles ( " ) ; j'utilise la fonction pg_escape_string et ça marche bien.
La requête est :
$sql = sprintf("insert into table (message) values ('%s')", pg_escape_string($mess));
J'ai mis ce site avec le même code sur OVH, avec PostgreSQL 8.4 .
Là, quand j'ajoute des guillemets, il me les renvoie avec des anti-slash.
exemple : Le message d'hier. devient : le message d\'hier.
Je n'arrive pas à m'en débarrasser, sauf si j’enlève la fonction pg_escape_string :
$sql = sprintf("insert into table (message) values ('%s')", $mess);
Mais j'ai alors un trou de sécurité.
Que peut-il se passer ? Est-ce une histoire d'encodage (je pense être en UTF-8 partout).
Merci pour toute piste !
Pages : 1