SessionID & QUERY_STRING

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
EDV
Mitglied
Beiträge: 18
Registriert: 09.06.2004 08:03
Wohnort: Gelsenkirchen
Kontaktdaten:

SessionID & QUERY_STRING

Beitrag 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
Tunix mit Unix!
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag 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) !?
Benutzeravatar
EDV
Mitglied
Beiträge: 18
Registriert: 09.06.2004 08:03
Wohnort: Gelsenkirchen
Kontaktdaten:

Beitrag 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
Tunix mit Unix!
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

wenn ich dann auf eine andere Seite klicke wird sie nicht gefunden
Die Seite wird nicht gefunden oder die SID ?
Benutzeravatar
EDV
Mitglied
Beiträge: 18
Registriert: 09.06.2004 08:03
Wohnort: Gelsenkirchen
Kontaktdaten:

Beitrag 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);
Tunix mit Unix!
Antworten

Zurück zu „Coding & Technik“