MySQLi foutmelding waar ik niks van snap
---
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\photo\yapa_h07\yapa_login.php on line 39
---
Het staat in het volgende stukje script uit yapa_login.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
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
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
<?php
if(isset($_POST['verzonden'])){
// initialisatie
$member_email = ''; // het ingevulde e-mailadres
$member_wachtwoord = ''; // het ingevulde wachtwoord
$fout_bericht = ''; // leeg foutbericht initialiseren
$is_logged_in = false; // flag die aangeeft of iemand is ingelogd
// overdreven controle op ingevoerde velden, je kunt niet
// voorzichtig genoeg zijn bij het inloggen van users
if (isset($_POST['email']) && !empty($_POST['email'])){
$member_email = safe_text($_POST['email']);
}
if (isset($_POST['wachtwoord']) && !empty($_POST['wachtwoord'])){
$member_wachtwoord = safe_password($_POST['wachtwoord']);
}
if(empty($member_email) || empty($member_wachtwoord)){
// als geen e-mail of wachtwoord zijn ingevuld, de pagina
// opnieuw tonen. Zelf: eventueel nette foutafhandeling schrijven
$fout_bericht = "Geen correct e-mailadres en/of wachtwoord ingevuld!";
}
else{
// naam en wachtwoord zijn toegekend, controleren of ze
// in de database aanwezig zijn
$db = safe_db_open($host, $gebruiker, $wachtwoord, $database);
$query = "SELECT *, date_format(datum, '%d-%m-%Y') AS member_since
FROM yapa_members WHERE email='$member_email'
AND wachtwoord='$member_wachtwoord' AND actief ='1'";
$result = safe_query($db, $query);
if (!mysqli_num_rows($result) > 0){
// geen record gevonden
$fout_bericht .= "Foutieve gebruikersnaam of wachtwoord,<br />";
$fout_bericht .= "of uw account is nog niet geactiveerd!<br />";
}
else{
// wel record gevonden, flag zetten
$is_logged_in = true;
}
}
if ($fout_bericht){
echo $fout_bericht;
echo "<a href=\"yapa_index.php\">Terug naar de homepage</a>";
exit;
}
if ($is_logged_in){
// sessievariabelen initialiseren
while($record = mysqli_fetch_array($result)){
$_SESSION['username'] = $record['naam'];
$_SESSION['email'] = $record['email'];
$_SESSION['member_since'] = $record['member_since'];
$_SESSION['uploader_id'] = $record['id'];
}
// einde inloggen, sessie gevuld, doorsturen naar
// de pagina waar de gebruiker vandaan kwam of de homepage.
$redirect = "Location: " . $_POST['url'];
header($redirect);
}
}
else{
// inlogformulier laten zien, maar tevens controleren of een redirect-URL is meegeven op de adresregel.
// zo ja, dit verwerken in het formulier en de gebruiker doorsturen naar de pagina waar hij vandaan kwam
// voorafgaand aan het inloggen
if(isset($_GET['url'])){
$url = urldecode($_GET['url']);
}
else{
$url = "yapa_index.php";
}
?>
if(isset($_POST['verzonden'])){
// initialisatie
$member_email = ''; // het ingevulde e-mailadres
$member_wachtwoord = ''; // het ingevulde wachtwoord
$fout_bericht = ''; // leeg foutbericht initialiseren
$is_logged_in = false; // flag die aangeeft of iemand is ingelogd
// overdreven controle op ingevoerde velden, je kunt niet
// voorzichtig genoeg zijn bij het inloggen van users
if (isset($_POST['email']) && !empty($_POST['email'])){
$member_email = safe_text($_POST['email']);
}
if (isset($_POST['wachtwoord']) && !empty($_POST['wachtwoord'])){
$member_wachtwoord = safe_password($_POST['wachtwoord']);
}
if(empty($member_email) || empty($member_wachtwoord)){
// als geen e-mail of wachtwoord zijn ingevuld, de pagina
// opnieuw tonen. Zelf: eventueel nette foutafhandeling schrijven
$fout_bericht = "Geen correct e-mailadres en/of wachtwoord ingevuld!";
}
else{
// naam en wachtwoord zijn toegekend, controleren of ze
// in de database aanwezig zijn
$db = safe_db_open($host, $gebruiker, $wachtwoord, $database);
$query = "SELECT *, date_format(datum, '%d-%m-%Y') AS member_since
FROM yapa_members WHERE email='$member_email'
AND wachtwoord='$member_wachtwoord' AND actief ='1'";
$result = safe_query($db, $query);
if (!mysqli_num_rows($result) > 0){
// geen record gevonden
$fout_bericht .= "Foutieve gebruikersnaam of wachtwoord,<br />";
$fout_bericht .= "of uw account is nog niet geactiveerd!<br />";
}
else{
// wel record gevonden, flag zetten
$is_logged_in = true;
}
}
if ($fout_bericht){
echo $fout_bericht;
echo "<a href=\"yapa_index.php\">Terug naar de homepage</a>";
exit;
}
if ($is_logged_in){
// sessievariabelen initialiseren
while($record = mysqli_fetch_array($result)){
$_SESSION['username'] = $record['naam'];
$_SESSION['email'] = $record['email'];
$_SESSION['member_since'] = $record['member_since'];
$_SESSION['uploader_id'] = $record['id'];
}
// einde inloggen, sessie gevuld, doorsturen naar
// de pagina waar de gebruiker vandaan kwam of de homepage.
$redirect = "Location: " . $_POST['url'];
header($redirect);
}
}
else{
// inlogformulier laten zien, maar tevens controleren of een redirect-URL is meegeven op de adresregel.
// zo ja, dit verwerken in het formulier en de gebruiker doorsturen naar de pagina waar hij vandaan kwam
// voorafgaand aan het inloggen
if(isset($_GET['url'])){
$url = urldecode($_GET['url']);
}
else{
$url = "yapa_index.php";
}
?>
Gewijzigd op 01/01/1970 01:00:00 door JaccoZ
maar nu weet ik nog niet echt wat ik anders moet doen.
vb. please
Lees even die shit op php.net door.
om het script te highlighten.
Edit
Nou, dan niet de PHPtags te ignoren.
En gebruik volgende keer als je code post, aub alleen de bruikbare code, en gebruik tags en Edit
Nou, dan niet de PHPtags te ignoren.
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
Hoe moet hij dan worden zodat hij wel goed is?
Kijk bijvoorbeeld eens bij het voorbeeld (procedural style)
Ksnap er geen biet van
if (!mysqli_num_rows($result) > 0)
het zou zo moeten:
if (!(mysqli_num_rows($result) > 0))
of zo:
if (mysqli_num_rows($result) == 0))
Jan:
Je fout zit hier:
if (!mysqli_num_rows($result) > 0)
het zou zo moeten:
if (!(mysqli_num_rows($result) > 0))
of zo:
if (mysqli_num_rows($result) == 0))
if (!mysqli_num_rows($result) > 0)
het zou zo moeten:
if (!(mysqli_num_rows($result) > 0))
of zo:
if (mysqli_num_rows($result) == 0))
geen verbetering!
Je hebt in je safe_query en safe_db nog mysql_... staan zonder 'i' . Kijk daar maar es naar, dat moet exact gelijk zijn
Jan:
Je fout zit hier:
if (!mysqli_num_rows($result) > 0)
het zou zo moeten:
if (!(mysqli_num_rows($result) > 0))
of zo:
if (mysqli_num_rows($result) == 0))
if (!mysqli_num_rows($result) > 0)
het zou zo moeten:
if (!(mysqli_num_rows($result) > 0))
of zo:
if (mysqli_num_rows($result) == 0))
if (mysqli_num_rows($result) == 0))
mopet zijn
if(mysqli_num_rows($result) == 0)
Gewijzigd op 01/01/1970 01:00:00 door Jelle -