Problem beim Loggin

02/20/2013 17:27 BattleTale#1
Hallo,

ich habe ein Problem, undzwar kann ich mich nicht einloggen.

Mein Code ist wie folgt:
PHP Code:
<?php
if(isset($_POST['submit_login'])){
    
    
$log_user = ($_POST['log_user']);
    
$log_pass = ($_POST['log_pass']);
    
    
$login mysql_query("SELECT id FROM admin WHERE name='$log_user' AND passwort='$log_pass'"); 
    
    if(
mysql_num_rows($login) > 0){
    
            
$row mysql_fetch_object($login);
            
            
$_SESSION['login'] = $row->id;
            
$_SESSION['user'] = $log_user;
            
            
header("Location: admin.php");
    }else{
        echo (
' Logindaten fehlerhaft ...');
    }
}

if(isset(
$_SESSION['login'])){
 echo 
"Eingeloggt";
}else{ 
?>

<form action="" method="post">
    <fieldset>
    <legend>Login</legend>
        <label>Name</label>
        <input type="text" name="log_user"><br> 

        <label>Passwort</label>
        <input type="text" name="log_pass">
        <br><br>

        <input type="submit" value="Login" name="submit_login" class="button">
    </fieldset>
</form>
<?php 
    
}
?>
Wenn ich mich versuche einzuloggen, bekomme ich immer folgende Fehlermeldung:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\richie\admin.php on line 20
Logindaten fehlerhaft ...


Weiß allerdings grade nicht woran es liegt.
Hoffe einer kann mir helfen.
02/20/2013 17:36 Mikesch01#2
Das liegt daran, dass er keine Daten hierzu finden kann oder die Query-Syntax falsch ist.

Wie sieht denn die Struktur der Tabelle admin aus?
02/20/2013 17:42 tayfe#3
Ich würde mal sagen, dein Fehler liegt in Zeile 7. Du hast dort vergessen, die Variablen innerhalb der SQL-Abfrage in Anführungsstriche und einen Punkt zu setzen, also ". und ." . Bei deiner Version sucht er jetzt wort wörtlich nach dem Admin "$log_user" mit dem Passwort "$log_pass".
So sollte es richtig aussehen:

PHP Code:
$login mysql_query("SELECT id FROM admin WHERE name='".$log_user."' AND passwort='".$log_pass."'"); 
So lange nicht noch in der Tabelle ein Fehler vorhanden sein sollte, sollte es jetzt eigentlich funktionieren.
02/20/2013 17:43 BattleTale#4
id - INT - AI
name - varchar(255)
password - varchar(255)
mail - varchar(255)
02/20/2013 17:46 tayfe#5
Quote:
Originally Posted by Schmizi' View Post
id - INT - AI
name - varchar(255)
password - varchar(255)
mail - varchar(255)
Guck mal in deine Abfrage, da hast du "password" mit einem "t" geschrieben. Ein sehr beliebter Fehler bei deutschen Programmierern ;)
02/20/2013 17:49 BattleTale#6
Quote:
Originally Posted by tayfe View Post
Guck mal in deine Abfrage, da hast du "password" mit einem "t" geschrieben. Ein sehr beliebter Fehler bei deutschen Programmierern ;)
Danke, das ist mir schon häufiger passiert :)
02/20/2013 17:53 tayfe#7
Gerne :) Funktioniert es denn dann auch jetzt?
02/20/2013 17:56 BattleTale#8
Quote:
Originally Posted by tayfe View Post
Gerne :) Funktioniert es denn dann auch jetzt?
sicher :)
02/20/2013 18:18 Fehlgeschlagen#9
PHP Code:
$log_user mysql_escape_string($_POST['log_user']);
$log_pass mysql_escape_string($_POST['log_pass']); 
Sei doch bitte so nett ja ^^
02/22/2013 18:17 BattleTale#10
Quote:
Originally Posted by Fehlgeschlagen View Post
PHP Code:
$log_user mysql_escape_string($_POST['log_user']);
$log_pass mysql_escape_string($_POST['log_pass']); 
Sei doch bitte so nett ja ^^
ist schon lange drin, hatte es nur beim Beispiel raus genommen :)