• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Gibt Fehlermeldung nicht aus

Zemke

New member
Hallo,

folgender Code kommt nach der Eingabe im Formular zum Log in. Das Problem ist, dass er, falls die Eingabe falsch ist, die Fehlermeldung (im Code zu sehen bei der If-Anweisung) nicht ausgibt, sondern nur eine Seite ohne Inhalt. Andersrum, falls die Eingabe richtig war, zeigt er das auch an (zu sehen bei else) - woran liegt das, dass er bei falscher Eingabe die Fehlermeldungen aus der If-Anweisung nicht ausgibt?

PHP:
$nickname = $_POST["nickname"];
$password = md5($_POST["password"]);

$result = mysql_query("SELECT * FROM testl WHERE Nickname='$nickname'");
$row = mysql_fetch_array($result);

    if ($row['Nickname'] != $nickname || $row['Password'] != $password)
    {
        echo "Logging in has failed, your input seems incorrect." . '<a href="login.php" target="main">Try again</a>'.
        exit;
    }
    else
    {
        $_SESSION["logged"] = $nickname;
        echo "Hi <b>$nickname</b>, welcome to the user panel!";
    }
 
versuche mal das:
PHP:
if ($row['Nickname'] != '$nickname' || $row['Password'] != '$password')
{
//...
}
 
Oh mein Gott, ich entschuldige mich für meine Unachtsamkeit! Ich habe den Code zwar oftmals durchgeschaut, trotzdem übersehen das bei der If-Anweisung dem echo nur das Semikolon am Ende fehlt.
 
Zuletzt bearbeitet:
versuche mal das:
PHP:
if ($row['Nickname'] != '$nickname' || $row['Password'] != '$password')
{
//...
}

Der Vorschlag ist extrem bekloppt und würde dazu führen dass sich nur noch ein user mit dem namen $nickname und dem Passwort $password einloggen können. Alles was in einfachen ' steht wird von PHP nicht interpretiert sondern genau so gelassen wie es ist. Und falls du schreiben wolltest: "$nickname" dann macht das genausowenig Sinn, ein String in einer Variable wird nicht zu mehr String wenn man "" außenrum packt.

@Zemke: Deine MySQL Query bietet übrigens schöne möglichkeiten zur SQL Injection. Daten vom User die in die Query kommen sollte man immer mit dieser Funktion absichern: http://de3.php.net/manual/de/function.mysql-real-escape-string.php
 
Zurück
Oben