hoi php=experts (ik zeg het alvast, ik ben nog niet zo lang met php bezig)

ik ben bezig met een inlogsysteempje maar krijg telkens de volgende foutmelding:

Notice: Undefined variable: resultgebruiker in /usr/local/www/data/GravityGames/inloggen_achter.php on line 12 Notice: Undefined variable: resultwachtwoord in /usr/local/www/data/GravityGames/inloggen_achter.php on line 13

dit is inloggen_achter.php:

<?php 
session_start(); 
$gebruiker = $_POST["gebruikersnaam"]; 
$wachtwoord = $_POST["wachtwoord"];

if(!empty($_POST)){ 
	include("db.inc"); 
	mysql_connect("services.codeyard.net",$db_user,$db_pass);
	mysql_select_db("GravityGames");
	$query = mysql_query("SELECT * FROM gebruiker WHERE gebruikersnaam='$gebruiker' AND wachtwoord='$wachtwoord'") or die(mysql_error());  
	while ($result = mysql_fetch_array($query)){
		$resultgebruiker = $result['gebruikersnaam'];
		$resultwachtwoord = $result['wachtwoord'];
	}
	//$result = mysql_query($query); oude code van bram
}

//code om te controleren of de combinatie goed is met wat in de database staat
$i = '0';
if($gebruiker == $resultgebruiker){
	$i += '1';
}
if($wachtwoord == $resultwachtwoord){
	$i += '2';
}

if($i == 3){ //wanneer alles goed is
	$_SESSION['gebruiker'] = $gebruiker; 
	$_SESSION['wachtwoord'] = $wachtwoord;
	echo "u bent succesvol ingelogd <a href='aangemeld.php'>klik hier om door te gaan naar de volgende pagina</a>";
}

if(isset($_SESSION['gebruiker'])){//goede login word je doorgestuurd
//	header("Location: aangemeld.php"); 
}
if(!(isset($_SESSION['gebruiker']))){//hier de code wanneer er niet goed is aangemeld
$text = "";
	if($i == 1){
		$text .= "Uw gebruikersnaam is fout!<br />";
	}
	if($i == 2){
		$text .= "Uw wachtwoord is fout!<br />";
	}
}
 
//elseif { //foute login
//	$text = "Je hebt geen goede combinatie van gebruikersnaam en wachtwoord gebruikt! <a href="inloggen.php">Probeer Nogmaals!</a>"; 
//	die("$text"); 
//} 
//else{ 
//	header("Location: inloggen.php"); 
//}
?>
</body>
<body bgcolor="DDDDDD">
variabelen buiten quotes..

maak er eens dit van:
<?php
if(!empty($_POST)){
include('db.inc');
mysql_connect('services.codeyard.net',$db_user,$db_pass);
mysql_select_db('GravityGames');
$query = mysql_query("SELECT * FROM gebruiker WHERE gebruikersnaam='".$gebruiker."' AND wachtwoord='".$wachtwoord."';") or die(mysql_error());
while ($result = mysql_fetch_array($query)){
$resultgebruiker = $result['gebruikersnaam'];
$resultwachtwoord = $result['wachtwoord'];
}
//$result = mysql_query($query); oude code van bram
}
?>
het ligt niet aan de variabelen in regel 3 en 4 maar in 12 en 13($resultgebruiker en $resultwachtwoord) volgens mij.
en hier is dan toch niets mee veranderd?

[edit]
$resultgebruiker en $resultwachtwoord worden hier ook voor het eerst gebruikt/aangemaakt

deze moet nog gedefinieerd worden maar ik weet dus niet hoe
[/edit]
Je zou eens kunnen kijken of je ze bovenaan kan definiƫren door te zetten:
<?php
$resultgebruiker = null;
$resultwachtwoord = null;
?>

Mocht dat niet werken, moet je eens naar de functie isset() kijken.
@sander
ik had het ook over de querie quotes(regel 6)


 $query = mysql_query("
SELECT * 
FROM gebruiker 
WHERE gebruikersnaam='".$gebruiker."' 
AND wachtwoord='".$wachtwoord."';
") or die(mysql_error());


die 3 en 4 heb ik gewoon extra gedaan die maken inderdaad niet veel uit..
@Marvin
Inplaats van SELECT * kan je beter 1 veld opgeven. Dit is veel sneller.
Dus SELECT gebruikersnaam FROM gebruiker ...
Kasper schreef op 18.04.2007 17:59
Je zou eens kunnen kijken of je ze bovenaan kan definiƫren door te zetten:
<?php
$resultgebruiker = null;
$resultwachtwoord = null;
?>

Mocht dat niet werken, moet je eens naar de functie isset() kijken.


dit werkt inderdaad

Bedankt!
UNDEFINED VARIABLE betekend dat het een niet aangemaakte variabele is.. je zult dus eerst moeten kijken of het wel geset is: [php]isset[/php] ;)
Regel 12 en 13 zouden goed moeten zijn zo te zien.
Regel 3, 4, 20 en 23 zouden notices moeten geven als $_POST leeg is.

Reageren