tob: Probleme mit SESSION im Internet Explorer 6

Guten Tag,
ich hab da ein kleines Script gebaut, dass den Zugang zu meiner Website mittels einer Session kontrolliert.
Das klappt auch alles hervorragend AUSSER im Internet Explorer 6. Hier wird dann plötzlich in dam Formular, in dem der Benutzername/Passwort einzutragen sind, ein input type=hidden eingefügt (erscheint nur im Internet Explorer):

  
<input type="hidden" name="PHPSESSID" value="6i406ebmriu1r2pcngedku91k1" />  

Ich bin mir relativ sicher, dass das Script vor einer Weile noch funktioniert hat. Ich hab hier WinXP SP2 und den IE6 installiert.

Beim Aufruf der Seite erscheint unten im Internet Explorer übrigens dieses Auge mit einem Warnschild davor (Datenschutzbereicht). Wenn ich darauf klicke kann ich Einstellen ob ich Cookies für diese Website zulassen möchte. Ich hab das für meine Seite auf "Cookies von dieser Seite immer erlauben" gesetzt, jedoch ohne einen Effekt.

Das Scipt läuft problemlos unter IE7 (beta) und Firefox (1.5.0.3).

Bitte gebt mir n Tip, ich bin, nach dem stundenlangen Versuchen, der Verzweiflung nahe... :-/

  1. hallo,

    Das klappt auch alles hervorragend AUSSER im Internet Explorer 6.

    Das ist sehr unwahrscheinlich, aber ohne Kenntnis deines Scripts wird man dir nicht helfen können.

    Hier wird dann plötzlich in dam Formular, in dem der Benutzername/Passwort einzutragen sind, ein input type=hidden eingefügt (erscheint nur im Internet Explorer):
    <input type="hidden" name="PHPSESSID" value="6i406ebmriu1r2pcngedku91k1" />

    Wenn da etwas "eingefügt" wird (übrigens: wohin wird das eingefügt?) so erzeugt das dein Script aufgrund verschiedener Auswertungen von übermittelten Daten. Browser selbst können überhaupt nichts einfügen.

    Beim Aufruf der Seite erscheint unten im Internet Explorer übrigens dieses Auge mit einem Warnschild davor (Datenschutzbereicht). Wenn ich darauf klicke kann ich Einstellen ob ich Cookies für diese Website zulassen möchte. Ich hab das für meine Seite auf "Cookies von dieser Seite immer erlauben" gesetzt, jedoch ohne einen Effekt.

    Das ist, wenn überhaupt, ein völlig anderes Thema. Mit deinem Script _kann_ das nichts zu tun haben. Vielleicht hilft es dir, wenn du dich etwas gründlicher mit den Konstruktionsprinzipien verschiedener Browser und vor allem mit der Art, wie der IE konfiguriert werden kann beschäftigst.

    Das Scipt läuft problemlos unter IE7 (beta) und Firefox (1.5.0.3).

    Nochmals: Dein Script läuft nicht "unter" irgendeinem Browser, sondern es läuft "auf" dem Server. Wenn der Server etwas ausliefert, hat das Script seine Arbeit längst beendet und dem Server gesagt, was er ausliefern soll. Was der Browser dann damit macht, ist dessen Sache, das Script weiß davon nichts und interessiert sich nicht dafür. Wenn dein Script allerdings solche Sachen wie HTTP_USER_AGENT auswertet, kann es passieren, daß entsprechend dem Wert dieser Variablen hidden-Felder ausgeliefert werden - oder auch nicht.

    Was das Ganze mit Sessions zu tun haben soll, ist im übrigen nicht verständlich.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. hallo,

      Das klappt auch alles hervorragend AUSSER im Internet Explorer 6.

      Das ist sehr unwahrscheinlich, aber ohne Kenntnis deines Scripts wird man dir nicht helfen können.

      Das Script ist leider etwas umfangreicher (da hängt auch noch die geamte Homepage/bzw. Galerie mit drin) um es hier zu posten.

      Ich denke das es mit der Session zu tun hat, weil hier ein unterschiedlicher Quellcode im IE und um Firefox ausgegeben wird.

      Hier deshalb mal ein paar Auschnitte die mit diesen Sessions zu tun haben.
      erste Zeile:

        
      <? session_start(); ?>  
        
      if ($_GET['logout']=="1"){  
      $_SESSION['user']="0";  
      $_SESSION['pass']="0";  
      $_SESSION['galerie']="0";  
      session_destroy();  
       }  
        
      if ($_POST['sendung']=="yes"){  
      $_SESSION['user']=$_POST['user'];  
      $_SESSION['pass']=$_POST['pass'];  
      $galerie=$_POST['galerie'];  
      }  
      if($galerie!="" && file_exists("./".$galerie) && $_GET['logout']!="1" && ($_SESSION['user']==$benutzername) && ($_SESSION['pass']==$passwort))  
      {  
      if(empty($seite) && isset($galerie) && file_exists("./".$galerie)&&$img!="0"&&$img<"1")  
      {/*hier kommt dann die Ausgabe der Seite*/}  
      }  
      
      

      Folgender Code wird im IE6 ausgegeben:

        
      ...<br>Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein:</a></td></tr><tr valign='top'><td width='110'><form action='index.php' method='post'><input type="hidden" name="PHPSESSID" value="ob1ts4bra8lh1glssu4cqjqqf4" /><a class='bigtext'>Benutzername :</a> </td><td width='490' ><input type='text' name='user'></td></tr><tr valign='top'><td><a class='bigtext'>Passwort :</a></td><td> <input type='password' name='pass'><br><br><input type='submit' name='submit' value='weiter'><input type='hidden' name='galerie' value='test'><input type='hidden' name='sendung' value='yes'></form>  
      
      

      Selbiges sieht im Firefox so aus:

        
      ...<br>Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein:</a><br><br></td></tr><tr valign='top'><td width='110'><form action='index.php' method='post'><a class='bigtext'>Benutzername :</a> </td><td width='490' ><input type='text' name='user'></td></tr><tr valign='top'><td><a class='bigtext'>Passwort :</a></td><td> <input type='password' name='pass'><br><br><input type='submit' name='submit' value='weiter'><input type='hidden' name='galerie' value='Erfurt-MV'><input type='hidden' name='sendung' value='yes'></form>  
      
      

      Meine Vermutung war, dass hier der Fehler liegt.

      Das Hauptproblem ist, dass ich beim einloggen mit dem IE zwar noch auf die nächste Seite weiter geleitet werde auf der sich dann ein Link befindet der folgendermaßen aussieht:

        
      <a style='font-size:13; font-weight:bold;' href='index.php?galerie=xyz&seite=1' >Zur Galerie ></a>  
      
      

      Beim klick auf dieses Link werde ich im IE dann zurück zur Login-Seite geleitet da er schienbar nicht erkennt, dass ich schon korrekt angemeldet bin (obwohl die Parameter wie "user" und "pass" ja   in der Session gespeichert sein sollten).

      So ich hoffe das ist ausfühlich genug...?

      Grüße,
      tob

  2. echo $begrüßung;

    Das klappt auch alles hervorragend AUSSER im Internet Explorer 6.

    Das betrifft auch alle anderen Browser, wenn diese die Annahme von Cookies ablehnen.

    Hier wird dann plötzlich in dam Formular, in dem der Benutzername/Passwort einzutragen sind, ein input type=hidden eingefügt (erscheint nur im Internet Explorer):
    <input type="hidden" name="PHPSESSID" value="6i406ebmriu1r2pcngedku91k1" />

    Ja, um dieses Verhalten PHPs einzuschalten müssen die Parameter
    session.use_only_cookies aus- und session.use_trans_sid eingeschaltet sein.

    echo "$verabschiedung $name";

    1. echo $danke.$begruessung;

      Wo und wie muss ich diese Parameter setzen? Muss das in der PHP-ini geändert werden?

      Merci und Grüße.

      1. Hallo,

        Wo und wie muss ich diese Parameter setzen? Muss das in der PHP-ini geändert werden?

        die php.ini (ersatzweise für ein Apache-Modul auch in der .htaccess) ist dafür der geeignetete Ort. Wie Konfigurationen zu setzen sind, kannst Du Dir unter Laufzeiteinstellungen und Konfigurationen ändern anlesen. Die speziell für Sessionmanagment wichtigen Konfiguration sind unter Session aufgelistet. Sie lassen sich, für den Fall, daß Du die Konfigurationen mittels php.ini/.htaccess nicht ändern kannst in jedem einzelnen Script durch die Funktion ini_set() ebenfalls ändern.

        Gruß aus Berlin!
        eddi