Seite 1 von 1

SessionID & QUERY_STRING

Verfasst: 27.09.2004 21:31
von EDV
Salve!
Ich habe das folgende Problem:
Meine Seiten rufe ich mit einem kleinen PHP-Skript auf, damit ich keine Frames brauche, das geht nach dem Muster:
/?seitenname

(Die Seite wird per include eingebunden, in ein kopf, fuss Gerüst.)

Ich lese das "seitenname" wie folgt aus:

Code: Alles auswählen

$view = $_SERVER['QUERY_STRING'];
Das funktioniert auch soweit.
Aber ein Problem gibt es schnell, wenn ich keine Cookies erlaube, denn dann wird z.B. von einem Gästebuch die SessionID an den Link angehängt und wenn ich dann auf eine andere Seite klicke wird sie nicht gefunden.

Was kann ich dagegen machen?

Habt schon mal vielen Dank im voraus! :-)

Stephan

Verfasst: 27.09.2004 21:43
von Acid
Und wenn du die SID an derartige Links anhängst, wie z.B. phpBB mit der Funktion append_sid("link") (s. sessions.php) !?

Verfasst: 27.09.2004 21:56
von EDV
Salve!
Sorry, aber ich weiß gerade nicht, wie du dir das vorstellst, mein Skript sieht so aus:

Code: Alles auswählen

<?php
$endung = ".htm";
$verzeichnis = "";
$view = $_SERVER['QUERY_STRING'];

if ($view == "")
 {
  include($_SERVER['DOCUMENT_ROOT']."/kopf.php");
  include($_SERVER['DOCUMENT_ROOT']."/home.htm");
  include($_SERVER['DOCUMENT_ROOT']."/fuss.php");
 }
else
 {
  if (file_exists($_SERVER['DOCUMENT_ROOT']."/$view$endung"))
   {
    include($_SERVER['DOCUMENT_ROOT']."/kopf.php"); 
    include($_SERVER['DOCUMENT_ROOT']."/$verzeichnis/$view$endung");
    include($_SERVER['DOCUMENT_ROOT']."/fuss.php");
   }
   else
   {
    include($_SERVER['DOCUMENT_ROOT']."/kopf.php");
    include($_SERVER['DOCUMENT_ROOT']."/error/404.php");
    include($_SERVER['DOCUMENT_ROOT']."/fuss.php");
   }
 }
?>
Stephan

Verfasst: 27.09.2004 22:01
von Acid
wenn ich dann auf eine andere Seite klicke wird sie nicht gefunden
Die Seite wird nicht gefunden oder die SID ?

Verfasst: 28.09.2004 15:25
von EDV
Salve!
Die Seite, ich denke er ließt einfach die SessionID mit ein, das gibt dann aber keinen Sinn, denn dann kann er die Seite nicht finden:
/?seitenname
ist normalerweise ja "seitenname".
Mit SessionID dann aber "seitenname&PHPSESSID=abcedf12345 (etc.)"

Stephan

Edit
Ich habe das gerade auch mal ausprobiert und mir somit die Variable mit echo mal ausgeben lassen:
seitenname&PHPSESSID=abcd1234

Da kann er die Seite ja nicht finden ...
Kann ich die SessionID irgendwie herausfiltern, z.B. alles nach dem &-Zeichen rausfiltern, oder so?

Edit II
Ich habe das Problem nun gelöst, indem ich einfach die SessionID herausfiltern lasse ... ;)

Code: Alles auswählen

$view = preg_replace("/&PHPSESSID\=([a-z0-9]{32})/","",$view);