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

Web Perl Discussion :

Session ouverte sans mot de passe


Sujet :

Web Perl

  1. #1
    BnA
    BnA est déconnecté
    Membre averti Avatar de BnA
    Inscrit en
    Mars 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 559
    Points : 397
    Points
    397
    Par défaut Session ouverte sans mot de passe
    Salut à tous,

    Voilà mon problème: lorsque j'entre dans mon module d'ouverture de session, si je ne rentre pas de mot de passe (avec n'importe quel nom d'utilisateurs, même des noms inexistants dans la DB), la connexion est fructueuse. Si par contre je mets un mot de passe érroné, la connexion ne s'effectue pas...

    Voici le code
    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
    #!D:/Perl/bin
    use DBI;
    use CGI;
    my $cgi = CGI::new();
    use strict;
     
     
     
        my $path="dbi:mysql:dbname=form_competence";
        my $user='root';
        my $pswd='*****';
     
     
        #CONNECTION à la DB
     
        my $connexion=DBI->connect($path,$user,$pswd) or die ('Erreur de connexion...');
     
        my %data=();
        %data=("can_login"=>$cgi->param('login'),"can_pwd"=>$cgi->param('pswd'));
     
     
        #VERIFICATION de l'existence de USER
     
        my $query= "SELECT can_id, can_login, can_pwd FROM candidats  WHERE can_login LIKE '$data{can_login}'";
        my $req = $connexion->prepare($query);
        $req->execute();
        my $result = $req->fetchrow_hashref();
        if ($result->{can_pwd} eq $data{can_pwd}){
     
            print "location:/rst406/labo1/gestion_cpte.html\n\n";
        }
        else{
            print "location:/rst406/labo1/connexion.html\n\n";
        }
    Voilà, c'est tout ce que je peux dire... Sinon si vous voulez des éclaircisements, allez-y!

    Merci d'avance...

  2. #2
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    ca me parait logique puisque tu ne testes pas si le mot de passe est rempli !
    Si par exemple tu mets un nom d'utilisateur inexistant, ta requête à ta base va te renvoyer un can_pwd vide, et comme le mot de passe n'est pas renseigné, ca concorde !

  3. #3
    BnA
    BnA est déconnecté
    Membre averti Avatar de BnA
    Inscrit en
    Mars 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 559
    Points : 397
    Points
    397
    Par défaut
    Donc je n'ai qu'à rajouter dans mon IF quelque chose genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($result->{can_pwd} eq $data{can_pwd})&&($result->{can_pwd} NOT NULL*
    ???

    *=pas du tout sûr de la syntaxe...

  4. #4
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Je testerai plutôt la saisie, et non le retour de la requête à ta place
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (($data{can_pwd} ne "") && ($data{can_pwd} eq $result->{can_pwd}))

  5. #5
    BnA
    BnA est déconnecté
    Membre averti Avatar de BnA
    Inscrit en
    Mars 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 559
    Points : 397
    Points
    397
    Par défaut
    Merci merci, ça marche du tonnerre...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/11/2006, 14h23
  2. Réponses: 24
    Dernier message: 12/07/2006, 11h11
  3. Réponses: 7
    Dernier message: 06/06/2006, 14h54
  4. Réponses: 9
    Dernier message: 23/03/2006, 09h38
  5. [PostgresSQL]Pb accés des utilisateurs sans mot de passe
    Par woodwai dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 22/05/2003, 16h06

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