Christian: PHP4 Sessions

Hallo zusammen!

Ich probiere gerade die PHP4 Session-Funktionen aus. Das Ganze läuft lokal auf meiner NT-Kiste perfekt. Wenn Cookies aktiviert sind nimmt er es über die COOKIE_VARS, wenn sie deaktiviert sind über GET.
Nun habe ich das aber auch bei zwei verschiedenen Providern versucht. Dort funktioniert jedoch leider nur noch die Variablen-Übergabe mit Cookies. Sobald ich beim Browser Cookies deaktiviere werden gar keine Variablen mehr übergeben.
Ich lese zur Kontrolle die SESSION_VARS, COOKIE_VARS und GET_VARS aus: Nicht...
Die track_vars sind anscheinend aktiviert. Denn wenn ich Variablen über Formulare übergebe, werden sie ausgegeben.

Für eure Hilfe wäre ich sehr dankbar. Hab nämlich sonst nirgens was gefunden.

Vielen Dank!

Christian

  1. Hallo!

    Ich probiere gerade die PHP4 Session-Funktionen aus. Das Ganze läuft lokal auf meiner NT-Kiste perfekt. Wenn Cookies aktiviert sind nimmt er es über die COOKIE_VARS, wenn sie deaktiviert sind über GET.
    Nun habe ich das aber auch bei zwei verschiedenen Providern versucht. Dort funktioniert jedoch leider nur noch die Variablen-Übergabe mit Cookies. Sobald ich beim Browser Cookies deaktiviere werden gar keine Variablen mehr übergeben.
    Ich lese zur Kontrolle die SESSION_VARS, COOKIE_VARS und GET_VARS aus: Nicht...

    Kannst mal den relvaten Code hier posten? Bitte auch ein Beispiel wie die Links bei Dir aussehen, also <a --alles bis--> >! Ich kann mir so ungefähr denken, woran es liegt, aber auf lange vermutungen hier nieder zu schreiben ...

    1. Also, das ist seite1.php:

      <?php
          @session_start();
          session_register("s_userName","s_userPermissions");

      echo "<a href=seite2.php>Seite2</a>";

      $s_userName         =   "Nameoderso";
          $s_userPermissions  =   "Useroderso";
      ?>

      und das ist seite2.php:

      <?php
          @session_start();
          echo "<b>Inhalt der SESSION_VARS:</b><br>";
          while (list($key,$value) = each($HTTP_SESSION_VARS))
             {
                 echo $key." = ".$value."<br>";
             }
          echo "<br><b>Inhalt der COOKIE_VARS:</b><br>";
          while (list($key,$value) = each($HTTP_COOKIE_VARS))
             {
                 echo $key." = ".$value."<br>";
             }
          echo "<br><b>Inhalt der GET_VARS:</b><br>";
          while (list($key,$value) = each($HTTP_GET_VARS))
             {
                 echo $key." = ".$value."<br>";
             }
      ?>

      Ich habs noch immer nicht hinbekommen. Lokal, kann ich alles ausprobieren, es funktioniert. Aber auf dem Web...   Hilfe...

      Gruss und Danke Christian

      1. Hallo!

        Also, das ist seite1.php:

        @session_start();
            session_register("s_userName","s_userPermissions");

        Bei session_register() ist session_start() nicht nötig, das session_register() das auch erledigt, aber für Dein Problem egal.

        echo "<a href=seite2.php>Seite2</a>";

        Wie transportierst Du die session-Daten, wie Session-Name und Session-ID auf seite2.phtml, wenn Cookies deaktiviert sind?

        Auf Deinem NT-System scheint PHP alle relativen Links mit dem Session-Name und Session-ID zu versehen. Unter Linux/Unix/etc. muß beim kompilieren dafür --enable-trans-sid mit angegeben werden. Die PHP unter NT ist das automatisch so, was nur in der php.ini abgestellt werden kann. Rufe mal über phpinfo(); die php.ini/Konfiguration auf und schaue mal, wie Dein Provider PHP kompiliert hat.

        Du kannst für den Fall deaktivierter Cookies, die Konstante SID verwenden.
        <a href="seite2.phtml?<?PHP echo SID; ?>">Seite2</a>

        Cookies deaktiviert--> <a href="seite2.phtml?PHPSESSID=e7680f786ab9ffb381cf0b8df52363e8">Seite2</a>

        Cookies aktiviert --> <a href="seite2.phtml?>Seite2</a>

        PHPSESSID ist der Standardsessionname/Sessionvariable bei PHP. Dies kannst Du in der php.ini(wenn Du Zugriff hast) oder mit session_name("meinName")(aber angeben bevor Du die session startest) ändern.

        und das ist seite2.php:

        <?php
            @session_start();

        session_register("s_userName","s_userPermissions");

        Um die Variablen, die in der Sessiondatei abgelegt sind wieder nutzen zu können, mußt Du die Sessionvariablen wieder registrieren.

        MfG, André Laugks