[PHP] Internet Explorer - Loginprobleme

26 November 2008
14
7
Mein Loginscript funktioniert nicht mit dem Internetexplorer, in Firefox funktioniert alles einwandfrei, deshalb kann es am php Script nicht liegen. Welche Fehlerquellen könnten noch vorhanden sein?

Der Fehler zeigt sich so: Nach einem Klick auf Login wird nicht auf mitgliederbereich.php weitergeleitet, sondern der IE zeigt eine Fehlerseite "Die Seite kann nicht angezeigt werden" an, aktualisiere ich die Seite funktioniert jedoch alles auch im IE *grübel*
 
Dass das in einem Browser funktioniert, im anderen nicht muss durchaus nicht heißen, dass das Script in Ordnung ist ;)

Ohne Code werden wir dir hier allerdings nicht weiterhelfen können, denke ich.
(ich verkneife mir mal den mit der kristallkugel)
 
Stimmt, der IE könnte die Header Information anders auswerten, jedoch ist diese imho korrekt:

Hier ein Auszug wo der Login geprüft wird:
PHP:
if ($_POST['checklogin'] == 'Login')
{
    if (empty($_POST['username'])) $fehler[] = 'Username angeben!';
    if (empty($_POST['kennwort'])) $fehler[] = 'Kennwort angeben!';
    
    if (count($fehler) == 0)
    {


        $res = mysql_query("SELECT * FROM mitglieder WHERE username='".mysql_real_escape_string($_POST['username'])."' AND kennwort='".md5($_POST['kennwort'])."' LIMIT 1");
        if (mysql_num_rows($res))
        {
              $res2 = mysql_fetch_assoc($res);
              $_SESSION['uid']  = $res2['id'];
              $_SESSION['nickname'] = $res2['username'];
              
              header('Location: https://domain.de/mitgliederbereich.php');
              
        }else{
              $fehler[] = 'Falsche Username / Kennwort Kombination.';
        }
        
    }
}

domain.de wurde natürlich ersetzt. Mehr ist das eigentlich auch nicht was den Login betrifft :-?. Was könnte denn - allgemein - noch ein Grund sein wieso es nicht funktioniert im IE?
 
Mach nach dem location-Header mal ein Exit. Vielleicht gibst du noch was aus danach und der IE nimmt dir das krumm.
 
exit; ist nun drin aber funktioniert leider immer noch nicht. Was vielleicht noch hilft der IE zeigt in der Adressleiste noch die URL login.php an (während dem Fehler), laut Script sollte die jedoch nur angezeigt werden wenn ein Fehler vorliegt, ansonsten sollte die Weiterleitung auf mitgliederbereich.php passieren.

Wenn ich die Weiterleitung auf die index.php mache funktioniert es komischerweise, es müsste also an der mitgliederbereich.php liegen 8O
rufe ich die mitgliederbereich.php jedoch direkt auf funktioniert es ja auch :-?.
 
Also das ganze ist wirklich sehr kurios ich habe nun die Weiterleitung auf eine andere Seite (login.php) gelegt, dort funktioniert alles die Seite wird angezeigt und gibt die Meldung "Login erfolgreich" aus.

Im linken Menü erscheinen dann verschiedene Links welche alle auf mitgliederbereich.php verlinken.

Mein Ablauf sieht nun so aus:

  1. einloggen, ich lande auf der login.php mit der entsprechenden Meldung.
  2. Ich klicke einen Link im linken Menü (z.B. mitgliederbereich.php?page=Statistik)
  3. Es erscheint wieder "Die Webseite kann nicht angezeigt werden"
  4. Ich drücke F5 und alles geht ganz normal :WALL: ohne das ich mich nochmal einloggen, sprich die mitgliederbereich.php danach gehen dann auch alle anderen links.
Ich schließe daraus das der IE einmal eine Fehlermeldung ausspucken "muss" und danach erst alles geht, aber wieso das so ist weiß ich leider immer noch nicht.

Wenn sich das jemand mal anschauen möchte gebe ich gerne mal Logindaten per PN raus aber die Seite ist noch nicht öffentlich deshalb bitte nicht weitergeben :)
 
die() und exit; hab ich alles schon probiert, keinerlei Änderungen.

Ich hab aber mittlerweile eine - wenn auch unprofesionelle - Notlösung gefunden, da der IE ja den Zugriff auf die mitgliederbereich.php erst beim zweiten Aufruf zulässt habe ich einfach in der login.php folgendes eingebaut:

HTML:
<img src="mitgliederbereich.php" style="display:none;"/>

Dadurch "denkt" der IE das die mitgliederbereich.php schonmal aufgerufen wurde und erlaubt sofort den Zugriff.

In der mitgliederbereich.php befinden sich übrigens keine if Abfragen wo sich die Werte bei einem erneuten Aufruf geändert haben. :-?