Page 1 sur 1

Insertion de données

Posté : 06 mai 2007, 13:20
par ayntic
Slt à toutes et à tous !
Je viens de concevoir un logiciel avec PHP5 et j'ai d'énormes difficultés à inserrer des données contenant une quote (') dans ma base de données.

SVP, dites moi s'il y'a oui ou non un script qui me permette d'insérer ces données, car il y va de la survie de ce logiciel.

Je vous en remercie infiniment !!!

Posté : 06 mai 2007, 13:25
par thehawk
tourne toi vers la fonction stripslashes()

Insertion de données

Posté : 06 mai 2007, 13:38
par ayntic
Oui, j'ai plusieurs fois utilisé cette fonction mais c'est le même message d'erreur qui s'affiche .

Posté : 06 mai 2007, 17:55
par titerm
Sous oracle, pour insérer une quote, il faut en mettre 2 de suite, '' attention, c'est bien 2 quotes et pas des guillemets.

Posté : 06 mai 2007, 19:05
par Hubert Roksor
tourne toi vers la fonction stripslashes()
Err... non? :-k stripslashes() retire les backslashes \, en gros il ne sert qu'à ceux qui utilisent magic_quotes

ayntic, ça dépend de ton SGBD mais il te faut utiliser l'équivalent de mysql_real_escape_string(), à part pour Oracle où, comme titerm le disait, il faut doubler les ' à l'aide de str_replace()

Posté : 06 mai 2007, 19:59
par thehawk
oups je pensait que ... en effet je me suis planter je pensait a addslahes afin d'echapper les caracteres pur qu'il n'interfere pas dans l'insertion mais apparament je me suis encore planter .... damned

Posté : 06 mai 2007, 20:30
par Hubert Roksor
Oui, attention à addslashes, ça ne marche pas forcément toujours. Il faut lui préférer la fonction "escape" de chaque SGBD: mysql_real_escape_string(), mysqli_real_escape_string(), pg_escape_string(), etc... C'est pas pour rien qu'ils ont créé toutes ces fonctions, il y a des raisons (longues et compliquées donc vous me pardonnerez ;)) donc n'utilisez pas addslashes :lol:

Posté : 06 mai 2007, 20:33
par orgerix
D'ailleur, j'en profite pour demander si ces fonctions sont une protection efficace contre les injections ?

Posté : 06 mai 2007, 20:40
par Hubert Roksor
Oui, elles sont faites pour ça.

PS: ...et pas que pour ça, utilisez-les systématiquement pour n'importe quelle chaîne de caractères que vous utilisez dans n'importe quel type de requête, sinon peuvent arriver des trucs bizarres.

Insertion de données

Posté : 20 mai 2007, 13:15
par ayntic
Mille et un merci à vous tous car évidemment, la fonction la mieux adaptée à mon SDGB (après plusieurs essais) est belle et bien mysql_real_escape_string().
Je voudrais tout de même m'excuser pour ce temps de réponse car j'avais des problèmes de connexion.
Mon logiciel est presque fini et nous en sommes aux test...

BIG THINKS TO Hubert Roksor, orgerix, thehawk and titerm pour leur aide.

Re: Insertion de données

Posté : 20 mai 2007, 13:25
par thehawk
BIG THINKS TO Hubert Roksor, orgerix, thehawk and titerm pour leur aide.
Ca ca fait plaisir ^^ :wink: :!: :!: