Formularproblem mit IE

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formularproblem mit IE

    Hi Leutz, da bin ich mal wieder.
    Mein Loginscript funzt schon super, sprich man kann sich Registrieren, einloggen und bekommt ein neues Passwort per E-Mail, wenn man sein altes vergessen hat.

    Zum programmieren lasse ich einen kleinen Webserver lokal auf meinem Rechner laufen. Zum "Testen unter realen Bedingungen" hab ich das gesamte Script auf meinen Webspace geladen. (funpic.de) (Anfangs gab es schwierigkeiten, da der "echte" Webserver - im Gegensatz zu meinem Lokalen Webserver - case sensitive ist.
    Daraus schließe ich, dass es sich höchstwahrscheinlich um einen Linux Server handelt.)

    Mit mozilla habe ich dann alles fleißig getestet und es hat auch alles soweit funktioniert. Beim IE sah es leider etwas anders aus. Registrieren und Passwortreminder funktionieren tadellos, bloß der Login funktioniert nicht. Nach dem drücken des Submit-Buttons werden die Eingabefelder geleert und es tut sich nichts.
    Wie ich es als C++ programmierer gewöhnt bin, beginne ich also mit der Fehlereingrenzung. Ich habe dabei festgestellt, dass das loginscript auf meinem Lokalen Webserver mit IE läuft, auf dem funpic Webserver allerdings nicht. Mit Mozilla funktioniert es lustigerweise sogar auf beiden Servern. Es muss also etwas mit dem Server zu tun haben.

    Ich habe die Scripts direkt miteinander verglichen und habe den Fehler einfach nicht gefunden, vielleicht weiß da jemand von euch weiter!?

    Hier der Quellcode vom Login script:

    formular.php
    PHP-Code:
    <?php session_start (); ?>
    <html> 
    ...
    <body> 
    <u>Login</u><br><br>
    <?php 
    if (isset ($_REQUEST["fehler"])) 

      echo 
    "Die Zugangsdaten waren ungültig."

    ?> 
    <form action="login.php" method="post"> 
      Name: <input type="text" name="name" size="20"><br> 
      Kennwort: <input type="password" name="pwd" size="20"><br> 
      <input type="submit" value="Login"> 
    </form> 
    ...
    </body> 
    </html>
    login.php
    PHP-Code:
    <?php 
    include("config.php");

    // Session starten
    session_start ();

    // Datenbankverbindung aufbauen 
    $connectionid mysql_connect ($dbServer$dbadmin$dbpassword); 
    if (!
    mysql_select_db ($dbDatabase$connectionid)) 

      die (
    "Keine Verbindung zur Datenbank"); 


    $sql "SELECT "
        
    "Id, Nickname, email "
      
    "FROM "
        
    $dbTable
      
    " WHERE "
        
    "(Nickname like '".$_REQUEST["name"]."') AND "
        
    "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"
    $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_nickname"] = $data["Nickname"]; 
      
    $_SESSION["user_email"] = $data["email"]; 

      
    header ("Location: intern.php"); //Auf diese Seite soll man normalerweise weitergeleitet werden., wenn der Login erfolgreich war.

    else 

      
    header ("Location: lformular.php?fehler=1"); 


    include(
    "links_tmpl.php")
    ?>
    Zuletzt geändert von ThePro; 19.03.2006, 06:48.

  • #2
    Hat sich erledigt. Ich bin eigentlich nur durch zufall auf die Lösung gekommen.
    Ich habe vorher etwas mit cookies herumexperimentiert.
    Da ich cookies vielleicht später noch verwenden möchte, habe ich die entsprechenden zeilen erstmal auskommentiert, aber seht selbst:

    Der Fehler lag in der Login.php
    PHP-Code:
    ...
    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_nickname"] = $data["Nickname"]; 
      
    $_SESSION["user_email"] = $data["email"]; 

     >>> 
    HIER IST DER ÜBELTÄTER <<<
      
    /*Cookies setzen
      $Gueltigkeit = time()+86400;
      setcookie("user_nick", $_REQUEST["name"], $Gueltigkeit);
      setcookie("user_pw", md5($_REQUEST["pwd"]), $Gueltigkeit); 
      */

      
    header ("Location: intern.php"); 

    ...
    ?> 
    Aus irgendeinem Grund muss das die header funktion beeinträchtigt haben, ich habe also den kompletten kommentar gelöscht.
    Bleibt nur noch die Frage, warum es trotzdem bei Mozilla funktioniert hat!?

    Kommentar

    Lädt...
    X