Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Refererlisten und Session-ID's Antworten
Refererlisten und Session-ID's

Herr_Zatacke
Otto-Normal-Poster


Beiträge: 90


Hallo mal wieder.

Ich speichere für eine Website die Referer, die auf diese Seite verweisen, und lasse sie mir (momantan noch nur mir) als "Linkliste" anzeigen.

nachdem die Seite viel in Foren verlinkt wird, ist davon auszugehen, dass die Referer dabei oft so aussehen:
1:
http://www.domain.tld/index.php?s=221729cdfb52a17b66aea7da5cf25e22&showtopic=61754


Jetzt würde ich diese Liste gerne öffentlich zugängig machen, allerdings ist es unschön und unsinnig, wenn man dann 10 links hat die sich nur durch eine Session-ID unterscheiden, die sowieso nicht zu derjenigen Person gehört die diesen Link klickt.

Nun die Frage:
Wie soll ich die SID am besten entfernen ? - schliesslich heisst nicht jede Session-ID in der Adresse "sid". Da kann ja auch ein "s", ein "session" oder ein "sessid" etc. dabei sein.
Ganz wegschneiden möchte ich aber die Get-Parameter auch nicht - sonst finde ich ja nicht mehr von woher auf der Seite genau auf mich verlinkt wurde.

Tatsächlich soll dies hier also keine "technische" Frage sein - wie ich den String bearbeiten würde wenn ich eine Lösung für das Problem hätte wäre mir wahrscheinlich klar.
Stattdessen hoffe ich eher darauf das mir ein kluger Kopf hier den ultimativen Denkanstoss geben kann.

Danke schonmal an alle die sich Gedanken machen !!
Zatacke


---
wer and'ren eine bratwurst brät, der hat ein bratwurstbratgerät...

Diese Nachricht wurde geändert von: Herr_Zatacke
  Profil   Editieren   Zitieren

Can
Halbgott


Beiträge: 1330


Du machst dir ein Array mit ein paar Session-ID-Variablen..

$array=array("sessid","sid","sessionid");

..schaust dann in der Schleife den Referer durch und guckst, ob eine davon vorkommt. Wenn ja, löschst du das bis zum nächsten & bzw. bis zum Schluss..

Gruß
Can

---
"S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox

  Profil   E-Mail   Editieren   Zitieren

Herr_Zatacke
Otto-Normal-Poster


Beiträge: 90


die Idee hatte ich auch ... denke auch so werd ich's machen

dann filter ich mal:
1: 
2: 
3: 
4: 
5: 
6: 
7:
sessid
sid
sessionid
s
session


weitere Vorschläge ? bzw - welche bezeichnungen verwenden die gängigen Boards
phpbb: "sid"
invisionboard: "s"
Burning Board: "sid"
???

---
wer and'ren eine bratwurst brät, der hat ein bratwurstbratgerät...

  Profil   Editieren   Zitieren

HoRnominatoR
Mausakrobat


Beiträge: 165


PHPSESSID ist standardeinstellung

---
get OPERA for free

  Profil   E-Mail   Website   Editieren   Zitieren

Herr_Zatacke
Otto-Normal-Poster


Beiträge: 90


HoRnominatoR schrieb am 28.04.2005 11:58
PHPSESSID ist standardeinstellung


Aber nicht uppecase oder ?

Aber du bringst mich auf die Idee Case-Insensitive zu ersetzen! :D
Dankeschön

---
wer and'ren eine bratwurst brät, der hat ein bratwurstbratgerät...

  Profil   Editieren   Zitieren

Herr_Zatacke
Otto-Normal-Poster


Beiträge: 90


So .. ich bin ja nich so der preg_replace Experte. Genauergenommen hab ich das grad zum ersten Mal getestet.

Es scheint zu funktionieren. Trotzdem fänd' ich's nett wenn sich grade mal jemand meinen code anschauen würde ob's stimmt.

1: 
2: 
3: 
4: 
5: 
6:
$sidnames = array("sessid","sid","sessionid","s","session","phpsessid");
foreach ($sidnames as $sidname) {
	$referer = preg_replace("[" . $sidname . "=\w+]","",$referer);
}


ausserdem ist das glaub ich so noch Case-Senitiv - wie ändere ich das am besten?
bzw. Gibt's ne schöne Seite auf der Reguläre Ausdrücke simpel erklärt werden?

---
wer and'ren eine bratwurst brät, der hat ein bratwurstbratgerät...

  Profil   Editieren   Zitieren

rEd1Z1_2k
Pixelschubser


Beiträge: 8


1: 
2: 
3: 
4:
$sessions = array('sid=','PHPKITSID=','PHPSID=','sessid=','sessionid=','s=','session=','PHPSESSID=');
	foreach ($sessions as $xrow) {
		$referer = preg_replace('/[&|?]'.$xrow.'[^&]*/',"",$referer);
	}


ich habs bei mir ähnlich gelöst

hatte dieses "problem" auch mal..

Diese Nachricht wurde geändert von: rEd1Z1_2k
  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben