Loginangaben überprüfen, klappt nicht
Thomy
- php
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&".SID."">Repeat</a>\n";
echo " <a href="index.php?section=admin&action=logout&".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
Ahoi Thomy,
wie sehen denn die daten in der DB aus?
MfG
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
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
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