Regina: Session Name PHPSESSID nicht bekannt im IE 6

Hallo,

ich habe ein Problem mit dem Internet explorer 6 und meiner PHP-Session.
Folgendes passiert:
Nach session_start() und registrierung der Sessions werden diese richtig ausgegeben. Sie werden aber nicht korrekt auf die nächste Seite übergeben.
Wenn ich versuche, die SessionID über PHPSESSID per URL auf die andere Seite zu schaffen, scheitert dies, weil die PHPSESSID leer ist, schon sofort nach Start. Sie heißt aber laut php.ini wirklich so und wird auch mit sesion_name so ausgegeben.
session_id() ist ebenfalls leer, SID genauso.

Das ganze passiert nur beim Provider auf dem Server, nicht bei mir lokal und es passiert nur im IE 6, nicht in Netscape 6 oder IE 5.5

PHP Versionen:
Lokal PHP 4.1.0
Server: PHP 4.0.4pl1

Die Konfiguration für PHP ist lokal und auf dem Server genau gleich.

Was kann ich noch an der Konfiguration drehen, damit das klappt?

Schönen Gruß, Regina Oswald

  1. Hallo,

    Das ganze passiert nur beim Provider auf dem Server, nicht bei mir lokal und es passiert nur im IE 6, nicht in Netscape 6 oder IE 5.5

    PHP läuft Serverseitig und hat somit überhaupt nichts mit dem Browser zu tun. Poste doch mal ein bißchen Code, vielleicht kann man Dir dann besser helfen.

    Gruß,
    dimde

    1. Hallo Dimde,

      ich weiß ja auch nicht, warum es so ist, aber Tatsache -und das mußt Du mir glauben :-)- ist, daß das Problem nur im IE 6 auftritt, unter Netscape 6 und Opera klappts wunderbar.

      Es muß wohl was mit unterschiedlichen Sicherheits-Bestimmungen betreffs Cookies zu tun haben.

      Außerdem tritt es nur im PHP 4.0.6 und nicht im 4.1.0 auf.
      (Sonstige Konfiguration ist gleich).

      Aber ich bin jetzt ein Stück weiter gekommen:
      Die Seite, in der die Session gestartet wird (und alle weiteren, auf die von ihr aus verlinkt wird) sind in einen Frame eingebettet.

      Ich habe sie aus dem Frame befreit, und siehe da:
      Alles klappt!

      Darf man wirklich nie Sessions in Frames laufen lassen?

      Mich würde wirklich interessieren, warum das nicht bei allen Browsern und nicht bei allen PHP Versionen auftritt.

      Code schicke ich jetzt nicht mit, es ist wirklich reines Standard-Session-PHP mit session_start, session_register ect., das auf meinen anderen Seiten immer bestens klappt.

      Gruß, Regina

      Hallo,

      Das ganze passiert nur beim Provider auf dem Server, nicht bei mir lokal und es passiert nur im IE 6, nicht in Netscape 6 oder IE 5.5

      PHP läuft Serverseitig und hat somit überhaupt nichts mit dem Browser zu tun. Poste doch mal ein bißchen Code, vielleicht kann man Dir dann besser helfen.

      Gruß,
      dimde

      1. Also bei mir laufen Sessions auch in Frames.
        Was ist mit der Einstellung
        session_use_cookies?
        Darin wird eingestellt, ob für die Sessions Cookies verwendet werden sollen oder nicht.

        1. Hallo Regina,

          hast Du mal in den Quellcode auf dem Client hineingeschaut, den der Server Dir liefert?

          <?
          session_start();

          ?>
          <a href="irgendeinlink.html">Testlink</a>

          <form ....>
            ...
          </form>

          Bau das mal so ungefähr zusammen, wie oben skizziert und schau Dir an, was der Server daraus macht. Werden vom Server eventuell Session-ID's in den Link und das Form eingebaut? Das würde er nämlich machen, wenn er keine Cookies für Sessions benutzt.

          Wenn SID definiert ist -> isdefined("SID")  UND leer ist, dann wurde die Session auf der nächsten Seite ordnungsgemäß wiedergefunden. Nur wenn in SID etwas drinsteht, dann wurde eine neue Session gestartet, was ja auch nur auf der allerersten Seite mit session_start() kein Fehler wäre.

          Vielleicht hast Du ein Zeitproblem zwischen dem Server und Deinem Client. Welche Art der Länderunterstützung hast Du denn beim IE eingestellt? Lass Dir vom Server mal die Zeit ausgeben und vergleiche sie mit Deinem Client.

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
          1. Hi Tom

            Kannst du mir bitte ne Mail schreiben wie das jetzt ist mit
            dem Buch? Ich krieg immer Fehler zurück wenn ich an die angegebene
            Adresse schreibe.

            Gruss Daniela

            1. Hallo Daniela,

              entschuldige bitte. Das Buch habe ich ganz vergessen. Nachdem meine freundliche Bank mir mitgeteilt hat, dass eine "Auslandsüberweisung" ca. 12 Euro kostet, war ich doch konsterniert. Porto kommt ja auch noch dazu und dann kann ich mir das Buch hier irgendwo suchen.

              Ich habe leider im Moment keine Leitung für meine Server, da mein Accessprovider (Star21 Networks Deutschland GmbH) Insolvenz angemeldet hat. Schade eigentlich.

              Liebe Grüße aus http://www.braunschweig.de

              Tom

              --
              Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
        2. Also bei mir laufen Sessions auch in Frames.
          Was ist mit der Einstellung
          session_use_cookies?
          Darin wird eingestellt, ob für die Sessions Cookies verwendet werden sollen oder nicht.

          Hallo,

          session.use_cookies steht auf ON

          Gruß, Regina

      2. Hallo Regina,

        ich weiß ja auch nicht, warum es so ist, aber Tatsache -und das mußt Du mir glauben :-)- ist, daß das Problem nur im IE 6 auftritt, unter Netscape 6 und Opera klappts wunderbar.

        Ich würde es Dir ja gern glauben, aber das kann eigentlich gar niemals nicht sein (außer es handelt sich wirklich um ein cookie-Problem, wie Du angedeutet hast) :)

        Darf man wirklich nie Sessions in Frames laufen lassen?

        Frames sollten auch keinen Unterschied machen.

        Code schicke ich jetzt nicht mit, es ist wirklich reines Standard-Session-PHP mit session_start, session_register ect., das auf meinen anderen Seiten immer bestens klappt.

        Poste doch dann wenigstens einen link zu den beiden phpinfos (lokal und auf dem Server), vielleicht sieht man da ja noch was...

        Wo Du gerade session_register() ansprichst, man sollte stattdessen direkt auf $_SESSION bzw. $HTTP_SESSION_VARS zugreifen und die Variablen direkt in diese Arrays schreiben. Lies Dir doch mal diese Seite durch http://www.php.net/manual/en/function.session-register.php - vor allem auch folgenden Kommentar, der ziemlich eng mit Deinem Problem zuammenzuhängen scheint:

        "paul at NO_SPAM dot 3gs dot com
        25-Feb-2002 08:12
        In PHP 4.0.6 when the register_globals configuration option is turned off you must use the $HTTP_SESSION_VARS array to get and set session variables. session_register will not work!"

        Gruß,
        dimde

        1. Hallo dimde,

          ich kann nur die PHP-Konfiguration vom Server bereitstellen:
          http://www.pflanzen-datenbank.de/phpinfo.php
          Vielleicht kannst Du da was erkennen.

          Ich hätte Dir auch gerne den Link auf den Frame gegeben, damit Du das mit den unterschiedlichen Browsern testen kannst.

          Aber ich habe die Seite gestern aus dem Frame genommen, um das Problem zu vermeiden.

          Zu den Frames ist noch zu sagen, daß die Framebildende Seite auf einem anderen Server liegt, als die Fensterseite mit dem Session-Code.

          Wenn die Frameseiten alle auf einem Server liegen, scheint es keine Probleme zu geben.

          Gruß, Regina