Thomy: Loginangaben überprüfen, klappt nicht

Hi,
ich habe immer noch das Problem mit dem Loginsystem. Ich hab jetzt auch den Fehler gefunden, warum ich mich nicht einloggen kann. Es liegt an dem Scriptteil und function, bei dem die Logindaten von $_Post und der MySql_DB vergliechen und kontrolliert werden.
Aber ich weiß nicht wirklich, was falsch ist und warum es nicht funktioniert. (Die Tabelle in der DB mit den richtigen Spaltennamen gibt es). Ich komme einfach nicht weiter =(

Der Scriptausschnit von admin.php
if(isset($_GET['action']) AND ("logout" == $_GET['action'])) {
        session_destroy();
        echo "<p>\n";
        echo "    Sie haben sich ausgeloggt. Um wieder in den Adminbereich\n";
        echo "    zu kommen müssen sie sich wieder Einloggen\n";
        echo "</p>\n";
    } else {
        if(isset($_POST['UserID']) AND '0' == $_POST['UserID']) {
            // Wenn kein Benutzer ausgewählt wurde
            echo "<p>\n";
            echo "    Bitte wählen sie einen Benutzernamen aus.\n";
            echo "</p>\n";
        } else {
            //überprüfen der Logindaten
            if(isset($_POST['UserID'], $_POST['Password']) AND
               login_right(addslashes($_POST['UserID']),
                           addslashes($_POST['Password']))) {
                $_SESSION['ID'] = $_POST['UserID'];
            }
            if(isset($_SESSION['ID'])) {
               //Logindaten richtig
                echo "<p>\n";
                echo "    Willkommen im Adminbereich <br />\n";
                echo "    <a href="index.php?section=admin&amp;".SID."">Repeat</a>\n";
                echo "    <a href="index.php?section=admin&amp;action=logout&amp;".SID."">Ausloggen</a>\n";
                echo "</p>\n";
            } else {
                if(isset($_POST['submit'])) {
                     // Der Submit-Button wurde gedrückt
                     // aber der Login ist falsch. Deshalb
                     //  eine Fehlermeldung
                     echo "<p class="error">\n";
                     echo "    Ungültiges Password.\n";
                     echo "</p>\n";
                }
                //nochmals das Formular zum einloggen.
                echo "<form action=.....

Die function.php (funciton login_rigt())
//Logindaten überprüfen
function login_right ($id, $pass)
{
 $sql = "SELECT
    COUNT(*) as Anzahl
   FROM
    users
   WHERE
    ID= '".$id."' AND
    Password = '".$pass."';";
 $result = mysql_query($sql) OR die(mysql_error());
 $row = mysql_fetch_assoc($result);
 return $row

}

Gibt ein anders (einfaches) Script zum überprüfen der Logindaten oder wo muss ich was verändern?

Danke schon mal.

#Thomy

  1. Ahoi Thomy,

    wie sehen denn die daten in der DB aus?

    MfG

    --
    Alle Angaben wie immer ohne Gewähr
    PPPS: ich trinke gerne ab und an mal eine tote Tante.
  2. hi,

    ich habe immer noch das Problem mit dem Loginsystem.

    ja, und dein erster thread dazu ist nicht mal einen tag alt.

    bitte lies </faq/#Q-11>, und unterlasse solche doppelpostings.

    wenn du weitere ergänzungen bzgl. neuer erkenntnisse hast, bringe diese bitte als ergänzung im alten thread an.
    dabei kannst du dort gerne den titel innerhalb des threads ändern, damit man leichter darauf aufmerksam wird.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Moin,

      ja, und dein erster thread dazu ist nicht mal einen tag alt.

      Danke für den Hinweis. Ich habe den Thread gesperrt. Weitere Postings bitte unter dem o.g. link.

      Viele Grüße

      Swen Wacker

  3. Hallo,

    hm, das Erste, was mir jetzt so auffällt, ist, daß Deine Funktion login_right() doch eigentlich einen Boolschen Wert, also true oder false, zurückgeben sollte.
    Stattdessen gibt sie einen Array ($row) zurück.

    Ich würde login_right() in der letzten Zeile in diese Richtung abändern:
    return ($row['Anzahl'] > 0);

    Und sonst - bekommst Du denn Fehlermeldungen? Hast Du es schon mal mit Testausgaben versucht - immer eine gute Methode, um den Verlauf des Skriptes zu analysieren.

    Ciao,
    Andreas