Login Bereich erstellen

ersetze mal die beiden Zeilen
PHP:
    $numrows = mysql_num_rows($result);
    
if ($numrows!=0)

mit
PHP:
if(mysql_num_rows($result) != 0)
 
Jap und gewöhne dir unbedingt das richtige einrücken vom SQL-Code an.
http://tut.php-q.net/mysql-einrueck.html
Sonst wird es a) unleserlich und b) kannst du das bei Problemen schlecht debuggen.

Setz deine PHP-Codes in php-tags (oben der Menupunkt php-Code einfügen). Erleichtert andren das lesen und Fehlersuchen. :)
 
warum klappt das denn nicht? das kanns doch nicht sein :(

PHP:
<?php

session_start();

$connect = mysql_connect ("localhost","xyz","xyz") or die ("kann nicht connecten to db");
	
mysql_select_db("db1002505-phplogin") or die ("kann db nicht finden");

$username = $_POST['username'];
$password = $_POST['password']; 

if($username&&$password)
{ 	
	$sql = ("SELECT * FROM users WHERE username='"  .  mysql_real_escape_string($username)  .  "' AND pw='"  .  mysql_real_escape_string($password));

if(mysql_num_rows($result) != 0)   
{
	while ($row = mysql_fetch_assoc($result))
	{
		$dbusername = $row['username'];
		$dbpassword = $row['password'];
	}
	
		if ($dbusername==$username&&$dbpassword==md5($password))
		{
		
		echo "Du bist eingeloggt! <a href='member.php'>Klicke hier um zum Memberbereich zu kommen</a>";
		$_SESSION['username']=$username;
			
		}
		else
			echo "Falsches Password!";
}
else
	die("Dieser Username existiert nicht!");
	
}
else
	die("Bitte gib einen Username und ein Password ein!");

?>


der fehler bleibt:

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /data/multiserv/users/442745/projects/1002505/www/login.php on line 16
Dieser Username existiert nicht!
 
Zuletzt bearbeitet:
Die Fehlermeldung besagt, dass die Resource bzw. die Rückgabe von [phpf]mysql_query[/phpf] ungültig ist!
Bei deinem Query fehlt ein Anführungszeichen, so ist es richtig:
PHP:
$sql = ("SELECT * FROM users WHERE username='"  .  mysql_real_escape_string($username)  .  "' AND pw='"  .  mysql_real_escape_string($password)."'");
Wenn ich dir einen Tipp geben darf: Ich würde das Query erstmal ausgeben und dann das in PHPMyAdmin testen (echo $sql;).


Danke ComFreek ich glaub ohne dich würde ich hier sterben :)
Vielen Dank! ;)

Was mir noch aufgefallen ist: Speicherst du das Passwort nicht verschlüsselt in der Datenbank?
 
doch steht mit pw5 in der datenbank

ich frag das pw auch hier mit md5 ab
PHP:
 if ($dbusername==$username&&$dbpassword==md5($password))



also an die anderen natürlich auch danke!!
aber ComFreek konnte mir mit seinem top fachwissen doch am besten helfen!
 
oooooohhh mann aber das geht immer noch nicht.... immer noch das gleiche in line 18 :( das gibts doch nicht... ich checks echt nicht... man warum klappt des escapen nicht...

PHP:
<?php

session_start();

$connect = mysql_connect ("localhost","xyz","xyz") or die ("kann nicht connecten to db");
	
mysql_select_db("db1002505-phplogin") or die ("kann db nicht finden");

$username = $_POST['username'];
$password = $_POST['password']; 

if($username&&$password)
{ 	
	$sql = ("SELECT * FROM users WHERE username='"  .  mysql_real_escape_string($username)  .  "' AND pw='"  .  mysql_real_escape_string($password)."'"); 

$result = mysql_query($sql); 

if(mysql_num_rows($result) != 0)   
{
	while ($row = mysql_fetch_assoc($result))
	{
		$dbusername = $row['username'];
		$dbpassword = $row['password'];
	}
	
		if ($dbusername==$username&&$dbpassword==md5($password))
		{
		
		echo "Du bist eingeloggt! <a href='member.php'>Klicke hier um zum Memberbereich zu kommen</a>";
		$_SESSION['username']=$username;
			
		}
		else
			echo "Falsches Password!";
}
else
	die("Dieser Username existiert nicht!");
	
}
else
	die("Bitte gib einen Username und ein Password ein!");

?>


das ist jetzt mein code:
und alles was ich mach ist egal... es kommt immer der fehler:


Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /data/multiserv/users/442745/projects/1002505/www/login.php on line 18
Dieser Username existiert nicht!
 
Probiere das mal aus und poste dann mal die Fehlermeldungen.
PHP:
<?php

session_start();

$connect = mysql_connect ("localhost","xyz","xyz") or die ("kann nicht connecten to db");
    
mysql_select_db("db1002505-phplogin") or die ("kann db nicht finden");

$username = $_POST['username'];
$password = $_POST['password']; 

if($username&&$password)
{     
$sql = ("SELECT
			* 
		FROM 
			users 
		WHERE 
			username='"  .  mysql_real_escape_string($username)  .  "' AND
			pw='"  .  mysql_real_escape_string($password)."'");
$result = mysql_query($sql); 
}
if (mysql_errno()) {		
	echo mysql_errno() . ": " . mysql_error(). "\n";
}
if (!$result) {
	die ('Etwas stimmte mit dem Query hier nicht: '.$db->error);
}
if(mysql_num_rows($result) != 0)   
{
    while ($row = mysql_fetch_assoc($result))
    {
        $dbusername = $row['username'];
        $dbpassword = $row['password'];
    }
    
        if ($dbusername==$username&&$dbpassword==md5($password))
        {
        
        echo "Du bist eingeloggt! <a href='member.php'>Klicke hier um zum Memberbereich zu kommen</a>";
        $_SESSION['username']=$username;
            
        }
        else
            echo "Falsches Password!";
}
else
    die("Dieser Username existiert nicht!");
    
}
else
    die("Bitte gib einen Username und ein Password ein!");

?>

edit: noch fix 2 von mir vergessene geschweifte Klammern eingefügt
 
Zuletzt bearbeitet:
danke an alle ich hab den fehler gefunden und zwar steht da im der variable $sql "pw" es musste aber "password" heißen :)

PHP:
 $sql = ("SELECT * FROM users WHERE username='"  .  mysql_real_escape_string($username)  .  "' AND pw='"  .  mysql_real_escape_string($password)."'");


jetzt ist die fehlermeldung weg, aber jetzt bringt er mir immer, dass der benutzername nicht existiert...

muss ich beim registrieren dann auch escapen?
 
Zuletzt bearbeitet:
Jetzt weisst du warum das Einrücken so wichtig ist. Dieses Fehlerabfangen von MySQL machst du am besten immer bei SQL-Abfragen usw.
Spart dir Zeit und Nerven ;)
 
Zurück