Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Erreur de syntaxe après requête SQL insert [ Base de données / Access ] (syl62)

mardi 9 janvier 2007 à 16:15:47 | Erreur de syntaxe après requête SQL insert

syl62

Bonjour à tous et meilleurs voeux pour cette année 2007!!!

je rencontre un problème concernant une requête SQL INSERT. Pour un champ bien précis, dès que je met le caractère ', il me met un message d'erreur de syntaxe. Si je l'enlève, il m'insère bien toute les données.
Comment faire pour autoriser ce caractère?

J'ai regardé un peu partout et je n'ai rien trouvé qui se rapproche le plus de ce problème...

Le code de la page est ci-dessous :
"
<!--#include file="_connexion2.asp"-->

<%fcat=Request.Form("cat")
fref1=Request.Form("ref1")
fnom=Request.Form("nom")
fdesign=Request.Form("design")
fdescrip=Request.Form("descrip")
fdate=Request.Form("date")
ftype=Request.Form("type")
fcable=Request.Form("cable")
fphoto1=Request.Form("photo1")
ffile1=Request.Form("file1")
ffile2=Request.Form("file2")
faff=Request.Form("aff")%>


<tr>
 


Ajout d'une nouvelle mise à jour
<form method="POST" name="maj" action="Ajouter_maj.asp">
 Photo produit * : <input type="text" value="<%=fphoto1%>" name="photo1" size="20"><br>
 réf produit * : <input type="text" value="<%=fref1%>" name="ref1" size="20"><br>
 Nom produit * : <input type="text" value="<%=fnom%>" name="nom" size="50"><br>
 Type de produit * : <input type="text" value="<%=ftype%>" name="type" size="50"><br>
 Description maj * :<textarea name="descrip" rows=5 cols=55><%=fdescrip%></textarea><br>
 Date mise à jour * : <input type="text" value="<%=fdate%>" name="date" size="20"><br>
 Type de cable * : <input type="text" value="<%=fcable%>" name="cable" size="20"><br>
 Fichier 1 * : <input type="text" value="<%=ffile1%>" name="file1" size="20"><br>
 Fichier 2 : <input type="text" value="<%=ffile2%>" name="file2" size="20"><br>
 <br>
 <input type="hidden" value="1" name="aff">
 <input type="submit" value="Valider" name="action">
 </form>

<% if fnom<>"" then
Requete = "Insert Into MAJ (Photos,Ref,Nom,Type,Description,Date_Version,Cable,Fichier1,Fichier2) Values ('"&fphoto1&"','"&fref1&"','"&fnom&"','"&ftype&"','"&fdescrip&"','"&fdate&"','"&fcable&"','"&ffile1&"','"&ffile2&"')"
Set rs = Conn2.Execute(Requete)
response.write("Mise à jour ajoutée avec succés")
end if
%>

 

<%
Conn2.close
Set Conn2=nothing
%>
"

Merci pour l'aide que vous pourrez m'apporté.


mardi 9 janvier 2007 à 17:19:53 | Re : Erreur de syntaxe après requête SQL insert

Nurgle

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Salut,

L'apostrophe ' est un caractère spécial, tu dois toujours les doubler avant une insertion SQL, pour tous tes champs. Exemple :
ftype=Replace(Request.Form("type"), "'","''")

Bonne journée,
A++


Nurgle (Antoine) - MSP

mardi 9 janvier 2007 à 20:42:34 | Re : Erreur de syntaxe après requête SQL insert

jesusonline

Membre Club Administrateur CodeS-SourceS
ARGGGGG :-| beurk !!! ok j'exagere peut être un peu mais ce que tu fais est horriblement pas beau !!!

Imagine que je suis un utilisateur stupide et qui tape "'); drop table users;--" à ton avis il se passe quoi ? et encore là l'utilisateur et stupide donc il réfléchit pas mais pour peu qu'il cherche un peu qu'il se rende compte qu'il est authentifié en "sa" il va pouvoir faire un peu tout ce qu'il veut sur la base, le serveur et peut etre pire encore ... bref fais TRES attention avec ca :-) (je pense que la le message est bien passé :p)

Pour info, avec une technologie non obsoléte (ASP3 doit avoir autour de 8ans ...), on peut tout simplement faire

SqlCommand command = new SqlCommand("Select * from toto where totoID = @totoID", conn)
command.Parameters.Add(new SqlParameter("@totoID", tb.text));
command.ExecuteQuery();

Ainsi ASP.net offre un mécanisme qui interdit toute requete de type SQL Injection ...

PS : ne prend pas mal ce que je dit, c'est juste pour te montrer que tu n'utilises pas la bonne techno et pas de la bonne facon :-)


Cyril - MVS - MCP

mardi 9 janvier 2007 à 22:30:33 | Re : Erreur de syntaxe après requête SQL insert

Nurgle

Membre Club Administrateur CodeS-SourceS
jesusonline > Arf, cyril, t'en fait pas un peu trop ? :p Il utilises pas forcément la mauvaise techno, c'est plutôt de façon de l'utiliser qui est pas excellente...

