Tina: Login-Formular funktioniert nicht

Hallo zusammen,
ich sitze seit 2 Tagen an einem Script, dass auf dem bisherigen Webserver einwandfrei funktioniert hat (Anbieterwechsel), aber nun nicht mehr - die config.php funktioniert. Das anmelden.php-Script verweist auf folgendes login-Script, welches normalerweise immer das user.php-Script aufgerufen hat. Jetzt zeigt der Header aber immer 'anmelden.php?Fehler' (siehe Quelltext) - wo ist das Problem? Die Tabellen für die Datenbank habe ich importiert und nicht verändert???? Bin für jede Hilfe dankbar!!!

<?php  
// Session starten  
include("config.php");  
session_start ();  
$username = $_POST["name"];  
$passwort = $_POST["pass"];  
$sql = "SELECT ".  
    "id, username, nachname, Vorname ".  
  "FROM ".  
    "benutzerdaten ".  
  "WHERE ".  
    "(username = '".mysql_real_escape_string(trim($_POST["name"]))."') AND ".  
    "(passwort = '".mysql_real_escape_string(md5(trim($_POST["pass"])))."')";  
$result = mysql_query ($sql) or die(mysql_error());  
 $result = mysql_query($sql);  
    if (mysql_num_rows ($result) > 0)  
{  
  // Benutzerdaten in ein Array auslesen.  
  $data = mysql_fetch_array ($result);  
  // Sessionvariablen erstellen und registrieren  
  $_SESSION["user_id"] = $data["id"];  
  $_SESSION["user_username"] = $data["username"];  
  $_SESSION["user_nachname"] = $data["nachname"];  
  $_SESSION["user_vorname"] = $data["vorname"];  
  header ("Location: user.php");  
}  
else  
{  
  header ("Location: anmelden.php?Fehler");  
}  
?>
  1. Mahlzeit Tina,

    Jetzt zeigt der Header aber immer 'anmelden.php?Fehler' (siehe Quelltext)

    Was meinst Du mit "der Header zeigt [...]"?

    header() erwartet eine vollständige URL ...

    $username = $_POST["name"];
    $passwort = $_POST["pass"];

    Wozu dieses unsinnige Umkopieren - vor allem, wenn Du weder $username noch $passwort im weiteren Verlauf je wieder verwendest?

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:& n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  2. Jetzt zeigt der Header aber immer 'anmelden.php?Fehler' (siehe Quelltext) - wo ist das Problem?

    Augenscheinlich sind nicht mehr als null Ergebnisse aus der Anfrage zurückgekommen :)

    Das kann mehrere Gründe haben. Fürs debuggen geh doch einfach schrittweise vom einfachsten Fall bis hin zu Deinem Fall: lass das WHERE weg und check mittels var_dump($result); mal das Ergebnis. Wenn das leer ist, ist Deine Datenbank wohl nicht erreichbar. Wenn das voll ist, gabs vielleicht einen Fehler beim Übermitteln der Daten aus dem Formular. var_dump($_POST) könnte die darüber aufschluss geben.

    Liebe Grüße,
    LSpreee

  3. Moin!

    include("config.php");

    Ich vermute, Du hast keine Datenbankverbindung.
    Ich vermute, Du überträgst die Daten per GET (nach dem Du wegen anfänglicher Probleme, die aber an der Konfiguration lagen, am HTML-Formular herumgespielt hast.)

    Ich kann nur vermuten. Du kannst debuggen, also Dir Schritt für Schritt die Inhalte der Variablen ausgeben lassen. Ein

    print "<pre>$sql</pre>"; könnte Dir die Augen öffnen.

    Und noch etwas:

    $sql = "SELECT
        id, username, nachname, vorname
      FROM
        benutzerdaten
      WHERE
        username = '".mysql_real_escape_string(trim($_POST["name"]))."'
        AND
        passwort = '".mysql_real_escape_string(md5(trim($_POST["pass"])))."'";

    Käme dabei wohl etwas besser.

    Noch etwas: Passwörter nur mit MD5 zu hashen ist unsicher. Nimm Pfeffer und Salz dazu, sonst kann "jeder" der in den Besitz der Datenbank kommt die Passwörter in recht kurzer Zeit "errechnen".

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix