help blowfish
weer een topic denk je dat klopt nu geen css/html maar php(blowfish)
ik heb me registeerder omgebouwt naar blowfish dat werkt
maar nu bij inloggen pakt die elke wachtwoord en dat moet niet he
Code (php)
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
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
login.php
<?php
require_once("config.php");
session_start();
if (!empty(trim($_POST['username'])) && !empty(trim($_POST['password'])))
{
$username = ($_POST['username']);
$password = ($_POST['password']);
$ha_pass = password_verify ($password , CRYPT_BLOWFISH);
$sql = $mysqli->query("SELECT * from user WHERE username = '{$username}' LIMIT 1");
if (!$sql->num_rows == 1) {
echo "<p>foutte gebruikersnaam/wachtwoord </p>";
} else {
echo "<p>Logged in successfully</p>";
session_regenerate_id(true);
$_SESSION['user'] = "test";
}
}else{
?>
<form action="login.php" method="POST">
Gebruikersnaam:<br />
<input type="text" placeholder="gebruikersnaam" name="username" /> <br />
Wachtwoord:<br />
<input type="password" name="password" placeholder="wachtwoord" />
<input type="submit"id="login" value="login">
<?php if(isset($_SESSION['user']) == true){
echo $_SESSION['user'];
}else{echo "login ";
}?>
</form>
<?php
}
?>
registeer.php
Code (php)
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
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
<?php
require_once("config.php");
if(isset($_POST['hidden']) && $_POST['hidden'] ==1){
$username = $_POST['username'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
if ($password == $password2){
$sql1 = $mysqli->query("SELECT username from user WHERE username='".$username."'");
if($sql1->num_rows == 1){
echo"bestaat al";
}else{
$sql3 = $mysqli->query( "INSERT INTO user (`username`, `password`) VALUES ('".$username."','".password_hash($password, CRYPT_BLOWFISH)."')");
}
}else{
echo "passworden komen niet overeen";
}
}
?>
<html>
<head><title>registeer</title></head>
<body>
<form action='registeer.php' method='post'>
username:<input type='text'name='username'/> <br />
password: <input type='password'name='password' /> <br />
password retype: <input type='password'name='password2' /> <br />
<input type='hidden' name='hidden' value=1>
<input type='submit' value='registeer'>
</form>
</body>
</html>
require_once("config.php");
if(isset($_POST['hidden']) && $_POST['hidden'] ==1){
$username = $_POST['username'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
if ($password == $password2){
$sql1 = $mysqli->query("SELECT username from user WHERE username='".$username."'");
if($sql1->num_rows == 1){
echo"bestaat al";
}else{
$sql3 = $mysqli->query( "INSERT INTO user (`username`, `password`) VALUES ('".$username."','".password_hash($password, CRYPT_BLOWFISH)."')");
}
}else{
echo "passworden komen niet overeen";
}
}
?>
<html>
<head><title>registeer</title></head>
<body>
<form action='registeer.php' method='post'>
username:<input type='text'name='username'/> <br />
password: <input type='password'name='password' /> <br />
password retype: <input type='password'name='password2' /> <br />
<input type='hidden' name='hidden' value=1>
<input type='submit' value='registeer'>
</form>
</body>
</html>
je doet niks met $ha_pass. Je kijkt alleen in je query naar de gebruikersnaam.
Dat is logisch, want je controleert het wachtwoord niet in:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$sql = $mysqli->query("SELECT * from user WHERE username = '{$username}' LIMIT 1");
if (!$sql->num_rows == 1) {
echo "<p>foutte gebruikersnaam/wachtwoord </p>";
} else {
echo "<p>Logged in successfully</p>";
session_regenerate_id(true);
$_SESSION['user'] = "test";
}
?>
$sql = $mysqli->query("SELECT * from user WHERE username = '{$username}' LIMIT 1");
if (!$sql->num_rows == 1) {
echo "<p>foutte gebruikersnaam/wachtwoord </p>";
} else {
echo "<p>Logged in successfully</p>";
session_regenerate_id(true);
$_SESSION['user'] = "test";
}
?>
zoja dan krijg ik deze fout
Notice: Trying to get property of non-object in C:\Users\kenny\Desktop\xammp\htdocs\login.php on line 11
foutte gebruikersnaam/wachtwoord
Heb je $mysqli al ergens aangemaakt / geinstantieerd?
- Aar - op 19/09/2014 17:24:30:
Heb je $mysqli al ergens aangemaakt / geinstantieerd?
ja in me config
Toevoeging op 19/09/2014 18:25:03:
iemand anders die kan helpen
Toevoeging op 19/09/2014 21:10:26:
iemand die kan helpen
Je moet de password_verify in een if statement gebruiken, voor hoe jij het wilt.
wat moet je dan in een if zetten ?
Toevoeging op 20/09/2014 14:43:13:
hoe dan ?
wat moet je dan in een if zetten ?
//true
} else {
//false
}
tog? zo dan?
Gewijzigd op 20/09/2014 14:52:01 door kenny iets
if(password_verify($password, $hash)) {
Code (php)
En om het je nog duidelijker te maken hier een opzetje hoe het werkt:
Code (php)
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
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
<?php
$options = [
'cost' => 10
];
// Get the password from post
$passwordFromPost = 'test';
$hash = password_hash($passwordFromPost, PASSWORD_BCRYPT, $options);
echo $hash;
echo '<br />';
// Get the password from the database and compare it to a variable (for example post)
//$passwordFromPost = $_POST['password'];
$hashedPasswordFromDB = '$2y$10$es6QnePL938piPYTlboNEeh7ZL8O3WpT6LPbFa7o7Gc8ex5WL9vei';
if (password_verify($passwordFromPost, $hashedPasswordFromDB))
{
echo 'Password is valid!';
echo '<pre>';
echo '<hr>';
var_dump(password_get_info($hash));
// CHECK TO SEE PASSWORD NEED REHASH
if (password_needs_rehash($hashedPasswordFromDB, PASSWORD_BCRYPT, $options))
{
$hashNew = password_hash($passwordFromPost, PASSWORD_BCRYPT, $options);
echo '<br>';
echo $hashNew;
}
}
else
{
echo 'Invalid password.';
}
?>
$options = [
'cost' => 10
];
// Get the password from post
$passwordFromPost = 'test';
$hash = password_hash($passwordFromPost, PASSWORD_BCRYPT, $options);
echo $hash;
echo '<br />';
// Get the password from the database and compare it to a variable (for example post)
//$passwordFromPost = $_POST['password'];
$hashedPasswordFromDB = '$2y$10$es6QnePL938piPYTlboNEeh7ZL8O3WpT6LPbFa7o7Gc8ex5WL9vei';
if (password_verify($passwordFromPost, $hashedPasswordFromDB))
{
echo 'Password is valid!';
echo '<pre>';
echo '<hr>';
var_dump(password_get_info($hash));
// CHECK TO SEE PASSWORD NEED REHASH
if (password_needs_rehash($hashedPasswordFromDB, PASSWORD_BCRYPT, $options))
{
$hashNew = password_hash($passwordFromPost, PASSWORD_BCRYPT, $options);
echo '<br>';
echo $hashNew;
}
}
else
{
echo 'Invalid password.';
}
?>
Stop maar met PHP, het antwoord is hier alleen al 5x gegeven ofzo.
Ik begrijp trouwens niet wat die {$var} dingen daar doen.....
wat kan ik er aan doen dat ik een noob bent wat meer makkelijker uitleg moet
Edit:
Zullen we het gezellig houden? Alvast bedankt!
Heb je het bekeken/geprobeerd?
ja echt vaak en een paar geprobeerd ik loop alleen steeds vast met de db
Op welke manier loop je vast? Kan je wat specifieker zijn?
zal vast aan mijn ligggen
Gewijzigd op 21/09/2014 16:52:01 door kenny iets
Maar volgens mij heb je mijn tweede voorbeeld niet gebruikt anders had je gezie dat het wel werkt.