Wie kan mij helpen met het oplossen van de volgende foutmelding:

---
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:


<?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";
}
?>

Jan Koehoorn schreef op 08.08.2006 20:08
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))
mopet zijn
if(mysqli_num_rows($result) == 0)

Reageren