inloggen werkt niet
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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.";
}
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:
Gewijzigd op 13/04/2021 14:59:10 door - Ariën -
- 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.
Toevoeging op 13/04/2021 14:59:51:
- 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)
https://www.webslesson.info/2016/06/php-login-script-using-pdo-with-session.html
En password hash werd in je vorige topic genoemd.
https://www.phphulp.nl/php/forum/topic/login-sessie-met-php-en-database-probleem/103963/#753186
Tijd zat om te oefenen.
- 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
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?
- Ariën - op 13/04/2021 15:41:59:
Hoe staat je wachtwoord in je database?
de wachtwoorden worden hoe het nu is gewoon opgeslagen als hoe ze ingevoerd zijn, dus als ik 000 invoer wordt ie opgeslagen als 000
Dan is de uitslag namelijk altijd FALSE.
Toevoeging op 13/04/2021 15:48:44:
Dit is de hash van 000.
Sla die direct op in de database van de betreffende gebruiker.
Martin Boersma op 13/04/2021 15:43:05:
de wachtwoorden worden hoe het nu is gewoon opgeslagen als hoe ze ingevoerd zijn, dus als ik 000 invoer wordt ie opgeslagen als 000
- Ariën - op 13/04/2021 15:41:59:
Hoe staat je wachtwoord in je database?
de wachtwoorden worden hoe het nu is gewoon opgeslagen als hoe ze ingevoerd zijn, dus als ik 000 invoer wordt ie opgeslagen als 000
Ik had dit juist vorige keer al uitgelegd.
Passwoorden moet je altijd omzetten naar een niet-terugkerende hash. Niemand hoeft te weten wat je wachtwoord is.
- Ariën - op 13/04/2021 15:56:10:
Ik had dit juist vorige keer al uitgelegd.
Passwoorden moet je altijd omzetten naar een niet-terugkerende hash. Niemand hoeft te weten wat je wachtwoord is.
Martin Boersma op 13/04/2021 15:43:05:
- Ariën - op 13/04/2021 15:41:59:
de wachtwoorden worden hoe het nu is gewoon opgeslagen als hoe ze ingevoerd zijn, dus als ik 000 invoer wordt ie opgeslagen als 000Hoe staat je wachtwoord in je database?
Ik had dit juist vorige keer al uitgelegd.
Passwoorden moet je altijd omzetten naar een niet-terugkerende hash. Niemand hoeft te weten wat je wachtwoord is.
Eens. Wanneer iemand anders jouw systeem gebruikt bega je een strafbaar feit als je wachtwoorden opslaat in de database(!)
Dat is volgens artikel 32, lid 1 van europese AVG wetgeving. Er zijn al vaker boetes voor uitgedeeld. En er wordt uitgebreid gewaarschuwd, en de hele wereld wordt bekend gemaakt met hoe je het dan wel moet doen.
Met andere woorden, iedereen die denkt dat-ie wachtwoorden van anderen mag opslaan is een regelrechte idioot. Zeg niet dat we niet gewaarschuwd hebben.