PHP/MySQL Login System - Finde den User nicht in der DB

C4rter

Mitglied
Ich hab eine Datenbank mit dem Table:
PHP:
CREATE TABLE systemAdmin
(
SystemAdminID varchar (15) PRIMARY KEY, 
SystemAdminLogin varchar (30) NOT NULL default '', 
SystemAdminPassword varchar (20) NOT NULL default '', 
SessionID varchar (32), EMail varchar (50) NOT NULL default '', 
UNIQUE KEY PortalLogin (SystemAdminLogin), 
UNIQUE KEY EMail (EMail) );

Dort drin habe ich den User angelegt:
ID Name Pass Session Email
111 Systemadmin password NULL 111@111.de

Ich habe dazu noch die login.php:
PHP:
<? 
session_start(); 
include 'sessionhelpers.inc.php'; 
if (isset($_POST['login'])) 
{   
    connect();
    $userid=check_user($_POST['username'], $_POST['userpass']);
    echo $userid;
    if ($userid!=false) 
        login($userid); 
    else 
        echo 'Ihre Anmeldedaten waren nicht korrekt!'; 
} 
if (!logged_in())
    echo '<form method="post" action="login.php"> 
        <label>Benutzername:</label><input name="username" type="text"><br> 
        <label>Passwort: </label><input name="userpass" type="password" id="userpass"><br> 
        <input name="login" type="submit" id="login" value="Einloggen"> 
    </form>'; 
else 
    echo '<a href="logout.php">Ausloggen</a>'; 
echo '<p /><a href="logged_in.php">Check</a>'; 
?>

und die sessionhelpers.inc.php. In der prüfe ich hiermit ob der User in der Db steht:
PHP:
function check_user($name, $pass) 
{
    //WHERE SystemAdminLogin='".$name."' AND SystemAdminPassword=MD5('".$pass."') 
    $sql="SELECT SystemAdminID 
    FROM systemadmin 
    WHERE SystemAdminLogin='".$name."' AND SystemAdminPassword='".$pass."' 
    LIMIT 1";
    $result= mysql_query($sql) or die(mysql_error());
    if ( mysql_num_rows($result)==1)
    { 
        $user=mysql_fetch_assoc($result);
        return $user['UserId']; 
    } 
    else 
        return false; 
}

Der DB Connect erfolgt hiermit:
PHP:
function connect() 
{ 
    $con= mysql_connect('localhost','root','') or die(mysql_error()); 
    mysql_select_db('onbackup',$con) or die(mysql_error()); 
}

Jetzt das Problem: Ich finde den User in der DB nicht. Weder wenn ich Name und password hardcoded in den Code schreibe noch wen ich die mir aus der Form hole. $result ist immer leer.
Den User über PHP in der DB anlegen geht allerdings.
Was mache ich denn da falsch, PHPMyAdmin gibt mir für das Select Statement auch die ID des Users aus. Verwende XAMPP
 
Zuletzt bearbeitet:
Hi,

wenn Du die Spalte 'SystemAdminID' selektierst, steht in Deinem Array, das mysql_fetch_assoc() liefert auch $row['SystemAdminID'] und nicht $row['UserId']. Wo sollte das auch herkommen...

LG
 
Ich weis noch nicht genau was der Fehler ist aber da ist eine Zeile die mich irgendwie stört:
PHP:
return $user['UserId'];
Das holst du aus einem Result, dessen Query "SELECT SystemAdminID ..." ist.
Meiner Meinung nach dürfte er dir NULL zurückgeben.

Wobei die Bedingung in login.php:
PHP:
if ($userid!=false)
durch das einfache vergleichen falsch wird.
 
Zuletzt bearbeitet:
Hi,

wenn Du die Spalte 'SystemAdminID' selektierst, steht in Deinem Array, das mysql_fetch_assoc() liefert auch $row['SystemAdminID'] und nicht $row['UserId']. Wo sollte das auch herkommen...

LG

Args, der Wald und die Bäume :eek:
VIELEN DANK :)

Ich weis noch nicht genau was der Fehler ist aber da ist eine Zeile die mich irgendwie stört:
PHP:
return $user['UserId'];
Das holst du aus einem Result, dessen Query "SELECT SystemAdminID ..." ist.
Meiner Meinung nach dürfte er dir NULL zurückgeben.

Jop, genau da liegt der Fehler, Dir auch vielen Dank :)
 
Zurück