PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : phpsessid


sacrifice
29.12.2003, 17:59:37
Hi leute.

ich möchte an die links auf meiner hp die SID anhängen.

echo '<a href="x.php?...&'.strip_tags (SID).'">...</a>';

wenn ich dann aber auf meinem localhost teste lautet die ausgabe nur

<a href="x.php?...&">...</a>

obwohl sie ja eigenltich

<a href="x.php?...&PHPSESSID=(irgendeinmd5code)">...</a>

lauten sollte!

was mach ich falsch? muss ich vllt vorher irgendwas mit session_id() machen??

greetings Sacrifice

Fuchs
29.12.2003, 19:59:20
SID enthaelt '' falls der Remote PC Cookies akzeptiert.

sacrifice
29.12.2003, 20:50:37
Hmm, ich habe gerade mal im browser cookies abgeschaltet. die phpsessid erscheint trotzdem nicht im link, das script läuft aber wunderbar!

Fuchs
29.12.2003, 21:33:15
Sitzungs Cookies werden erst beim schliessen des Browsers geloescht. Nur wenn der Client Cookies akzeptiert ist SID ein leerer String ('').

#0099FF
30.12.2003, 10:22:43
Original geschrieben von sacrifice
Hmm, ich habe gerade mal im browser cookies abgeschaltet. die phpsessid erscheint trotzdem nicht im link, das script läuft aber wunderbar!

Habe das selbe Problem mit dem IE festgestellt wenn ich Lokal teste. Vermutlich ignoriert er lokal die "cookie sperre".

sacrifice
30.12.2003, 15:13:56
hmm ich teste dann mal einfach auf webspace

NanoCyte
02.01.2004, 11:11:54
ich hoff, du hast
session_start();
nicht vergessen

ansonsten kann ich mir das auch so direkt nicht erklären, was d das problem ist
vielleicht liegts auch an zwei unterschiedlichen PHP-Versionen...

meikel (†)
02.01.2004, 11:31:27
Session und SID
Original geschrieben von sacrifice
<a href="x.php?...&">...</a>
obwohl sie ja eigenltich
<a href="x.php?...&PHPSESSID=(irgendeinmd5code)">...</a>
lauten sollte!
Wenn Dich der einsame Ampersand (&) nicht stören sollte:
es gibt 3 Möglichkeiten, in welcher Form die Session Variable weitergegeben wird.
1. Keksbetrieb: ist abhängig von session.use_cookies (fallback möglich) und session.use_only_cookies (fallback nicht möglich)
2. session.use_trans_sid = 1: hier wird bei 'keks-losem Betrieb' und dafür geeignetem Browser die Sessionvariable 'im HTTP Protokoll versteckt'.
3. nur dann, wenn alle Stricke reißen, steht in SID mehr drin als 'nix'.

Du mußt nur sicherstellen, daß die Session_id auch bei POST-Formularen weitergegeben wird. Hier ist (im Bedarfsfalle) der "Hidden-Tag' zu bevorzugen. Sowas
... method='post' action='$PHP_SELF?SID'...
muß ein 'normaler' Browser nicht beachten. Entweder GET oder POST.

MiH
02.01.2004, 11:37:43
mach doch mal ein einfaches:

echo session_id();

dann siehst du ob etwas kommt oder nicht.

meikel (†)
02.01.2004, 11:52:35
Original geschrieben von MiH
mach doch mal ein einfaches:

echo session_id();

dann siehst du ob etwas kommt oder nicht.
Da kommt nach session_start() immer was...

Die Frage ist in dem Falle nicht, ob es eine Session ID gibt, sondern ob er sie weitergeben muß, damit die Session nicht stirbt.

Yankee
16.03.2006, 14:51:15
Hi,

ich hab da mal ein paar Fragen zu dem Thema der Diskussion

- kann mir jemand verraten was ein Cookie mit 'fallback' ist.

- wann stirbt eine Session? Ich hab gelesen das ist erst der Fall wenn ich den Browser schließe oder die Session beende.

- wenn ich eine bestehende Session fortsetzen will; heißt das, dass die Sessionvariablen ewig auf dem Server gespeichert werden bis ich dann mal wieder die Session starte oder geschieht dies nur wenn ich von einer Seite auf die aktuelle Seite weiter geleitet wurde? (da sollte die Session doch noch vorhanden sein)

mfg

meikel (†)
17.03.2006, 00:43:21
ich hab da mal ein paar Fragen zu dem Thema der Diskussion
Handbuch und FAQ gelesen?

- kann mir jemand verraten was ein Cookie mit 'fallback' ist.
Das gibt es nicht. 'Fallback' kennzeichnet den Fall, wenn der Client keinen Keks haben wollte. Dann mußt Du dafür sorgen, daß GET und POST mit session_name und session_id ergänzt werden.

- wann stirbt eine Session?
Eine Session ist dann gestorben, wenn PHP das Sessionfile gelöscht hat. Von welchen Configvariablen das abhängt, steht im Handbuch.

Ich hab gelesen das ist erst der Fall wenn ich den Browser schließe oder die Session beende.
Mit dem Schließen des Browsers wird nur der Session-Cookie im Client gelöscht, wenn er die Annahme nicht verweigert hat..