Mailinglisten-Archive |
Hallo Hans, Du schriebst am Samstag, 27. Oktober 2001, 01:18 HM> Ich habe es nun so gelöst: HM> if($choice == de) $language = 'german'; HM> if($choice == en) $language = 'english'; HM> if(!$language) $language = 'german'; HM> session_register("language"); Genau das ist die richtige Vorgehensweise. Nochmal zum Reflektieren: natürlich kannst Du, wie schon geschrieben, jederzeit die Session-Variablen neu setzen (oder erhöhen etc.. - ist alles das gleiche), aber Dein Fehler bei Deiner alten Vorgehensweise: die Session-Variable überschrieb die Variable, die vom Browser gesendet wurde, BEVOR du sie überhaupt abfragen konntest. D.h.: wurde die Variable "language" als Session-Variable deklariert mit dem Wert "german", und ein Nutzer ruft die Seite mit ?language=english auf, dann hat natürlich die Variable $language ganz zu Anfang des Scripts den Wert "english". ABER: dadurch daß Du die Session wieder aufnimmst (egal ob nun mit session.autostart oder mit session_start()) - und alle Variablen zu der Session bei diesem Vorgang wieder ausgelesen und auf den letzten (alten) Stand gebracht werden, wird $language dabei natürlich überschrieben mit dem Inhalt "german". Beste Lösung IMO: für Session-Variablen eindeutige Namen verwenden, z.b. sess_language. Dann kannst du einfach abfragen im Script: if ($language != $sess_language) { $sess_language = $language; session_register("sess_language"); } Tschüß, Lars -- Lars Volkhardt APP - Another PHP Programs http://www.php-zentrale.de mailto:snoopy_(at)_php-zentrale.de
php::bar PHP Wiki - Listenarchive