Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

php5 pdo session guillemet

2 réponses
Avatar
nathieb
Bonjour,

Je suis en train de développer un formulaire. je récupère les données
avec un $_SESSION['var']=$_POST['var']
juste avant une insertion en base via PDO pour Oracle.

quand dans le formulaire on saisi "le'beau" les guillemets font planter
l'insertion. le ' est intéprété d'ou le pb , qu'elle fonction dois -je
utiliser ? la fonction "quote" de PDO est inefficace.
c'est classique mais bon, je rame ...

cordialement olivier

2 réponses

Avatar
Thiebaut olivier
nathieb wrote:
Bonjour,

Je suis en train de développer un formulaire. je récupère les données
avec un $_SESSION['var']=$_POST['var']
juste avant une insertion en base via PDO pour Oracle.

quand dans le formulaire on saisi "le'beau" les guillemets font planter
l'insertion. le ' est intéprété d'ou le pb , qu'elle fonction dois -je
utiliser ? la fonction "quote" de PDO est inefficace.
c'est classique mais bon, je rame ...

cordialement olivier
bonjour,


Je me réponds tout seul comme un grand, enfin presque.
L'erreur du débutant, ;).

Juste avant l'insertion je dois retraité les valeurs :
foreach($contact as $key => $item){
$contact[$key]=stripslashes(str_replace("'","''",trim($item)));
}

par exemple et après insert()...

Par contre, quelqu'un aurait une solution Exception propre
pour remonter les problèmes d'inset qui auraient fonctionner de façon
incorrects?

Des exemples, ou comment pratiquez vous ?

Cordialement olivier ;-)

Avatar
Francois Girault
Bonjour,

Je suis en train de développer un formulaire. je récupère les données
avec un $_SESSION['var']=$_POST['var']
juste avant une insertion en base via PDO pour Oracle.

quand dans le formulaire on saisi "le'beau" les guillemets font planter
l'insertion. le ' est intéprété d'ou le pb , qu'elle fonction dois -je
utiliser ? la fonction "quote" de PDO est inefficace.
c'est classique mais bon, je rame ...



Comment construisez-vous la requête ?

Logiquement, l'utilisation de "prepared statements" évite ce genre
d'écueil :

$st = $pdo->prepare("INSERT INTO foo (bar, plop) VALUES ( :bar, :plop))";
$st->execute(array("bar" => 42, "plop" => "pl'ip"));

--
FG