pakito_77
Messages postés11Date d'inscriptionjeudi 26 janvier 2006StatutMembreDernière intervention 8 août 2006
-
16 févr. 2006 à 12:17
cs_azra
Messages postés425Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention13 juillet 2007
-
17 févr. 2006 à 18:14
Bonjour a tous,
Voila mon probleme, je voudrais pouvoir enregistrer dans ma bdd un textarea, jusqu'ici pas de soucis, jusqu'a ce que l'utilisateur passe un apostrophe dans son
texte.
J'ai fait des recherche sur le net et j'ai pu voir certaine astuce du genre replace ou de doubler les quotes. Mais concretement, je n'arrive pas a l'appliquer a mon code.
Je fait donc appel a vos lumieres pour m'aider un tit peu, voici le code en question:
'Ouverture de la Base FormulaireSAV sur Nirvana
'et céation du lien
Set BaseLink = Server.CreateObject("ADODB.Connection")
BaseLink.Open "FormulaireSAV", "", ""
'Création du RecordSet
Set BaseSet = Server.CreateObject("ADODB.Recordset")
'Création de la requête
varsql = "insert into Commentaires(IDProjet,Commentaires) values (" & ValeursCommentaires & ")"
'Exécution de la requête
BaseSet.open varSql, BaseLink
'Fermeture de la Base
BaseLink.Close
Set BaseSet = Nothing
Set BaseLink = Nothing
%>
Le champs en question est commentaire!
Je débute en Asp, donc si vous pouviez m'epargnier les termes trop technique ^^
Merci d'avance...
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 17 févr. 2006 à 16:48
Bonjour,
je te conseille aussi (et surtout) de te renseigner sur les attaques de type sql injection car la ton site n'est pas secure du tout !!!
Pour pallier tout cela il faudrais mieux utiliser des procédure stockées, l'utilisation de procédure stocké je connais pas en asp mais par contre c'est trés simple en asp.net. Donc oublie asp 3 (qui est trés trés vieux !) et passe à asp.net 2 voici un excellent point de départ :
cs_azra
Messages postés425Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention13 juillet 20071 17 févr. 2006 à 16:19
Bonjour,
Tout d'abord, ce n'est pas un problème ASP mais un problème SQL, les simples quotes fesant partis de la synthaxe du langage.
En C#/asp.net tu peux par exemple faire un ValeursCommentaires.Replace("'", "''");
Il te faut trouver un équivalent.
pakito_77
Messages postés11Date d'inscriptionjeudi 26 janvier 2006StatutMembreDernière intervention 8 août 2006 17 févr. 2006 à 16:29
Désolé, comme je l'ai dis je suis débutant en programmation et je ne connais pas encore les subtilité et autre therme des differents langage,
J'ai bien vu sur ce site ou d'autre, l'exemple du replace, mais je n'arrive malheureusement pas a l'appliquer a mon code, c'est pourquoi je voulais savoir concretement par rapport a mon code qu'est ce que je devais faire?
Azra pour ton exemple, il faut que je le mette sur ma page contenant mon formulaire avec mon textarea ou sur ma page ou je recupere la valeur (cf code plus haut) ?
Merci pour ta reponse
cs_azra
Messages postés425Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention13 juillet 20071 17 févr. 2006 à 16:40
Re Bonjour,
Il faut que tu fasses le replace avant d'inserer tes données en base: juste avant varsql = "insert into Commentaires(IDProjet,Commentaires) values (" & ValeursCommentaires & ")"
au niveau de "ValeursCommentaires " (donc par ex ValeursCommentaires.Replace(blabla). (une fois que cela fonctionnera, on parlera de sécurité et d'injectionSQL).
pakito_77
Messages postés11Date d'inscriptionjeudi 26 janvier 2006StatutMembreDernière intervention 8 août 2006 17 févr. 2006 à 16:56
merci pour vos conseil, je n'avais meme pas songé a ca, pour ce qui est de ce formulaire il n'y aucune crainte a avoir de coté la, puisqu'il est sur l'intranet de mon entreprise, et que seul les techniciens y auront acces.
Enfin je le saurais pour la prochaine fois, et eviterais de faire ca si je met en ligne une chose similaire.
JesusOnline j'ai testé ta solution et ca marche nikel, encore merci pour l'aide et pour les conseils ^^
pakito_77
Messages postés11Date d'inscriptionjeudi 26 janvier 2006StatutMembreDernière intervention 8 août 2006 17 févr. 2006 à 17:17
Tu as raisons, jvais me renseigner sur l'asp.net 2 et les procedures stockés, disont que pour ce code je laisserais ainsi (c'est juste un formulaire qui etait autrefois sur papier et qui ne comporte aucune donnée personnelle ou d'importance)
mais je compte m'attaquer aux notes de frais sur le meme principe de formulaire, et je pense en effet qu'un peu plus de securité serait le bienvenue, vue les données traitées.
Encore une fois merci pour vos precieux conseils, et bonne continuation