Login-Probleme mit dem Internet Explorer

WebMarco

Mitglied
Guten Tag liebe Forum-Gemeinde,

für unseren Tauchverein habe ich seit längerem einen Mitgliederbereich eingerichtet. Jetzt bekomme ich immer öfter mitgeteilt, dass es mit dem Internet Explorer Probleme beim Login gibt. Ich habe es dann selbst mit dem "heiligen" Browser von Microsoft probiert und festgestellt, dass besonders mit älteren Versionen (die in großen Firmen, Behörden, etc. immer noch laufen, von wo natürlich auch Vereinsmitglieder in der Mittagspause aus versuchen, sich einzuloggen) tatsächlich ein Login nicht möglich ist. Wenn man seine Zugangsdaten eingibt und auf den Button "Login" klickt läd die Seite zwar neu, doch ist man weder eingeloggt, noch gibt es eine Fehlermeldung, noch wird man in den Mitgliederbereich weitergeleitet (wie auch, wenn man nicht eingeloggt wird).

Habt Ihr eine Ahnung, woran es liegen kann? Auf allen anderen Browsern funktioniert es einwandfrei!

login.php
PHP:
<?php

// Aufbau der Datenbankverbindung
// in der funktionen.inc.php sind die Informationen für die Datenbankverbindung enthalten
include( ''. $_SERVER['DOCUMENT_ROOT'] .'/include/funktionen.inc.php' );

// Session starten
session_start ();

$sql = "SELECT ".
    "id, nachname, vorname, admin ".
  "FROM ". 
    "benutzer ".
  "WHERE ".
    "(vorname like '".$_REQUEST["vorname"]."') AND ".
    "(nachname like '".$_REQUEST["nachname"]."') 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_nachname"] = $data["nachname"];
  $_SESSION["user_vorname"]  = $data["vorname"];
  $_SESSION["user_admin"]    = $data["admin"];
header ('Location: http://'. $_SERVER['SERVER_NAME'] .'/admin-startseite.html');
exit;
}
else
{
header ('Location: http://'. $_SERVER['SERVER_NAME']. '/admin.html?fehler=1');
}
?>

Login-Seite (Formular)
PHP:
<form name="form" action="" method="post">
<input name="action" type="hidden" />
<input name="id" type="hidden" />

<?php
if (isset ($_REQUEST["fehler"]))
  {
    echo ' <p class="fehlermeldung">Die Zugangsdaten waren ungültig.</p> ';
  }
?>
<br />
<div style="margin:0px auto; width:300px; padding:0px;">
  <div style="float:left; width:100px;"><b>Vorname:&nbsp;</b></div>
  <div style="float:left; width:188px;"><input type="text" name="vorname" /></div>
  <div style="clear:both;">&nbsp;</div>
  <div style="float:left; width:100px;"><b>Nachname:&nbsp;</b></div>
  <div style="float:left; width:188px;"><input type="text" name="nachname" /></div>
  <div style="clear:both;">&nbsp;</div>
  <div style="float:left; width:100px;"><b>Kennwort:&nbsp;</b></div>
  <div style="float:left; width:188px;"><input type="password" name="pwd" /></div>
  <div style="clear:both;">&nbsp;</div>
  <div style="float:left; width:100px;">&nbsp;</div>
  <div style="float:left; width:200px;"><input type="submit" value="Login" onclick="form.action='/include/login.php';" /></div>
  <div style="clear:both;">&nbsp;</div>
</div>

</form>
 
Pauschal vermutet hast du ein problem mit den onclick event auf dem Submit Button.

Am besten du hängst noch document. vor deine Selektion, damit du eine genaue Pfad angabe hast. Empfehlenswert, wäre wenn du deinem Formular (form) einen einzigartigen namen geben würdest anstatt es nur form zu nennen.
HTML:
<input type="submit" value="Login" onclick="document.form.action='/include/login.php';" />
 
Zuletzt bearbeitet:
Hallo F0rris,

vielen Dank für Deinen Tipp. Ich habe das document. ergänzt. Leider hat dies jedoch beim IE nicht weitergeholfen. Ich nutze das <form> für verschiedenste "Senden-Funktionen". Etwa Kontaktformular, oder für den Admin ein "Seite-Ändern-Button" auf jeder Seite. Wenn ich jetzt ein extra <form> für den Login nehme, habe ich eine <form> in <form> Strukur, die jedoch nicht valide ist.
 
Hi,

klar, ich hab mich etwas zu undeutlich ausgedrückt. Ich meinte es eigentlich so:

HTML:
<form name="form" action="" method="post">
aus name="form" wird name="myForm"
HTML:
<form name="myForm" action="" method="post">

Dann kannst du ganz ge*nüss*lich via javascript die Selektion mit document.myForm.action='blub.php' vornehmen.

Gibt es eigentlich einen speziellen Grund wieso du die action via javascript setzt?

Grüße
F0rris
 
Was wäre denn die Alternative zu action? Und welchen Unterschied macht es, wenn ich jetzt die gleiche <form> nutze, diese nur anders benenne?
 
wenn du die action im Form-Tag setzt, braucht deine Seite kein Javascript und es läuft auch auf dem IE6. Du aber sendest das Formular über Javascript und das geht bei einigen Browsern offensichtlich nicht.
 
Sorry, ich seh das Problem nicht.
Dein submit-butten macht doch genau das, er sendet das ganez Formular an den Server.
EIn Form-Tag mit einer action und einem submit-tag macht genau dasselbe. Er sendet auch das Form das den submit-tag beinhaltet an den Server. Wennd a mehrere Formulare sind.

HTML:
<form name="login" action="/include/login.php" method="post">
...
<input type="submit" name="submit" value="Ab die Post" />
</form>
...
<form name="sayYes" action="/include/seyYes.php" method="post">
...
<input type="submit" name="submit" value="Ab die Post" />
</form>
 
Ich habe ein <form>-Tag, der immer den ganzen Seitenhinhalt einschließt. Wenn ich also noch einen <form>-Teil baue, habe ich einen <form>-in-<form> und das ist nicht valide.
 
Zurück