MySQL Error in meinem PHP Script

FlorianR

Erfahrenes Mitglied
Hallo Zusammen,

ich habe folgendes PHP Script:

PHP:
<?php
include('mysql.inc.php');

// Prüfen ob die Felder leer sind
if (empty($_POST["character"]) || empty($_POST["password"]))
		{
		header("Location: index.php?seite=loginfail");
		}
	else{
	
	$check = false;
	
	// Prüfen ob der Benutzer in der Datenbank steht
	function check($checkChar,$checkPass){
		$checkBenutzer = mysql_query("SELECT character, password FROM 'member' WHERE (character = '".$checkChar."') AND password = '".$checkPass."'");
		while ($benutzer = mysql_fetch_assoc($checkBenutzer)){
			$checkedBenutzer = $benutzer["character"];
			$checkedPassword = $benutzer["password"];
		}
		if($checkedBenutzer == $checkChar && $checkedPassword == $checkPass){
			return true;
		}else{
			return false;
		}
	}
	
	$check = check($_POST["character"],$_POST["password"]);
	
	if(check == true){
		// Session setzen
		
		// Weiterleiten
		
	}else{
		header("Location: index.php?seite=loginfail&wronguser");
	}
}
?>

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /www/htdocs/server/etc/bla/login.inc.php on line 16

Ich habe nun schon diverse "Schreibweisen" ausprobiert, aber irgendwie finde ich den Fehler nicht. Das Script soll irgendwann mal Benutzerdaten aufs Vorhandensein prüfen. Ich sollte dazu erwähnen, dass ich in Sachen PHP noch nicht sehr bewandert bin.

Danke im Voraus!

Florian

PS:

Wenn ihr irgendwelche Anmerkungen habt: Ich bin über alles Dankbar!
 
PHP:
$query = 'SELECT `character`, `password` FROM `member` WHERE `character` = "' .mysql_real_escape_string( $checkChar ). '" AND `password` = "' .mysql_real_escape_string( $checkPass ). '"';
$checkBenutzer = mysql_query( $query );
Versuch das mal.
 
Setze nach dem Query mal ein "echo mysql_error();" ein, dann erfährst du warum dein Query nicht funktioniert. Teste auch erstmal über phpmyadmin (o.Ä) ob dein Query mit vorgegebenen Werten überhaupt funktioniert.
 
Loomes dein Beitrag hat mir anscheinend geholfen.
Was genau macht "mysql_real_escape_string"?
 
Mit mysql_real_escape_string werden Zeichen in einem String maskiert.
Das hatte aber nichts mit deinem Problem zu tun, das poste ich nur so gratis mit dazu :)

Du hast den Tabellenname in single quotes gepackt, was dir bei Verwendung von mysql_error ( siehe hubbls Post ) einen Fehler wie:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''member'
ausgegeben hätte.
 
Zurück