zauberer: Weiterleitung und das übergeben von Variabeln

Hallo alle zusammen!

Ich habe auf meinem Webprojekt Sessions intigriert.
Die Session wird erstellt und danach wird der Benutzer auf eine weitere Seite weitergeleitet.

----------------------------

session_start();
session_register("testvar");

echo "<html>
<head>
<meta http-equiv='refresh' content='0; URL=seite2.php?PHPSESSID=" . $PHPSESSID . ">
</head>
<body>
</body></html>";

-------------------------------

bei einem benutzer der cookies erlaubt funktioniert diese methode auch wunderbar. wenn man aber cookies verbietet wird keine sessionid weitergegeben. für diesen fall wollte ich ja die weiterleitung (siehe script) einbauen, die die PHPSESSID im
<meta http-equiv='refresh' content='0; URL=seite2.php?PHPSESSID=" . $PHPSESSID . ">
weitergibt.
aber wenn ich mir die ausgabe anschaue, steht da nur:

<html>
<head>
<meta http-equiv='refresh' content='0; URL=seite2.php?PHPSESSID=">
</head>
<body>
</body></html>

also wird die variable PHPSESSID nicht in die Ausgabe geschrieben und somit auch nicht an seite2.php übergeben. und seite2.php meckert dann dass keine session verfügbar ist wenn ich sie öffnen möchte.

gibt es viell. noch andere möglichkeiten um eine funktionierende weiterleitung zu bekommen (viell. serverseitig)?

danke im vorraus

  1. Hi,

    ich würde das so ungefähr machen:

    header("Location: seite2.php?SESSIONID=...");

    zumindest vom Ansatz her - damit kommen auch ältere Browser etc. zurecht

    E7

    1. hi,

      ich würde das so ungefähr machen:
      header("Location: seite2.php?SESSIONID=...");
      zumindest vom Ansatz her - damit kommen auch ältere Browser etc. zurecht

      schon x-mal hier im forum erwähnt:

      die weiterleitung per location-header erfordert nach http/1.1 einen _vollständigen_ URL, nicht bloss den namen der seite.

      nur diese korrekte vorgehensweise garantiert, dass alle clients, die http/1.1 korrekt implementiert haben, auch korrekt reagieren.

      gruss,
      wahsaga

    2. Hallo,

      Es ist sicher sinnvoller, einen HTTP-302-Header zu schicken, als eine
      "Loesung" mit Meta-Refresh zu basteln.

      header("Location: seite2.php?SESSIONID=...");

      http://www.php.net/manual/de/function.header.php#AEN30218

      "Anmerkung:  HTTP/1.1 verlangt einen absoluten URI inkl. dem Schema,
      Hostnamen und absoluten Pfad als Argument von Location:"

      Also bitte so:
      header("Location: http://www.example.com/seite2.php?SESSIONID=...");

      Weil der String "PHPSESSID=xyz123abc987" oder so in der Konstanten SID
      gespeichert ist, kann man uebrigens auch schreiben:
      header("Location: http://www.example.com/seite2.php?".SID);

      Gruesse,

      Thomas

      1. Danke für den Hinweis.

        Trotzdem wird aber die PHPSESSID nicht weitergegeben. (siehe mein anderes posting)

        danke!

        der Zauberer

    3. Danke!

      Hab's schon probiert. Aber es geht auch nicht.
      Die weiterleitung funktioniert zwar, aber die PHPSESSID wird nicht weitergegeben. Also:

      http://localhost/seite2.php?PHPSESSID=

      Obwohl dies eigentlcih vollkommen unlogisch ist. da die PHPSESSID ja existiert...

      kann da noch jeand helfen?

      danke

      Der Zauberer