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

Langage PHP Discussion :

php login et mot de passe


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut php login et mot de passe
    Bonjour.
    J'ai un code php, pour le login et mot de passe. Le problème c'est que je ne comprend pas pourquoi il m'envoie pas sur la page demandé.
    Enfin j'aimerai que quand j'entre le bon login et mot de passe il m'envoie sur la page page_liste.php

    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
    include 'connexion_bd/connexion_bd.php';
    /*$connexion = mysqli_connect("localhost", "root", "root", "courte_paille");
    mysqli_query($connexion, "SET NAMES 'utf8'");*/
     
    /*---------------------------------------------------------*/
     
    if($_SERVER["REQUEST_METHOD"] == 'POST'){
     
        // le minimum de vérification sur les informations reçues par le formulaire
        if(isset($_POST["login"]) && isset($_POST["pass"])){
     
            // La connexion a échouée
            if(!$connexion){
     
                //On récupère le beau message d'erreur de connexion généré par mysql (mysqli_connect_error)
                $msgError = sprintf(" ERREUR : %s", mysqli_connect_error());
                exit($msgError);
     
            }
     
            // pas d'errueurs, nous sommes connecté!
            $login = mysqli_real_escape_string($connexion, $_POST["login"]);
            $pass  = mysqli_real_escape_string($connexion, $_POST["pass"]);
     
            $sql = "SELECT * FROM user WHERE login = '".$login."' AND pass = '".$pass."'";
     
            // On execute la requête
            $resultat = mysqli_query($connexion, $sql);
     
            //Tout est bon, on peut afficher le résultat de la requête
            if(mysqli_num_rows($resultat) === 1){
     
                $ligne = mysqli_fetch_assoc($resultat);
     
                if(password_verify($pass, $ligne["pass"])){
     
                    // démarrer la session
                    session_start();
     
                    // initialiser une variable de session user
                    $_SESSION['user'] = $login;
     
                    // redirection sur plat_liste.php
                    header('Location:base_de_donnee/plat/plat_liste.php');
     
                    // bye
                    exit();
     
                }
            }else{
     
                // sinon : message = pas ok
                $message = "Login ou mot de passe eronné";
     
            }
     
        }
     
    }
     
    /*---------------------------------------------------------*/
     
    $ok = mysqli_close($connexion);

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

    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      $sql = "SELECT * FROM user WHERE login = '".$login."' AND pass = '".$pass."'";
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      $sql = "SELECT pass FROM user WHERE login = '".$login."'";
    Cela dit, j'enregistrerais aussi l'id en session.
    Ça peut servir..

  3. #3
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    Merci, mais je comprend pas pourquoi ça ne marche toujours pas. il m'envoie sur une page blanche.

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    il m'envoie sur une page blanche.
    Il t'envoie sur plat_liste.php qui n'affiche rien ou bien tu restes en fait sur la même page ?

    Est-ce que tu as fais un minimum de debugage ?
    - Est-ce que tu rentres dans le premier if ? dans le deuxième if ?
    - Que vaut mysqli_num_rows($resultat) ?
    etc.

    Tu as mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message = "Login ou mot de passe eronné";
    Mais ou s'affiche ce $message ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    Non il me laisse sur admin.php, mais me met la page toute blanche.

    $message s'affiche dans le html

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Et la réponse aux 4 autres questions ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    Je vérifiais une seconde fois si tout marchais.
    Je rentre bien dans tout les if.
    la seule chose qui n'apparait pas avec un print_r c'est $_SESSION

  8. #8
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Et avec un espace ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: base_de_donnee/plat/plat_liste.php');
    Sinon si tu remplacer le header() par un echo tu le vois ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    Je comprend pas j'ai essayé les deux mais ça ne change rien.
    il me relance la même page admin.php mais toute blanche.
    et pourtant chaque if est variable est correcte.

  10. #10
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Et la réponse à la question ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    non je ne le vois pas

  12. #12
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    si je met un echo "bonjour" juste après mysqli_fetch_assoc, ça marche j'affiche le bonjour.
    c'est juste après le problème, je pense.

    Il me semble que le problème que j'ai c'est dans la vérification de $pass

  13. #13
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    J'ai trouver, mon problème c'est que je ne crypte pas le mot de passe et donc le password_verify fait buggé

  14. #14
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu nous as dit que tu rentrais dans tous les if pourtant non ?

    Que vaut $_POST['pass'] ?
    Que vaut $ligne["pass"] ?
    Que vaut password_verify($_POST['pass'], $ligne["pass"]) ?

    Au passage c'est $_POST['pass'] qu'il faut vérifier pas $pass qui n'a plus de raison d'être.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    Que vaut $_POST['pass'] ? 123456
    Que vaut $ligne["pass"] ? rien
    Que vaut password_verify($_POST['pass'], $ligne["pass"]) ? rien

    Le truc c'est que ça marche, mais sans le chiffrage du mot de passe.

  16. #16
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Que vaut $ligne["pass"] ? rien
    Gné ? Que vaut $ligne alors ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Que vaut password_verify($_POST['pass'], $ligne["pass"]) ? rien
    Ca ce n'est pas possible, le retour de la fonction c'est TRUE ou FALSE, pas rien.
    Utilise bien var_dump() quand tu debugues des résultats.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    Que vaut $ligne["pass"] ? string(6) "123456"
    password_verify($_POST['pass'], $ligne["pass"]) ne donne rien / ça ne m'affiche rien

    (le mot de passe n'est pas chiffré)

  18. #18
    Membre du Club
    Homme Profil pro
    en étude de webmaster
    Inscrit en
    Février 2016
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : en étude de webmaster

    Informations forums :
    Inscription : Février 2016
    Messages : 125
    Points : 56
    Points
    56
    Par défaut
    comment je password_hash

  19. #19
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Salut tu peux l'encrypter en sha1 :

    $password = sha1(strtoupper($_POST['login']).":".strtoupper($_POST['pass']));


  20. #20
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Voilà un code corrigé,

    il devrait fonctionner, je n'ai pas testé :

    Code php : 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
    76
    77
    78
    79
     
    include 'connexion_bd/connexion_bd.php';
    /*$connexion = mysqli_connect("localhost", "root", "root", "courte_paille");
    mysqli_query($connexion, "SET NAMES 'utf8'");*/
     
    /*---------------------------------------------------------*/
     
    if($_SERVER["REQUEST_METHOD"] == 'POST'){
     
    	// inscription rapide
        if(isset($_POST["regLogin"]) && isset($_POST["regPass"])){
     
            // La connexion a échouée
            if(!$connexion){
     
                //On récupère le beau message d'erreur de connexion généré par mysql (mysqli_connect_error)
                $msgError = sprintf(" ERREUR : %s", mysqli_connect_error());
                exit($msgError);
     
            }
     
            $regLogin = $_POST["regLogin"];
            $regPass  = $_POST["regPass"];
    		$passEncrypt = sha1(strtoupper($regLogin).":".strtoupper($regPass)); // par contre ton MDP doit aussi etre encrypté quand tu as inscrit le compte !
     
    		$sql = "INSERT INTO accounts (login, password) VALUES ('".$regLogin."','".$passEncrypt."')";
    		$resultat = mysqli_query($connexion, $sql);
    		if($resultat==true){
    			echo "Compte crée";
    		} else {
    			echo "Erreur: Une erreur c'est produite";
    		}
     
        // le minimum de vérification sur les informations reçues par le formulaire
        if(isset($_POST["login"]) && isset($_POST["pass"])){
     
            // La connexion a échouée
            if(!$connexion){
     
                //On récupère le beau message d'erreur de connexion généré par mysql (mysqli_connect_error)
                $msgError = sprintf(" ERREUR : %s", mysqli_connect_error());
                exit($msgError);
     
            }
     
            // pas d'erreurs, nous sommes connecté!
            $login = $_POST["login"];
            $pass  = $_POST["pass"];
    		$passEncrypt = sha1(strtoupper($login).":".strtoupper($pass)); // par contre ton MDP doit aussi etre encrypté quand tu as inscrit le compte !
     
            $sql = "SELECT * FROM user WHERE login = '".$login."' AND pass = '".$passEncrypt."'";
     
    		// On execute la requête
    		$resultat = mysqli_query($connexion, $sql);
    		$pass_verify = mysqli_num_rows($resultat);
            //Tout est bon, on peut afficher le résultat de la requête
            if($pass_verify == 1){
    			// démarrer la session
    			session_start();
     
    			// initialiser une variable de session user
    			$_SESSION['user'] = $login;
     
    			// redirection sur plat_liste.php
    			header('Location:base_de_donnee/plat/plat_liste.php');
     
    			// bye
    			exit();
     
    		}else{
    			// sinon : message = pas ok
                $message = "Login ou mot de passe erroné";
            }
        }
    }
     
    /*---------------------------------------------------------*/
     
    $ok = mysqli_close($connexion);

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] login et mot de pass pour une page web en php
    Par belakhdarbts10 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/07/2011, 16h55
  2. [MySQL] Création d'un login et mot de passe securisé avec PHP/MySQL
    Par NicoMontreal91 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/09/2008, 22h01
  3. [PHP-JS] admin console login et mot de passe
    Par kitty2006 dans le forum Langage
    Réponses: 18
    Dernier message: 03/10/2006, 23h20
  4. [VB]Gestion d'un login et mot de passe sous VB
    Par b_steph_2 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 10/10/2005, 18h09
  5. Fenêtre avec login et mot de passe
    Par keawee dans le forum ASP
    Réponses: 5
    Dernier message: 29/08/2005, 14h30

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