IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

probleme avec fonction modifier en ASP


Sujet :

ASP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2006
    Messages : 382
    Points : 151
    Points
    151
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    Update Nomdelatable Set (champs='"&lamodificationduchamp&"', champs='"&lamodificationduchamps&",...) Where lacondition "
    merci d'avance

    a+

  2. #2
    Membre confirmé Avatar de Phiss
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2005
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 676
    Points : 616
    Points
    616
    Par défaut
    Oui la fonction update s'écrit bien comme ça lorsque tu as des champs à saisir.

    requete = "update table set champ = '" & mavaleur & "', champs2 = '" & valeur2 & "' where mesconditions"

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2006
    Messages : 382
    Points : 151
    Points
    151
    Par défaut
    voici le code de ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2006
    Messages : 382
    Points : 151
    Points
    151
    Par défaut
    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?????

  5. #5
    Membre confirmé Avatar de Phiss
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2005
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 676
    Points : 616
    Points
    616
    Par défaut
    tu as quoi comme erreur?

    Et si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.write("requetesql")
    juste avant de l'executer,
    cela te donne quoi?

    et tout tes champs sont en chainbe de caractères?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2006
    Messages : 382
    Points : 151
    Points
    151
    Par défaut
    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

  7. #7
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    response.write("requetesql")
    ça risque de pas t'avancer...
    mieux vaut response.write(requetesql)
    suivi d'un response.end

  8. #8
    Membre confirmé Avatar de Phiss
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2005
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 676
    Points : 616
    Points
    616
    Par défaut
    désolé me suis trompé...

    Donc oui enlève les " entourant requetesql et dis nous ce que cela te donne.

  9. #9
    J1
    J1 est déconnecté
    Membre averti Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Points : 335
    Points
    335
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  10. #10
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

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

    A+

Discussions similaires

  1. [Mail] probleme avec fonction mail() !!!
    Par H-bil dans le forum Langage
    Réponses: 6
    Dernier message: 19/06/2006, 23h45
  2. C++ - Probleme avec fonction virtuelle
    Par vdumont dans le forum C++
    Réponses: 1
    Dernier message: 20/03/2006, 20h49
  3. probleme avec fonctions
    Par Burinho dans le forum C
    Réponses: 8
    Dernier message: 29/12/2005, 21h28
  4. Réponses: 17
    Dernier message: 24/03/2005, 12h24
  5. [langage] problème avec fonction read
    Par domidum54 dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2004, 20h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo