phpbar.de logo

Mailinglisten-Archive

[php] Session

[php] Session

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mon Sep 6 16:32:55 CEST 2004


Hi Christoph,

Christoph Rust schrieb:
> Lutz Zetzsche schrieb:
>
>>
>>das bedeutet, dass die SessionID nicht uebergeben wuerde.
>>
>>Wenn ich es richtig sehe, haengst Du sie auch nicht an die URL an, weil
>>PHP_SELF keine $_GET-Parameter enthaelt, wenn ich das jetzt richtig im
>>Kopf habe.
>>
>>Versuche als mal folgendes:
>>
>>     <a href="<?PHP echo $_SERVER["PHP_SELF"].SID; ?>">weiter >></a>
>>
>>
>>>Daher folgende Frage:
>>>Gibt es eine möglichkeit, PHP dazu zuzwingen, immer eine bestimme ID
>>>anzuhängen und zu verwenden?
>>>
>>
>>Die gibt es auch. Aber versuche erst mal obiges. :-)
>>
>>
> Ich will es ja eben nicht manuell an die URL anhängen :)

dann sag das auch explizit. :-) Du hast nur etwas beschrieben, was auf den
Verlust der Session-ID hinwies (-> "...das eine komplett neu
generierte SessionID angehangen wird."). Das passte auch mit Deinem
Beispiel zusammen.


> Aber beim 2 ausführen der gleichen Aktion ist es halt wieder anders,
> indem er eine neue ID generiert.
>
> Im PHP-Manual steht folgendes dazu:
>
> *Anmerkung: *Falls Session-Cookies verwendet werden und für
> *session_id()* eine /ID/ angegeben wird, wird ungeachtet dessen, ob die
> aktuelle Session-ID mit der neuen identisch ist, bei jedem Aufruf von
> *session_start()* <function.session-start.html> ein neues Cookie gesendet.

1. Warum setzt Du die Session-ID eingangs explizit mit session_id()? Da
dadurch der Cookie bei jedem Seitenaufruf neu gesetzt wird und ein Cookie
nicht in der Seite, die ihn setzt, sondern erst beim naechsten
Seitenaufruf ausgelesen werden kann, koennte das schon Dein Problem
verursachen. PHP findet keinen Session-Cookie und damit keine Session-ID
und generiert eine neue Session-ID. Nur eine Ueberlegung, aber guck mal,
ob es nicht daran liegt. Verzichte doch mal auf das session_id() am
Anfang.

2. Wenn Du die Session-ID nicht mit <?php echo($_SERVER['PHP_SELF'].SID);
?> einbauen moechtest, dann guck Dir mal unter
     http://de3.php.net/manual/en/ref.session.php
den Konfigurationsparameter "session.use_trans_sid" an. Ich meine, damit
kann man das erzwingen, was Du willst. Ich habe es aber selbst noch nicht
ausprobiert. :-)


Viele Gruesse

Lutz





php::bar PHP Wiki   -   Listenarchive