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 :

Problème lors de la connexion


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2017
    Messages : 13
    Par défaut Problème lors de la connexion
    Bonjour, veuillez bien m'aider. Je crée une page connexion/inscription et j'ai un problème. Lorsque je m'inscris ça marche mais dès je veux me connecter avec le nom d'utilisateur et son mot de passe(utiliser pour m'inscrire) se pose le problème, ça mets :
    Nom d'utilisateur / mot de passe incorrect. Cliquez ici pour S'identifier
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php
     
    ?>
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>Login</title>
        <link rel="stylesheet" href="css/style.css" />
    </head>
    <body>
        <?php
        require('db.php');
        session_start();
        // Si le formulaire est soumis, insérez des valeurs dans la base de données.
        if (isset($_POST['userName'])){
     
            $userName = stripslashes($_REQUEST['userName']); // supprime les barres obliques inverses
            $userName = mysqli_real_escape_string($con,$userName); //échappe caractères spéciaux dans une chaîne
            $userPass = stripslashes($_REQUEST['userPass']);
            $userPass = mysqli_real_escape_string($con,$userPass);
     
        // Vérifiez  si l'utilisateur existe dans la base de données ou non
            $query = "SELECT * FROM `users` WHERE userName= '$userName' and userPass='".md5($userPass)."'";
            $result = mysqli_query($con,$query) or die(mysql_error());
            $rows = mysqli_num_rows($result);
            if($rows==1){
                $_SESSION['userName'] = $userName;
                header("Location: index.php"); // Rediriger l'utilisateur vers index.php
            }else{
                echo "<div class='form'><h3>Nom d'utilisateur / mot de passe incorrect.</h3><br/>Cliquez ici pour <a href='login.php'>S'identifier</a></div>";
            }
        }else{
            ?>
            <div class="form">
                <h1>S'identifier</h1>
                <form action="" method="post" name="login">
                    <input type="text" name="userName" placeholder="Username" required />
                    <input type="password" name="userPass" placeholder="Password" required />
                    <input name="submit" type="submit" value="S'identifier" />
                </form>
                <p>Pas encore inscrit? <a href='registration.php'>Inscrivez-vous ici</a></p>
     
                <br /><br />
     
     
            </div>
            <?php } ?>
     
     
        </body>
        </html>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Déjà à moins que ton serveur date de l'age de bronze de PHP, tu n'as pas besoin de stripslashes().

    Ensuite MD5 est obsolète.

    Une erreur classique est que la colonne qui stocke le hash du mot passe est trop petite pour accueillir le hash entier.
    As-tu contrôlé ce que donnait la requête dans PHPMyadmin ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2017
    Messages : 13
    Par défaut
    le hash du mot de passe marchent bien, toutes les informations viennent dans la bdd. J'ai réecris le code mais ca mets toujours :

    Nom d'utilisateur / mot de passe incorrect. Cliquez ici pour S'identifier.

    Voici le nouveau 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
     if (isset($_POST['userName'])){
     
     
            $userName = $_POST['userName']; // supprime les barres obliques inverses
            $userName = mysqli_real_escape_string($con,$userName); //échappe caractères spéciaux dans une chaîne
            $userPass = $_POST['userPass'];
            $userPass = mysqli_real_escape_string($con,$userPass);
     
        // Vérifiez  si l'utilisateur existe dans la base de données ou non
            $query = "SELECT * FROM `users` WHERE userName= '$userName' and userPass='$userPass'";
            $result = mysqli_query($con,$query) or die(mysql_error());
            $rows = mysqli_num_rows($result);
            if($rows==1){
                $_SESSION['userName'] = $userName;
                $_SESSION['userPass'] = $userPass;
                header("Location: index.php"); // Rediriger l'utilisateur vers index.php
            }else {
                echo "<div class='form'><h3>Nom d'utilisateur / mot de passe incorrect.</h3><br/>Cliquez ici pour <a href='login.php'>S'identifier</a></div>";
            }

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    le hash du mot de passe marchent bien
    qu'est ce qui te permet de dire ça ?

    dans ta deuxième version il n'y a plus de hashage ... tu hash le mot de passe à l'insertion ou pas ?

    Pour le détail, on ne met pas le mot de passe en session.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2017
    Messages : 13
    Par défaut
    C'est toujours la meme chose, dans la bdd le mot de passe est hashé( j'obtiens quelque chose du genre 6ab12c369ecb1168fc3c93298a9f33) .

    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
    	if (isset($_POST['userName'])){
     
     
    		$userName = $_POST['userName']; // supprime les barres obliques inverses
    		$userName = mysqli_real_escape_string($con,$userName); //échappe caractères spéciaux dans une chaîne
    		$userPass = $_POST['userPass'];
    		$userPass = mysqli_real_escape_string($con,$userPass);
     
    	// Vérifiez  si l'utilisateur existe dans la base de données ou non
    		$query = "SELECT * FROM `users` WHERE userName= '$userName' and userPass='".md5($userPass)."'";
    		$result = mysqli_query($con,$query) or die(mysql_error());
    		$rows = mysqli_num_rows($result);
    		if($rows==1){
    			$_SESSION['userName'] = $userName;
    			header("Location: index.php"); // Rediriger l'utilisateur vers index.php
    		}
    		else{
    			echo "<div class='form'><h3>Nom d'utilisateur / mot de passe incorrect.</h3><br/>Cliquez ici pour <a href='login.php'>S'identifier</a></div>";
    		}

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- Quand on te dit "MD5 est obsolète", ça veut dire qu'il ne faut PLUS l'utiliser !

    2- en cherchant un peu , tu trouveras des discussions similaires récentes et résolues.

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    6ab12c369ecb1168fc3c93298a9f33
    ça justement c'est un hash incomplet ; ça veut donc dire que ta colonne n'a pas la bonne taille comme je te l'ai suggeré au début.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. SQL SERVER: probléme lors de la connexion au serveur
    Par sorown dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 09/05/2014, 11h40
  2. [MySql Jdbc] problème lors de la connexion
    Par jroman dans le forum JDBC
    Réponses: 6
    Dernier message: 21/06/2011, 10h04
  3. [WD14] Problème lors d'une connexion FTP
    Par LuckyLuke56 dans le forum WinDev
    Réponses: 5
    Dernier message: 04/08/2010, 14h27
  4. [OL-2007] "Problème lors de la connexion au serveur"
    Par cidhighwind dans le forum Outlook
    Réponses: 0
    Dernier message: 08/03/2010, 21h46
  5. Problème lors de la connexion internet
    Par mbzhackers dans le forum Windows XP
    Réponses: 9
    Dernier message: 26/10/2006, 17h41

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