PHP_session - was mache ich falsch?
michi
- php
0 Harry0 michi
0 Sönke Tesch
hallo!
was ich erreichen möchte ist nichts anderes, als dass sich der server in einer session-variable den Wert der variable $language merkt. und wenn es noch keine solche gibt, soll sie mit dem wert 'german' erstellt werden.
dazu ertelle ich eine neue session mit: "session_start();"
und frage ab ob es schon eine Variable $language gibt: "if(!SESSION_IS_REGISTERED(language)){session_register("language"); $language = "german";}"
und zuletzt soll sich die variable ändern, wenn einer der "sprache-wechseln"-Buttons gedrückt wird (diese übergeben in der varible $lang die neue sprache):"if($lang){ $language = $lang;}"
also:
<?
session_start();
if(!SESSION_IS_REGISTERED(language)){session_register("language"); $language = "german";}
if($lang){ $language = $lang;}
...
?>
aber trotzden wird immer wieder die variable auf "german" gestellt, wenn ich die seite über einen link neu lade. (lädt man die seite jedoch über den browser-button 'refresh' neu, behält er z.B. 'english' als wer für die session-variable. sonst nicht)
was mache ich also falsch??!
lg
michi
Holladiewaldfee,
Vielleicht solltest Du lieber mit $_SESSION arbeiten ...
Also:
session_start();
if(isset($_SESSION["language"]))
{ #blafoo
}
usw.
Dann kannst Du Dir auch den Käse mit session_register sparen, da alles was in $_SESSION ist so oder so als Teil der Session betrachtet und gespeichert wird.
Ciao,
Harry
hallo nochmal!
Vielleicht solltest Du lieber mit $_SESSION arbeiten ...
hab ich mir zu herzen genommen und diesen käse produziert:
session_start();
if(!isset($_SESSION["language"])){$_SESSION["language"] = "german";}
if($lang){ $_SESSION["language"] = $lang;}
nur leider funktioniert das genauso (wenig) wie die letzte variante :(
und ich habe nicht die geringste ahnung warum nicht.
lg
michi
was ich erreichen möchte ist nichts anderes, als dass sich der server in einer session-variable den Wert der variable $language merkt. und wenn es noch keine solche gibt, soll sie mit dem wert 'german' erstellt werden.
Tipp: Frage ab, was der Browser in $_SERVER["HTTP_ACCEPT_LANUAGE"] gesendet hat. Dort erfährst Du die Präferenzen des Benutzers.
dazu ertelle ich eine neue session mit: "session_start();"
und frage ab ob es schon eine Variable $language gibt: "if(!SESSION_IS_REGISTERED(language)){session_register("language"); $language = "german";}"
Wenn Du session_start() benutzt, kannst Du auch ganz einfach auf $_SESSION["language"] zugreifen. Davon abgesehen beißen sich die register-Funktionen anscheinend mit session_start(), also entweder session_start() und $_SESSION -oder- die session_register()-Familie, aber nicht beides zusammen.
Gruß,
soenk.e