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

PHP & Base de données Discussion :

Identification en PHP


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut Identification en PHP
    Bonjour,

    Je voudrais limiter l'accès de certaines pages d'un site en php. Pour cela je veux interroger une base de données SQL server dans laquelle j'ai entré deux login(login) et deux mots de passes (pwd). J'arrive à les afficher, donc à lire la table. Par contre, mon programme qui demande à l'utilisateur de s'identifier ne fonctionne pas comme je le veux. Il envoit bien les données, par contre il sort du if sachant que je tape le bon mot de passe.

    Voici mon 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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    <HTML>
        <HEAD>
     
            <TITLE>
            </TITLE>
        </HEAD>
        <BODY>
    <?
    if( $id = mssql_connect('ESMAIL_AHOUZI','','') ) 
                {
                    if( $id_db = mssql_select_db('BDTR') )
                        {
     
                printf("la connexion a bien été effectué");
     
     
     
                        }    
                    else 
                        {
                        printf("Echec de connexion à la base");
                        }
     
                } 
        else 
                {
                    printf("Echec de connexion au serveur de base de données");
                }
     
     
     
     
     
     
    if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['password'])) 
        {
     
     
            $requete = "SELECT pwd FROM identification WHERE login='".$_POST['login']."'";
     
     
     
            $req = mssql_query($requete) or die('Erreur SQL !<br>'.$mysql.'<br>'.mssql_error());
     
            $data = mssql_fetch_assoc($req);
     
            if($data['pwd'] !=$_POST['password']) 
                { 
     
                    echo "Ton Pass ne correspond pas à celui de la BDD"; 
     
                }
            else 
                {
                    session_start();
                    $_SESSION['login'] = $_POST['login']; 
     
                    echo "Tu es bien connecté";
     
                } 
        }
    else 
        { 
     
        echo "Tu as oublié de remplir un champ";
     
        }
     
     
    ?>
     
     
        </BODY>    
    </HTML>

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 668
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668
    Par défaut
    quel est le message qui s'affiche quand tu tapes un bon mot de passe ?

  3. #3
    Membre averti
    Profil pro
    Développeur
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    Voici le message que j'ai dans tous les cas : "la connexion a bien été effectuéTon Pass ne correspond pas à celui de la BDD ".

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Tu as bien mis les mots de passes en clair dans la base de données?
    Essaie ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $req = mssql_query($requete) or die('Erreur SQL !<br>' . $mysql . '<br>' . mssql_error());
     
    $data = mssql_fetch_assoc($req);
    echo "password tape : " . $_POST['password'] . "<br/>";
    echo "password dans bdd : " . $data['pwd'] . "<br/>"; 
            if($data['pwd'] !=$_POST['password']) 
                { 
     
                    echo "Ton Pass ne correspond pas à celui de la BDD"; 
     
                }
    et regardes si ce sont bien les memes.

  5. #5
    Membre averti
    Profil pro
    Développeur
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    la connexion a bien été effectué

    password tape dans le cadre: inpt
    password dans bdd : inpt

    Ton Pass ne correspond pas à celui de la BDD

    Les mots de passes sont effectivement bien les mêmes. Il y a donc un pb dans le if. C'est comme s'il n'arrivait pas à comparer les deux chaines de caractères. Peut être que la syntaxe du if n'est pas bonne.
    Je les ai déclaré tous les deux en temps que VARCHAR taille 10. Peut être qu'il y a d'autres choses à déclarer.

  6. #6
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Autre solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $req = mssql_query($requete) or die('Erreur SQL !<br>' . $mysql . '<br>' . mssql_error());
     
    $data = mssql_fetch_assoc($req);
    echo "password tape : " . var_dump($_POST['password']) . "<br/>";
    echo "password dans bdd : " . var_dump($data['pwd']) . "<br/>"; 
            if($data['pwd'] !=$_POST['password']) 
                { 
     
                    echo "Ton Pass ne correspond pas à celui de la BDD"; 
     
                }
    je pense que tu as un probleme d'espace avant ou apres le mot de passe, montres nous le résultat avec var_dump()

Discussions similaires

  1. Identification en php
    Par potterharry dans le forum Langage
    Réponses: 1
    Dernier message: 27/01/2013, 20h22
  2. Réponses: 2
    Dernier message: 16/07/2010, 11h34
  3. [Sécurité] PHP, identification unique ?
    Par speedev dans le forum Langage
    Réponses: 12
    Dernier message: 19/05/2006, 14h19
  4. Réponses: 5
    Dernier message: 12/02/2006, 22h00
  5. Probleme d'identification avec sessions PHP
    Par bontbont dans le forum Langage
    Réponses: 5
    Dernier message: 09/12/2005, 19h15

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