syl62 > Effectivement, l'erreur de syntaxe que tu obtiens n'est qu'une conséquence du trou de sécurité que cyril a pointé du doigt. Le seul moyen (en ASP3) d'empêcher qu'il soit exploité est bien de doubler les ' mais je te conseille quand même de prévoir un jour de passer à ASP.NET, qui est quand même beaucoup plus récent, gratuit (l'IDE aussi) et beaucoup mieux niveau sécurité...
Surtout qu'une des raisons qui fait que l'ASP est obsolète c'est justement le manque de ces fonctions de sécurités et des autres trucs du même genre...
Enfin bref, maintenant que cyril a lancé la petite pub pour ASP.NET , je peux donner le lien qui va bien  :
Le coach ASP.NET

Voilà (sinon, te casses pas la tête à migrer trop vite vers ASP.NET, l'ASP ça marche, hein, mais bon... il y a des limites...)
A++


Nurgle (Antoine) - MSP

mardi 9 janvier 2007 à 22:55:08 | Re : Erreur de syntaxe après requête SQL insert

jesusonline

Membre Club Administrateur CodeS-SourceS
Quoi ? Ca se voit tant que ça j'aime pas cette vieille techno ?  Ce genre de faille de sécurité me met hors de moi, je veux donc être sur que le message est passé ! ainsi je pense que syl62 fera attention lorsqu'il fera des requetes du genre : il faut toujours penser que le client est un hacker ! et les hacker regorgent de créativité !

C'est vrai que ce serait bien de passer à ASP.net si le contexte te le permet, mais c'est pas toujours évident ... Et puis il est toujous possible d'écrire ce genre de faille en ASP.net ... et j'en ai malheureusement vu plus d'une (sur des serveurs en production c'est marrant :-p)



Cyril - MVS - MCP

mercredi 10 janvier 2007 à 00:15:58 | Re : Erreur de syntaxe après requête SQL insert

syl62


Bonsoir à vous et tout d'abord merci pour vos réponses....

La 1ère solution de Nurgle m'a permi de régler mon problème et je t'en remercie. Il est vrai que la technologie ASP.net doit être beaucoup mieux.... mais je ne suis pas développeur, j'esssaye de trouver des solutions qui me facilite la vie pour la mise à jour de site internet. (Accéder à la base ACCESS sans avoir à publier l'intégralité de la base à chaque fois qu'une information change....)

Maintenant le site tourne sur un serveur qui ne gère pas l'ASP.net et je n'ai pas de base SQL mais une base ACCESS, c'est pourquoi j'utilise encore l'ASP.

Il faudra effectivement que je songe à changer progressivement de technologie...

En tout cas merci encore pour votre aide et toutes vos remarques constructives.

A bientôt.

mercredi 10 janvier 2007 à 09:24:58 | Re : Erreur de syntaxe après requête SQL insert

jesusonline

Membre Club Administrateur CodeS-SourceS
ASP.net est gratuit et s'installe sur tous serveur windows (sauf les très vieux OS) et contrairement à ASP il y a un éditeur très performant qui est gratuit lui aussi : Visual Web Dev Express ... tu peux aussi consulter les tutos/vidéos de la coach ASP.net. Nurgle a mis le lien plus haut. Et tu peux aussi utiliser Access (meme si je déconseil car Sql Express est plus performant et gratuit) avec ASP.net. Après c'est sur qu'il faut avoir le temps et les besoins mais tu y gagnerais énormement en productivité :-)


Cyril - MVS - MCP



Cette discussion est classé dans : form, type, request, name, size


Répondre à ce message

Sujets en rapport avec ce message

VBS Synthaxe DOM pour récupérer le nom d'un element formulaire [ par polux45 ] Salut à toutes et à tous,J'ai besoin de la synthaxe Document Object Model (HTML) pour récupérer et tester ensuite le nom d'un element de type texte co [ASP-COM] Passer le Request.Form [ par vpoyo ] Bonjour, et merci à ceux qui prennent la peine de lire ce message.J'aimerais faire passer les paramètres contenus dans le Request.Form à une fonction redirection impossible [ par tommie ] Bonjour j'ai un probleme avec une redirection d'une page ASP à une autreen fait a partir d'une page ou j'affiche des infos concernant un enfant, je pe pb update+guillemet [ par ganbalfro ] Bonjour, Je souhaite mettre à jours des informations concernant l’utilisateur. Cependant lorsqu’il y a un guillemet dans l’adresse il y a une erreur s Inserer la date du jour dans une textbox [ par ManuAntibes ] BonjourJe n'arrive pas a mettre la date du jour dans ma textbox lorsque elle est dans un FormView. Comment dois je faire, pour que ma textbox prenne l formulaire aspemail [ par nickg ] bonjourj'ai une erreur de formulaire ASpemail"Object doesn't support this property or method: 'Mail.Recipient' "j'arrive pas à trouver ce qu'il faut m Mon script de formulaire est il correcte ? [ par arnaudperfect ] Bonjour,Je suis un débutant en ASP.J'essaie de créer un script pour faire le traitement d'un formulaire (l'envoyé par email)J'ai rien pour le testé, j Pb de guillemet !! [ par suzukMan ] Bonsoir a tous, je devellope actuellement une application web ASP.Je doit effectué un requete pour vérifier le nom d'utilisateur et le mot de passe c' probleme de passage de variable asp>>flash ( et non linverse) [ par mrzinj ] Tout d'abord bonjours a tous et desolé si le message n'est pas dans la bonne categorie mais vu que mon apps sert pourun envoi de mail je me suis dit q [c#] Modification d'un GridView [ par cnguyen ] Bonjour, j'ai un GridView et le probleme cest que lorsque je fais modifier, rien ne se modifie...Pourquoi???Avec cette page il me dis : "@date n'est p


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,952 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.