Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler in der Passwortabfrage!

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fehler in der Passwortabfrage!

    Hallo liebe PhP.de'ler

    Derzeit bin ich wohl etwas blind. ich habe hier ein Login-Script das mir beim Login immer "Wrong Details" als fehler ausgibt. Ich denke ich habe irgendwo einen Fehler den ich nicht sehe.
    Deshalb bitte ich um ein wenig schützenhilfe:

    PHP-Code:
    <?php

    require_once('db_config.php');

    class 
    USER
    {    

        private 
    $conn;

        public function 
    __construct()
        {
            
    $database = new Database();
            
    $db $database->dbConnection();
            
    $this->conn $db;
        }

        public function 
    runQuery($sql)
        {
            
    $stmt $this->conn->prepare($sql);
            return 
    $stmt;
        }

        public function 
    register($uname,$upass)
        {
            try
            {
                
    $new_password password_hash($upassPASSWORD_DEFAULT);

                
    $stmt $this->conn->prepare("INSERT INTO users(user_name, user_pass)
                                                           VALUES(:uname, :upass)"
    );

                
    $stmt->bindparam(":uname"$uname);
                
    $stmt->bindparam(":upass"$new_password);                                          

                
    $stmt->execute();    

                return 
    $stmt;    
            }
            catch(
    PDOException $e)
            {
                echo 
    $e->getMessage();
            }                
        }


        public function 
    doLogin($uname,$upass)
        {
            try
            {
                
    $stmt $this->conn->prepare("SELECT user_id, user_name, user_pass FROM users WHERE user_name=:uname ");
                
    $stmt->execute(array(':uname'=>$uname));
                
    $userRow=$stmt->fetch(PDO::FETCH_ASSOC);
                if(
    $stmt->rowCount() == 1)
                {
                  
    //entfernt  $vpassword = password_hash($upass, PASSWORD_DEFAULT);
                    
    if(password_verify($upass$userRow['user_pass']))
                    {
                        
    $_SESSION['user_session'] = $userRow['user_id'];
                        return 
    true;
                    }
                    else
                    {
                        return 
    false;
                    }
                }
            }
            catch(
    PDOException $e)
            {
                echo 
    $e->getMessage();
            }
        }

        public function 
    is_loggedin()
        {
            if(isset(
    $_SESSION['user_session']))
            {
                return 
    true;
            }
        }

        public function 
    redirect($url)
        {
            
    header("Location: $url");
        }

        public function 
    doLogout()
        {
            
    session_destroy();
            unset(
    $_SESSION['user_session']);
            return 
    true;
        }
    }
    ?>
    Danke für jeden Tipp und jeden Lösungshinweis


    Hier die loginseite:

    PHP-Code:
    <?php
    session_start
    ();
    require_once(
    "class.user.php");
    $login = new USER();

    if(
    $login->is_loggedin()!="")
    {
        
    $login->redirect('home.php');
    }

    if(isset(
    $_POST['btn-login']))
    {
        
    $uname strip_tags($_POST['txt_uname_email']);
       
    //entfernt  $umail = strip_tags($_POST['txt_uname_email']);
        
    $upass strip_tags($_POST['txt_password']);

        if(
    $login->doLogin($uname,$umail,$upass))
        {
            
    $login->redirect('home.php');
        }
        else
        {
            
    $error "Wrong Details !";
        }    
    }
    $register 'off';
    ?>
    <!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>
     <link rel="stylesheet" type="text/css" href="table.css">
     <link rel="stylesheet" type="text/css" href="template.css">
     <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <div id="header"> </div>
    <div id="centerdiv">
    <div id="navbar">
    <a href="index.php">Startseite</a><br/>
    <a href="month_cal.php?month=january">Monatskalender</a><br/>
    <a href="year_cal.php">Jahreskalender</a>
    </div>
    <div id="content">
    <center>
    <div class="signin-form">

        <div class="container">


           <form class="form-signin" method="post" id="login-form">

            <h2 class="form-signin-heading">Login</h2><hr />

            <div id="error">
            <?php
                
    if(isset($error))
                {
                    
    ?>
                    <div class="alert alert-danger">
                       <i class="glyphicon glyphicon-warning-sign"></i> &nbsp; <?php echo $error?> !
                    </div>
                    <?php
                
    }
            
    ?>
            </div>

            <div class="form-group">
            <input type="text" class="form-control" name="txt_uname_email" placeholder="Benutzername" required />
            <span id="check-e"></span>
            </div>

            <div class="form-group">
            <input type="password" class="form-control" name="txt_password" placeholder="Dein Passwort" />
            </div>

             <hr />

            <div class="form-group">
                <button type="submit" name="btn-login" class="btn btn-default">
                        <i class="glyphicon glyphicon-log-in"></i> &nbsp; SIGN IN
                </button>
            </div>  
              <br />
            <?php
            
    if($register == 'off'){
            }else{
                
    ?>
                <label>Don't have account yet ! <a href="sign-up.php">Sign Up</a></label>
            <?php
            
    }
            
    ?>
          </form>

        </div>

    </div></center>
    </div>
    </div>
    <div id="footer"> </div>
    </body>
    </html>


  • #2
    Interessant wäre, an welcher Stelle "Wrong Details" gesendet wird.
    So können wir doch auch nur raten...
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche Tutorials

    Kommentar


    • #3
      Zitat von Arne Drews Beitrag anzeigen
      Interessant wäre, an welcher Stelle "Wrong Details" gesendet wird.
      So können wir doch auch nur raten...
      Diese meldung kommt nach dem Absenden der Logindaten über das loginformular.

      Kommentar


      • #4
        Schon klar, aber das ist nicht die Frage. Die "Ausgabe" findet sich im Code nirgend wieder, den Du gepostet hast. Also können wir das nicht lokalisieren.
        Die Ausgabe der Meldung wird an mind. eine Bedingung geknüpft sein. Da fängt man an zu debuggen, ob die Variablen bspw. den erwarteten Inhalt haben usw., bzw. warum die Bedingung zur Ausgabe der Meldung führt.

        Ohne zu wissen, an welcher Code-Stelle die Ausgabe passiert, können wir halt nur raten...
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche Tutorials

        Kommentar


        • #5
          Beim password_verify() musst du das Original-Passwort übergeben, nicht den Hash.
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            Zitat von lstegelitz Beitrag anzeigen
            Beim password_verify() musst du das Original-Passwort übergeben, nicht den Hash.
            Geändert und die loginseite im 1 Post hinzugefügt!

            // Lösung:

            PHP-Code:
            von
                        $new_password 
            password_hash($upassPASSWORD_DEFAULT);
            zu

                        $new_password 
            password_hash($upassPASSWORD_BCRYPT); 
            Bitte Closen!

            Kommentar

            Lädt...
            X