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 :

Script de connexion


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 59
    Par défaut Script de connexion
    Salut tout le monde,

    Je suis en train de tester un script trouver dans un tuto php pour faire un système de connexion-identification des utilisateurs d'un site. J'ai eu beau cherché je ne vois pas pourquoi ça ne fonctionne pas.

    Quand je tape un login et un mot de passe au hazard (donc faux) la réponse est : "Félicitation {login} vous êtes maintenant connecté!"

    Ce qui est très gênant pour un script d'authentification s'il laisse rentrer n'importe qui.

    Je vous poste tous les morceaux de code que j'utilise (au cas ou une bêtise m'aura échappé). Si une grosse faute vous saute aux yeux prévenez moi que j'essaie de régler le problème.

    Le code SQL de création de ma table
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create table CAROUBLE
    (
       ID_CAROUBLE  int(10) not null auto_increment,
       ALLONYME     varchar(32) not null,
       VERROU        varchar(32) not null,
       primary key (ID_CAROUBLE)
    )ENGINE=MYISAM;

    Le code de la page connexion.html :
    Code html : 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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Connexion</title>
    </head>
    <body>
    <center>
        <form action="verifpass.php" method="post">
            <table>
                <tr>
                  <td>Login :&nbsp;</style></td>
                  <td><input type="text" Name="pseudo" /></td>
                </tr>
                <tr>
                  <td>Password :&nbsp;</td>
                  <td><input type="password" Name="pass" /></td>
                </tr>
                <tr>
                  <td>&nbsp;</td>
                  <td><center><input type="submit" name="verification" value="Envoyer" /></center></td>
                </tr>
            </table>
        </form><br />
    <a href="index.html">Retour &agrave; l'accueil</a>
    </center>
    </body>
    </html>

    Le code de la page verifpass.php chargé de la vérification du couple login/password :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
    <body>
    <?php
    $host = "localhost";
    $user = "root";
    $password = "";
    $bdd = "securite";
    //--------- Connection à Mysql  ----------//
    mysql_connect($host, $user, $password) or die("Impossible de se connecter au serveur !");
    mysql_select_db($bdd) or die("Impossible de se connecter &agrave; la base de donn&eacute;es !");
     
    //--------- Creation de la signature -----//
    include('param.inc.php');
    //--------- Insertion des valeurs --------//
    $seing = $_POST['pass'];
    $sceau = md5(contreseing($seing));
    $surnom = $_POST['pseudo'];
    $compIdent='SELECT COUNT(*) FROM CAROUBLE WHERE ALLONYME = "'.mysql_real_escape_string($surnom).'" AND VERROU = "'.mysql_real_escape_string($sceau).'"';
    mysql_query($compIdent) or die(mysql_error());
    ?>
    <p>F&eacute;licitations <?php echo(htmlentities($surnom)); ?>, vous &ecirc;tes connect&eacute;.</p><br /><br />
    <a href="index.html">Retour &agrave; l'accueil</a>
    </body>
    </html>
    Pour finir le code de la page param.inc.php qui fabrique la signature du mot de passe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
        function contreseing($seing) {
        $praefixus = "d^9@0-";
        $subfixus = "#8+S%cZ";
        $seing = $praefixus.$seing.$subfixus;
        return strrev($seing);
        }
    ?>
    Je ne vois vraiment pas d'où peut venir le dysfonctionnement, mais comme c'est mon premier test d'authentification des utilisateurs je ne m'attendais pas vraiment à ce que ça fonctionne du premier coup.

    Merci du temps que vous avez pris pour lire ce message.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 194
    Par défaut
    Bonjour,

    Dans le code, je ne vois pas de vérification du mot de passe, avec les retours erreur qui vont bien.
    Il faut que tu test l'egalite du mot de passe taper par rapport a celui qui se trouve dans la base.

    Yasen77

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 194
    Par défaut
    Essaye plutôt ceci :

    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
     
    $compIdent='SELECT * FROM CAROUBLE WHERE ALLONYME = "'.mysql_real_escape_string($surnom).'"';
    $req = mysql_query($compIdent) or die(mysql_error());
    while($data = mysql_fetch_array($req))
       {
            $bpass = $data['VERROU'];
            if($sceau != $bpass)
                {
                      echo "Erreur de mot de passe";
                }
            else
                {
    ?>
    <p>F&eacute;licitations <?php echo(htmlentities($surnom)); ?>, vous &ecirc;tes connect&eacute;.</p><br /><br />
    <a href="index.html">Retour &agrave; l'accueil</a>
    <?
                }
        }
    ?>

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 59
    Par défaut
    J'ai ajouté ceci comme conseillé:
    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
    $compIdent='SELECT * FROM CAROUBLE WHERE ALLONYME = "'.mysql_real_escape_string($surnom).'"';
    $req = mysql_query($compIdent) or die(mysql_error());
    while($data = mysql_fetch_array($req))
       {
            $bpass = $data['VERROU'];
            if($sceau != $bpass)
                {
                    echo ("Erreur de mot de passe");
                }
            else
                {
    		echo ("<p>F&eacute;licitations ".(htmlentities($surnom))." vous &ecirc;tes connect&eacute;.</p><br /><br />\n");
    		echo ("<a href=\"index.html\">Retour &agrave; l'accueil</a>\n");
                }
        }
    ?>
    Mais je me retrouve avec comme réponse en cas d'erreur une page toute blanche, par contre si le couple login/password est correct je me retrouve avec le fameux "Félicitations {login}..."

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 194
    Par défaut
    Il faut enlever les parentheses de l'echo qui indique l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Echo "Erreur de mot de passe";

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 59
    Par défaut
    En effet cela fonctionne correctement maintenant, merci à tous. Il me reste toutefois quelques questions à propos de la connexion.

    Comment faire que pour chaque page du site (ou du moins celles que je veux protéger) vérifie que l'utilisateur c'est bien identifié à un moment donné (on va pas lui demander de s'identifier à chaque changement de page non plus )?

    Et ensuite comment fait-on pour bloquer ou libérer l'accès à ces pages en fonction de la réponse de la vérification de l'identification?

    Navré de vous ennuyer avec ça mais c'est la première authentification que j'installe sur un site, donc je ne maitrise pas du tout le sujet.

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/04/2006, 09h00
  2. Script de connexion rsh avec ksh
    Par apocalypse dans le forum Linux
    Réponses: 2
    Dernier message: 23/04/2006, 23h43
  3. [MySQL] Script de connexion, je ne sais pas ce qui bugge
    Par gogogame dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 21/04/2006, 14h18
  4. [MySQL] mauvais script de connexion
    Par covin85 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/04/2006, 13h18
  5. script de connexion par ssh
    Par black_code dans le forum Modules
    Réponses: 2
    Dernier message: 25/07/2005, 15h10

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