hallo, ik probeer voor een schoolopdracht een register en login systeem te maken. ik kan al een user aan maken die dan ook in de database wordt opgeslagen, maar wanneer ik probeer in te loggen met datzelfde ww en username, doet ie het niet. hieronder staat de code waarin in de foutmelding krijg, dit is van het login gedeelte.

if($stmt->rowCount() == 1){
                        if($row = $stmt->fetch()){
                            $UserID = $row["UserID"];
                            $username = $row["Username"];
                            $hashed_password = $row["Password"];
                            if(password_verify($password, $hashed_password)){
                                // password is correct, so start new session
                                session_start();

                                //store data in session variables
                                $_SESSION["loggedin"] = true;
                                $_SESSION["UserID"] = $UserID;
                                $_SESSION["username"] = $username;

                                //redirect user to welcome page
                                header("location: welcome.php");
                            }
                            else{
                                //invalid password, display error message
                                $login_err = "Invalid username or password.";
                            }


ik krijg dus de 'Invalid username or password' error die ik heb ingesteld. ik kom hier zelf niet uit, kan iemand hier mij asap helpen?
Waar komt $password vandaan?
- Ariën - op 13/04/2021 14:50:18

Waar komt $password vandaan?


die komt uit de functie waar ie checked of de password niet empty is:

// Check if password is empty
    if(empty(trim($_POST["password"]))){
        $password_err = "Please enter your password.";
    }
    else{
        $password = trim($_POST["password"]);
    }
Echo beide variabelen eens en kijk of ze uberhaupt een waarde hebben. Kijk ook eens of je VARCHAR-waarde in je database niet te kort is. Check ook met password_hash() of de boel overeenkomt.
- Ariën - op 13/04/2021 14:58:05

Echo beide variabelen eens en kijk of ze uberhaupt een waarde hebben. Kijk ook eens of je VARCHAR-waarde in je database niet te kort is.


welke 2 variabelen? de varchar waardes in mijn database staan op 255.

[size=xsmall]Toevoeging op 13/04/2021 14:59:51:[/size]

- Ariën - op 13/04/2021 14:58:05

Echo beide variabelen eens en kijk of ze uberhaupt een waarde hebben. Kijk ook eens of je VARCHAR-waarde in je database niet te kort is.


welke 2 variabelen? de varchar waardes in mijn database staan op 255.
Haal je wachtwoord eens door password_hash(), en controleer of deze overeenkomt met de inhoud in je database.
- Ariën - op 13/04/2021 15:04:48

Haal je wachtwoord eens door password_hash(), en controleer of deze overeenkomt met de inhoud in je database.


Hoe bedoel je een wachtwoord door password_hash() halen? (ik ben nog vrij nieuw op het gebied van php dus weet nog niet super veel)
Ik neem aan dat je de wachtwoorden met deze functie toch gehashed in de database opslaat bij de registratie?

Zie ook: www.php.net/password_hash
- Ariën - op 13/04/2021 15:14:24

Ik neem aan dat je de wachtwoorden met deze functie toch gehashed in de database opslaat bij de registratie?

Zie ook: www.php.net/password_hash


ik heb nog geen hash op de wachtwoorden staan in het registratie formulier. ik heb deze login van een tutorial en de registratie werkte toen eerst niet, dus die heb ik inmiddels werkend gekregen, maar de login dus nog niet.
Hoe staat je wachtwoord in je database?

Reageren