payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 2014
-
30 juin 2009 à 16:15
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 2014
-
1 juil. 2009 à 15:53
Bonjour !
J'ai un formulaire d'inscription sur mon site qui marche très bien, à l'exception d'un seul bug : quand on rentre une apostrophe dans un chamsp de saisie.
Donc quadn j'envoi le formulaire il me met une erreur SQL du type :
" syntaxe incorrecte vers **champs_en_question** "
Voici mes tests sur une variable :
1)
$r_adresse = $_POST["adresse"]; (variable de départ --> ERREUR)
2)
J'ai du rajouté une fonction :
{
return str_replace("'","",$Chaine);
}
puis la variable modifiée :
$r_adresse = quoteencode($_POST["adresse"]);
Mais dans ma table j'ai "" au lieu d'une apostrophe
et 3)
re-modification de ma variable :
$r_adresse = htmlentities(quoteencode($_POST["adresse"]));
Mais ça me met "’" au lieu d'une apostrophe.
Et je finis pas un INSERT INTO basic car je ne pense pas que le traitement se fasse à cet endroit.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 30 juin 2009 à 16:37
Normal les quotes sont un caractère réservé dans le langage SQL puisqu'il en fait parti... du coup ce n'est pas qu'une question de bug mais aussi et surtout de sécurité car parti comme tu es on pourrais faire sauter toute ta base de données rien qu'en s'inscrivant sur ton site... .. .
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 1 juil. 2009 à 00:36
Ah tu bosse avec odbc... il n'y a pas d'équivalent tout simplement parce qu'odbc n'est pas un type de base de données c'est une interface qui permet l'accés à différents type de sgdb et leur manipulation via un ensemble unique de fonctions, c'est une forme d'abstraction de bdd... ça permet de changer de type de bdd sans avoir à changer tout le code... tout dépend donc du driver sql que tu utilise mais normalement l'échappement est géré par le couple prepare()/execute()... .. .
"Et je finis pas un INSERT INTO basic car je ne pense pas que le traitement se fasse à cet endroit."
bah justement... comment tu fais ton insert "basique"... .. .
@ tchaOo°
Vous n’avez pas trouvé la réponse que vous recherchez ?
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 20144 1 juil. 2009 à 15:53
hello !
Merci de la prévention et du lien. Mais, jsuis peut etre bete lol, je ne comprends pas l'utilité de la fonction ODBC_prepare aec de faire mon odbc_exec