Haalt query niet op
Pagina: « vorige 1 2 3 volgende »
Ik weet denk al wat het is, ik heb even gepuzzeld met een eerder script van mij, een oud login script, die niet was ingevoerd met md5, ik heb daar even md5 in gezet, en nu kan ik wederom niet inloggen. dus het ligt aan die md5.. maar ik snap het niet?
Hoe worden de gebruikers de database in gezet? Ook met MD5? Of gewoon plain text?
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
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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$username = $_POST['naam'];
$wachtwoord = md5($_POST['wachtwoord']);
include 'config.php';
$query = "SELECT *
FROM gebruikers
WHERE gebruikersnaam='$username'
AND wachtwoord='$wachtwoord'";
$result = mysql_query($query)
or die(mysql_error());
if(mysql_num_rows($result))
{
echo "Hij doet het!";
}
else
{
echo "hij doet het niet!!";
}
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$username = $_POST['naam'];
$wachtwoord = md5($_POST['wachtwoord']);
include 'config.php';
$query = "SELECT *
FROM gebruikers
WHERE gebruikersnaam='$username'
AND wachtwoord='$wachtwoord'";
$result = mysql_query($query)
or die(mysql_error());
if(mysql_num_rows($result))
{
echo "Hij doet het!";
}
else
{
echo "hij doet het niet!!";
}
}
?>
Zoals je ziet md5 ik het wachtwoord, en niet de gebruikersnaam, moet dit?
Gewijzigd op 04/11/2011 22:52:34 door Jerry php
Waar worden de gebruikers erin gezet? Ik zie niets... Nogmaals de vraag, hoe staan de gebruikers in de database? Zie gewoon het wachtwoord zoals je die gekozen hebt, of zie je het wachtwoord in allemaal 'rare' karakters, oftewel een MD5 string ?
hier stukje register script waar ze erin gezet worden.
En ja, de wachtwoorden staan in md5 string.
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
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
80
81
82
83
84
85
86
87
88
89
90
91
92
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
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$error = array();
//Controleren of alles in is gevuld
if(empty($_POST['naam']))
{
$error[] = "U heeft uw gebruikers naam niet ingevuld";
}
if(empty($_POST['wachtwoord']))
{
$error[] = "U heeft het eerste wachtwoord niet ingevuld";
}
if(empty($_POST['wachtwoord2']))
{
$error[] = "U heeft het tweede wachtwoord niet ingevuld";
}
//wachtwoorden vergelijken
$username = $_POST['naam'];
$password = md5($_POST['wachtwoord']);
$password2 = md5($_POST['wachtwoord2']);
if($password !== $password2)
{
$error[] = "De wachtwoorden komen niet overeen";
}
//Controleren of email al bestaat
include 'config.php';
$query = "SELECT *
FROM gebruikers
WHERE gebruikersnaam='$username'";
$result = mysql_query($query)
or die(mysql_error());
if(mysql_num_rows($result) > 0)
{
$error[] = "Deze gebruikersnaam bestaat al.";
}
//Errors tellen en weergeven
if(empty($error))
{
include 'config.php';
$query = "INSERT INTO gebruikers (gebruikersnaam, wachtwoord)
VALUES ('$username', '$password')";
$result = mysql_query($query, $connect)
or die(mysql_error());
echo "Bedankt, u bent succesvol aangemeld!";
if(true)
{
header('refresh: 2; url=login.php');
}
}
else
{
if(count($error) > 1)
{
echo "Er zijn een aantal dingen niet ingevuld: <br/>";
foreach($error as $errors)
{
echo "<ul><li>" . $errors . "</li></ul>";
}
echo "<a href=register.php>Probeer het nogmaals</a>";
}
else
{
foreach($error as $errors)
{
echo "<ul><li>" . $errors . "</li></ul>";
}
echo "<a href=register.php>Probeer het nogmaals</a>";
}
}
}
?>
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$error = array();
//Controleren of alles in is gevuld
if(empty($_POST['naam']))
{
$error[] = "U heeft uw gebruikers naam niet ingevuld";
}
if(empty($_POST['wachtwoord']))
{
$error[] = "U heeft het eerste wachtwoord niet ingevuld";
}
if(empty($_POST['wachtwoord2']))
{
$error[] = "U heeft het tweede wachtwoord niet ingevuld";
}
//wachtwoorden vergelijken
$username = $_POST['naam'];
$password = md5($_POST['wachtwoord']);
$password2 = md5($_POST['wachtwoord2']);
if($password !== $password2)
{
$error[] = "De wachtwoorden komen niet overeen";
}
//Controleren of email al bestaat
include 'config.php';
$query = "SELECT *
FROM gebruikers
WHERE gebruikersnaam='$username'";
$result = mysql_query($query)
or die(mysql_error());
if(mysql_num_rows($result) > 0)
{
$error[] = "Deze gebruikersnaam bestaat al.";
}
//Errors tellen en weergeven
if(empty($error))
{
include 'config.php';
$query = "INSERT INTO gebruikers (gebruikersnaam, wachtwoord)
VALUES ('$username', '$password')";
$result = mysql_query($query, $connect)
or die(mysql_error());
echo "Bedankt, u bent succesvol aangemeld!";
if(true)
{
header('refresh: 2; url=login.php');
}
}
else
{
if(count($error) > 1)
{
echo "Er zijn een aantal dingen niet ingevuld: <br/>";
foreach($error as $errors)
{
echo "<ul><li>" . $errors . "</li></ul>";
}
echo "<a href=register.php>Probeer het nogmaals</a>";
}
else
{
foreach($error as $errors)
{
echo "<ul><li>" . $errors . "</li></ul>";
}
echo "<a href=register.php>Probeer het nogmaals</a>";
}
}
}
?>
Gewijzigd op 04/11/2011 22:57:11 door Niels K
Krijg je dan dezelfde hash die in de database staat?
Daarnaast, zorgen dat je variabelen buiten de quotes staan ;-)
Ik krijg een hele andere hash..
Controleer ook je formulier nog op veldnamen, spaties en dergelijke.
3398a2d8124102aae406
en ik krijg:
d41d8cd98f00b204e9800998ecf8427e
Die is aanzienlijk korter.. Is je wachtwoord veld in de database wel groot genoeg?
Bij de register krijg ik ook een hele andere hash..
Lijkt die op de eerste of de tweede?
Toevoeging op 04/11/2011 23:08:26:
2e
Hoeveel characters is je veld nu?
max. 255, dus kan niet verkeerd zijn
var_dump $_POST['wachtwoord'] eens bij beiden formulieren. En var_dump daarna de MD5 hash bij beide formulieren en kijk dan of ze overeen komen.
Los van je probleem: Waarom gebruik je nog steeds 'dodelijke' foutafhandeling?
En de variabeles niet uit de quotes ;-)
Als wachtwoord heb ik mijn honds naam gekozen. haha
Met welke code doe je dat?