mysql_num_rows geeft geen nummer
Hallo ik heb nu dit script voor een inlog systeem
de rijen worden geteld die de naam en het wachtwoord bevatten dat is ingevuld als het aantal 1 is is alles Ok en wordt er verder gecontroleerd op email bevestigd etc.
als ik op regel 14 dit doe:
werkt het niet
Maar als ik kijk of $aantal uberhoubt een waarde heeft werkt het wel:
De waarde van $aantal is het getal dat van mysql_num_rows komt
de rijen worden geteld die de naam en het wachtwoord bevatten dat is ingevuld als het aantal 1 is is alles Ok en wordt er verder gecontroleerd op email bevestigd etc.
als ik op regel 14 dit doe:
werkt het niet
Maar als ik kijk of $aantal uberhoubt een waarde heeft werkt het wel:
De waarde van $aantal is het getal dat van mysql_num_rows komt
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
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
<?PHP
mysql_connect('', '', '');
mysql_select_db('') or die ('fout');
if(isset($_POST['login']))
{
if(!empty($_POST['loginnaam']))
{
if(!empty($_POST['wachtwoord']))
{
$sql = "SELECT id,naam,wachtwoord,emailbevestigd,blokkade,rang FROM leden WHERE naam='".mysql_real_escape_string($_POST['loginnaam'])."' wachtwoord='".mysql_real_escape_string($_POST['wachtwoord'])."'";
$query = mysql_query($sql);
$aantal = mysql_num_rows($query);
if($aantal !== '')
{
$row = mysql_fetch_assoc($query);
if($row['emailbevestigd'] !== 'nee')
{
if($row['blokkade'] !== 'blokkade')
{
if($row['rang'] == 'admin')
{
$_SESSION['rang'] = 'admin';
}
if($row['rang'] == 'moderator')
{
$_SESSION['rang'] = 'moderator';
}
// Alles is gecontroleerd
$_SESSION['loguit'] = mt_rand(0, 999999);
$_SESSION['naam'] = $row['naam'];
$_SESSION['id'] = $row['id'];
if(isset($_POST['checklogin']))
{
$_SESSION['checklogin'] = 'true';
}
header('location: me.php');
} else {
echo 'Je account is geblokkeerd';
}
} else {
echo 'Je emailaderes is niet bevestigd';
}
} else {
echo 'Onjuist wachtwoord of gebruikersnaam';
}
} else {
echo 'Vul een gebruikersnaam en wachtwoord in om in te loggen';
}
} else {
echo 'Vul een gebruikersnaam en wachtwoord in om in te loggen';
}
}
?>
<html>
<head>
</head>
<body>
<form method="post" action="">
<input type="text" name="loginnaam">
<input type="password" name="wachtwoord">
<input type="checkbox" name="checklogin" value="checklogin">
<input type="submit" name="login" value="Log in">
</form>
</body>
</html>
mysql_connect('', '', '');
mysql_select_db('') or die ('fout');
if(isset($_POST['login']))
{
if(!empty($_POST['loginnaam']))
{
if(!empty($_POST['wachtwoord']))
{
$sql = "SELECT id,naam,wachtwoord,emailbevestigd,blokkade,rang FROM leden WHERE naam='".mysql_real_escape_string($_POST['loginnaam'])."' wachtwoord='".mysql_real_escape_string($_POST['wachtwoord'])."'";
$query = mysql_query($sql);
$aantal = mysql_num_rows($query);
if($aantal !== '')
{
$row = mysql_fetch_assoc($query);
if($row['emailbevestigd'] !== 'nee')
{
if($row['blokkade'] !== 'blokkade')
{
if($row['rang'] == 'admin')
{
$_SESSION['rang'] = 'admin';
}
if($row['rang'] == 'moderator')
{
$_SESSION['rang'] = 'moderator';
}
// Alles is gecontroleerd
$_SESSION['loguit'] = mt_rand(0, 999999);
$_SESSION['naam'] = $row['naam'];
$_SESSION['id'] = $row['id'];
if(isset($_POST['checklogin']))
{
$_SESSION['checklogin'] = 'true';
}
header('location: me.php');
} else {
echo 'Je account is geblokkeerd';
}
} else {
echo 'Je emailaderes is niet bevestigd';
}
} else {
echo 'Onjuist wachtwoord of gebruikersnaam';
}
} else {
echo 'Vul een gebruikersnaam en wachtwoord in om in te loggen';
}
} else {
echo 'Vul een gebruikersnaam en wachtwoord in om in te loggen';
}
}
?>
<html>
<head>
</head>
<body>
<form method="post" action="">
<input type="text" name="loginnaam">
<input type="password" name="wachtwoord">
<input type="checkbox" name="checklogin" value="checklogin">
<input type="submit" name="login" value="Log in">
</form>
</body>
</html>
Gewijzigd op 06/02/2012 15:03:39 door Jan terhuijzen
Gesponsorde koppelingen:
Je controleert je query niet. Ik gok dat je een false terug krijgt.
Bouw dus wat foutafhandeling in zodat je het kunt controleren
Bouw dus wat foutafhandeling in zodat je het kunt controleren
Gewijzigd op 06/02/2012 15:06:45 door TJVB tvb
Echo $aantal eens. Dat zou ook wel eens 2 of meer kunnen zijn.
je query klopt niet..
Moet nog AND tussen de kolomen, dus:
en getallen (integers) hoeven niet tussen ', dus if($aantal == '1') mag/moet if($aantal == 1) zijn.
Code (php)
1
WHERE naam='".mysql_real_escape_string($_POST['loginnaam'])."' wachtwoord='".mysql_real_escape_string($_POST['wachtwoord'])."'
Moet nog AND tussen de kolomen, dus:
Code (php)
1
WHERE naam='".mysql_real_escape_string($_POST['loginnaam'])."' AND wachtwoord='".mysql_real_escape_string($_POST['wachtwoord'])."'
en getallen (integers) hoeven niet tussen ', dus if($aantal == '1') mag/moet if($aantal == 1) zijn.
TJVB tvb op 06/02/2012 15:06:17:
Je controleert je query niet. Ik gok dat je een false terug krijgt.
Bouw dus wat foutafhandeling in zodat je het kunt controleren
Bouw dus wat foutafhandeling in zodat je het kunt controleren
Klopt. Er zit een fout in de query. Er mist AND.
Het werkt nu, het lag waarscijnlijk aan een foute query
@Santhe, ik had geen zin om te scrollen :)
@Jan, heb je nu ook foutafhandeling toegevoegd?
@Jan, heb je nu ook foutafhandeling toegevoegd?



