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 de passage dans une boucle


Sujet :

ASP

  1. #1
    Membre régulier Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 74
    Points
    74
    Par défaut probleme de passage dans une boucle
    bonjour
    J'ai télécharger le code d'un chat et je suis en train de la modifié.
    Ce chat ne fonctionnait pas sous BDD, j'ai donc du en créé une.
    J'arrive a stocker les messages, les noms des utilisateurs.
    Cependant, lors de la saisie de login je voudrais faire un test, savoir si le login est deja dans la table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Set cnx = Server.CreateObject("ADODB.Connection")
    cnx.Open "portachat" 
     
    StrSQL_user = "select Pseudo_user from Users where Pseudo_user like '" & strChatName & "' "
    cnx.execute(StrSQL_user)
     
         If cnx.execute(StrSQL_user).RecordCount > 0 Then
           response.write ("essai")
           MsgBox ("Veuillez changer de login SVP")
     
             else  
             strip=Request.ServerVariables("REMOTE_ADDR")
            StrSQL_insert = "insert into Users (Ip_user,Pseudo_user) values ( '" & strip & "','" & strChatName & "')"
            cnx.execute(StrSQL_insert)
    Le compilateur me trouve que le login n'est jamais dans la BDD et donc m'insert de nouveau l'utilisateur.
    La methode RecordCount est t-elle mauvaise ??

    Merci d'avance.

  2. #2
    Membre régulier Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 74
    Points
    74
    Par défaut
    hum hum
    c'est peut etre ma requete qui coince
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dim StrSQL_user
    ...
    StrSQL_user = "select Pseudo_user from Users where Pseudo_user like '" & strChatName & "' "
    cnx.execute(StrSQL_user)

  3. #3
    Membre régulier Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 74
    Points
    74
    Par défaut
    pas de reponse.

    J'ai essayé de changer un peut le code, mais maintenand le compilateur me genere une erreur
    "Impossible d'afficher la page
    Il y a un problème avec la page que vous essayez d'atteindre ; elle ne peut pas être affichée.
    HTTP 500 - Erreur interne de serveur
    Internet Explorer"


    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
     
    Dim strChatLine, strStyle, strip
    Dim StrSQL_insert,StrSQL_ip,StrSQL_admin, StrSQL_user  
    dim cnx
    dim rs1
     
    strChatLine = "<B>" & strChatName & ":</B> " & strChatInput 
     
    If Len(strLogin) > 0 Then
      'Ouvrir la source de données
    Set cnx = Server.CreateObject("ADODB.Connection")
    cnx.Open "portachat" 
     
     
    StrSQL_user = "select Pseudo_user from Users where Pseudo_user like '" & strChatName & "' "
    set rs1 =cnx.execute(StrSQL_user)
     
     
    If rs1.RecordCount > 0 Then
    response.write ("essai")
    MsgBox ("Veuillez changer de login SVP")
        else
        strip=Request.ServerVariables("REMOTE_ADDR")
        StrSQL_insert = "insert into Users (Ip_user,Pseudo_user) values ( '" &   strip & "','" & strChatName & "')"
            cnx.execute(StrSQL_insert)
     
     StrSQL_ip = "select Ip_alert from Alert where Ip_alert like '" & strip & "'"
      set rs3 = cnx.execute(StrSQL_ip)
       end if
     
    If rs3.RecordCount > 2 then
     MsgBox ("Vous n'ete pas autorisé a entrer dans le site suite à vos précédentes interventions")
             end if
              cnx.close

    Merci

  4. #4
    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,

    Déjà, je ne mettrais pas un like parce que entre "toto" et "toto1" les pseudo sont différents et devraient permettrent à un utilisateur de s'authentifier.

    Dans la methode recordcount, il arrive parfois que le chiffre retourné soit = -1. Verifie la valeur avant.

    Sinon tu peux utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF rs1.EOF THEN
            (traitement)
    END IF
    A+

  5. #5
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Salut,

    J'ai pas regardé ton code. Mais pour avoir une erreur plus claire que l'erreur 500 fais donc une recherche dans le forume sur "erreur 500". Ca t'expliquera comment les afficher. Puis tu nous donnes l'erreur et la ligne.

  6. #6
    Membre régulier Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 74
    Points
    74
    Par défaut
    Merci de votre aide.
    Je me suis ballader sur google pour l'erreur et je suis tomber sur
    "Désactiver la case à cocher "Afficher des messages d'erreurs HTTP Simplifié" dans les options de Internet Explorer "

    Cela ma donc permit de voir ou l'erreur se situé.
    A ma variable qui fait reference a ma requete StrSQL_user, savez vous pourquoi ?? il faut lui donné une valeur ??

    Erreur de compilation Microsoft VBScript error '800a0411'

    Redéfinition de nom

    /portachat14/processinput.asp, line 10

    dim StrSQL_user

  7. #7
    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
    Tu avoir avoir deux dim StrSQL_user dans ton code. Supprime l'un des deux.
    De plus, je crois que l'utilisation de like suppose que tu utilise aussi les % avant ou après strChatName.

    A+

  8. #8
    Membre régulier Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 74
    Points
    74
    Par défaut
    ok ok

    Question : Les variables de requete doivent t-elles etre mises ?? De meme pour la connexion a la base ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'dim StrSQL_user 
    'dim cnx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set cnx = Server.CreateObject("ADODB.Connection")
    cnx.Open "portachat" 
     
    StrSQL_user = "select Pseudo_user from Users where Pseudo_user = '" & strChatName & "' "
    set rs1 = cnx.execute(StrSQL_user)
    Car sans la déclaration des variables ci dessus mon appli s'ouvre, mais ne passe pas dans mes boucles.

  9. #9
    Membre régulier Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 74
    Points
    74
    Par défaut
    Bien vu Immobilis 8)

    Vu que cette page etait appele d'une autre page, je faisait en double la déclarations des variables.

    Reste le probleme, que le compilateur ne passe pas dans mes boucles.

  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
    Pour ce qui est des variables, si tu mets un "Option explicit" en en-tête de tes pages, tu recevras normalement un message d'erreur si il t'en manque une quelque soit son utilité.

  11. #11
    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
    Citation Envoyé par Immobilis
    Dans la methode recordcount, il arrive parfois que le chiffre retourné soit = -1. Verifie la valeur avant.

    Sinon tu peux utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF rs1.EOF THEN
            (traitement)
    END IF

  12. #12
    Membre régulier Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 74
    Points
    74
    Par défaut
    Oui t'inquiete j'ai tester -1, marche pas mieux...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    StrSQL_user = "select Pseudo_user from Users where Pseudo_user = '" & strChatName & "' "
    set rs1 = cnx.execute(StrSQL_user)
     
          	If rs1.RecordCount > 0 Then
    	response.write ("essai")
    	MsgBox ("Veuillez changer de login SVP") end if
    marche pas mieux, mais je garde cette facon d'ecrire qui est mieux que la mienne.

    J'ai entrer dans ma table users un perso nommé "azerty", quand je le rentre dans le login il devrait rentrer dans la boucle et me dire "("Veuillez changer de login SVP"), mais a la place il insere.

  13. #13
    Membre régulier Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 74
    Points
    74
    Par défaut

    Ta raison -1, est la bonne soluce, j'avais oublié de rafraichir la page

    J'ai un message d'erreur sur MSGBOX.

    Je vais voir sur la FAQ

  14. #14
    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

  15. #15
    Membre régulier Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 74
    Points
    74
    Par défaut
    Merci Immobilis, tu m'as vraiment bien aidé, il me reste quelque bug mais je pense pouvoir les resoudre......... sinon direction developpez.com

    merci encore

  16. #16
    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
    A+


  17. #17
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Re: probleme de passage dans une boucle
    Citation Envoyé par EssaiEncore
    La methode RecordCount est t-elle mauvaise ??
    De mémoire, RecordCount ne contient la bonne valeur que lorsque tu es allé jusqu'au bout du RecordSet par des MoveNext consécutifs sauf si tu choisis un mode d'ouverture de recordset dynamique. Ce qui signifie que dans ton cas cette méthode n'a effectivement que peu d'intérêts.
    De toute manière, il te faut tester EOF sur le recordset. Et ne pas faire un LIKE mais un "="

    HTH, A.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme pour rentrer dans une boucle
    Par tiya17 dans le forum C
    Réponses: 13
    Dernier message: 24/09/2007, 14h36
  2. probleme de variable dans une boucle
    Par www.rubis dans le forum Linux
    Réponses: 2
    Dernier message: 04/09/2007, 16h06
  3. [VBA]Problème de passage dans une boucle
    Par Halima91 dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/03/2007, 04h09
  4. 256 passages dans une boucle 8 bit
    Par petitours dans le forum C
    Réponses: 5
    Dernier message: 09/02/2006, 13h25
  5. probleme de recordset dans une boucle do while
    Par Shoryu dans le forum ASP
    Réponses: 18
    Dernier message: 05/07/2004, 15h30

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