Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/11/2006, 17h16   #1
Membre habitué
 
Inscription : mai 2006
Messages : 382
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mai 2006
Messages : 382
Points : 118
Points : 118
Par défaut probleme avec fonction modifier en ASP

bonjour

je veux modifier quelque chose dans une base de donnees a partir d'une page ASP.
pouvez vous me dire si cette fonction est correcte :


Code :
Update Nomdelatable Set (champs='"&lamodificationduchamp&"', champs='"&lamodificationduchamps&",...) Where lacondition "
merci d'avance

a+
leclone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2006, 17h27   #2
Membre expérimenté
 
Avatar de Phiss
 
Homme
Développeur Web
Inscription : mai 2005
Messages : 660
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2005
Messages : 660
Points : 581
Points : 581
Oui la fonction update s'écrit bien comme ça lorsque tu as des champs à saisir.

Citation:
requete = "update table set champ = '" & mavaleur & "', champs2 = '" & valeur2 & "' where mesconditions"
__________________
" L'absence diminue les médiocres passions et augmente les grandes, comme le vent éteint les bougies et allume le feu. "
La Rochefoucauld
Phiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2006, 17h29   #3
Membre habitué
 
Inscription : mai 2006
Messages : 382
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mai 2006
Messages : 382
Points : 118
Points : 118
voici le code de ma page :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<html>
 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nouvelle page 1</title>
</head>
 
<body bgcolor="#FFFF00">
<% IDENTAD=Request.QueryString("identad")
NOMAD=Request.QueryString("nomad")
ADRESSEAD=Request.QueryString("adressead")
VILLEAD=Request.QueryString("villead")
SECTEURAD=Request.QueryString("secteurad")
TELAD=Request.QueryString("telad")
MAILAD=Request.QueryString("mailad")
HORAIR=Request.QueryString("horair")
DESCRIP1=Request.QueryString("descrip1")
DESCRIP2=Request.QueryString("descrip2")
DESCRIP3=Request.QueryString("descrip3")
PHOTO1=Request.QueryString("photo1")
PHOTO2=Request.QueryString("photo2")
PHOTO3=Request.QueryString("photo3")
%>
 
<%'-------déclaration de la base------------------------------
DSN_BASE = "DBQ=" & Server.Mappath("webadherent.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};Driverld=25"%>
 
<%'-------création de la connection et du recordset-----------
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DSN_BASE
Set RS = Server.CreateObject("ADODB.Recordset")%>
 
<%'-------définition et exécution de la requête---------------
RequeteSQL = "Update adherent Set (Logi='"&IDENTAD&"', Nom_adherent='"&NOMAD&"',Adresse_adherent='"&ADRESSEAD&"',Ville='"&VILLEAD&"',Secteur_activite='"&SECTEURAD&"',Téléphone='"&TELAD&"', Email='"&MAILAD&"',Horaire='"&HORAIR&"',Specialite='"&DESCRIP1&"',Marque='"&DESCRIP2&"',Marque1='"&DESCRIP3&"',Photo1='"&PHOTO1&"',Photo2='"&PHOTO2&"',Photo3='"&PHOTO3&"') Where Logi= '"&IDENTAD&"'"
RS.Open RequeteSQL , Conn 
if RS.EOF then%>
<p align="center">
<font color="#000000">Problème rencontré lors de la modification, réessayez plus tard !!! </font></p>
<%else%> 
<p align="center"><font color="#000000">Vous venez de modifier votre page. Les modifications ont été enregistrées dans la base de données</font></p>
<p align="center"><br>
<a href="../index.html">RETOURNER A L'ACCUEIL </a>
 
</p>
<%end if%>
 
 
<%'-------fermeture de la connection et du recordset----------
Set RS = Nothing
Conn.Close
Set Conn = Nothing%>
 
</body>
</html>
mais sur le serveur, il ne veut pas me faire de modification
je ne sais pas pourquoi
leclone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2006, 18h55   #4
Membre habitué
 
Inscription : mai 2006
Messages : 382
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mai 2006
Messages : 382
Points : 118
Points : 118
je transfere les donnees avec la methode GET donc tout ce met dans l'url et je pense que l'url est trop longue. Est ce que cela peut faire bugger la modification?????
leclone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 08h59   #5
Membre expérimenté
 
Avatar de Phiss
 
Homme
Développeur Web
Inscription : mai 2005
Messages : 660
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2005
Messages : 660
Points : 581
Points : 581
tu as quoi comme erreur?

Et si tu fais
Code :
response.write("requetesql")
juste avant de l'executer,
cela te donne quoi?

et tout tes champs sont en chainbe de caractères?
__________________
" L'absence diminue les médiocres passions et augmente les grandes, comme le vent éteint les bougies et allume le feu. "
La Rochefoucauld
Phiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 14h14   #6
Membre habitué
 
Inscription : mai 2006
Messages : 382
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mai 2006
Messages : 382
Points : 118
Points : 118
quand je fais valider pour enregistrer les modifications, il me met une page blanche

g essayer avec ton code et cela donne pareil, je ne sais pas pourquoi ça merde
leclone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 14h26   #7
Membre éprouvé
 
Avatar de totoche
 
Inscription : janvier 2004
Messages : 1 071
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 1 071
Points : 478
Points : 478
Citation:
response.write("requetesql")
ça risque de pas t'avancer...
mieux vaut response.write(requetesql)
suivi d'un response.end
__________________
La patience est un arbre aux racines amères, mais aux fruits ci-doux.
totoche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 14h54   #8
Membre expérimenté
 
Avatar de Phiss
 
Homme
Développeur Web
Inscription : mai 2005
Messages : 660
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2005
Messages : 660
Points : 581
Points : 581
désolé me suis trompé...

Donc oui enlève les " entourant requetesql et dis nous ce que cela te donne.
__________________
" L'absence diminue les médiocres passions et augmente les grandes, comme le vent éteint les bougies et allume le feu. "
La Rochefoucauld
Phiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2006, 20h03   #9
J1
Membre actif
 
Inscription : mai 2004
Messages : 225
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 225
Points : 195
Points : 195
La requête UPDATE ne renvoie pas d'enregistrement, elle ne doit donc pas être affectée à un recordset mais directement exécutée, comme ceci par exemple :

Code :
Conn.Execute RequeteSQL
Si tu souhaites savoir combien d'enregistrements ont été modifiés par ta requête, tu peux passer un paramètre supplémentaire lors de l'appel de la méthode Execute (voir le paramètre RecordsAffected dans cet exemple).

D'autre part, je vois que tu construis ta requête à l'aide de valeurs passées par l'utilisateur. Si tu ne testes pas ces valeurs, tu t'exposes à des injections SQL.
=> article de wikipedia relatif aux injections SQL. L'exemple donné est en PHP, mais le risque est le même en ASP.
N'hésite pas à faire des recherches plus approfondies sur le Net afin d'étudier les façons de sécuriser ton code face à ce risque.
J1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 22h44   #10
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Salut,

Il faut aussi savoir que la longueur d'une URL ne peut dépasser 256 caractères.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h08.


 
 
 
 
Partenaires

Hébergement Web