PHP Cookie Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
alter code
anweisung
code
entwicklungszeit
ergebnis
funktion
gleiche code
helfen
http
kreisen
kunde
leiste
liefern
option
problem
session
setzen
sprache
tip
url
-
ini_set('session.cookie_lifetime',100); session_start(); if(isset($_GET["lang"])){ $langs = $_GET["lang"]; $_SESSION['langs'] = $langs; } elseif(isset($_SESSION["langs"])){ $langs = $_SESSION["langs"]; $_SESSION['langs'] = $langs; } else{ $langs = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); $_SESSION['langs'] = $langs; }
Ich bin am verzeilfeln das ist mein Code für die Kunden, die variable $langs ist später für soll später für sprach option zuständig sein.
Nun möchte ich eine Session setzen die langfristig den Kunden es ermöglich die Sprache einzustellen.
Hier mein Problem klick mal auf My Projects http://florianleonsteenbuck.lima-city.de/?lang=en
Die Leiste ist danach nicht mehr auf English.
Ich hoffe ihr könnt mir helfen
Beitrag zuletzt geändert: 29.4.2013 22:06:53 von florianleonsteenbuck -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
florianleonsteenbuck schrieb:
Warum setzt du nicht einfach ein »langlebiges« Cookie mit der Sprache?
Nun möchte ich eine Session setzen die langfristig den Kunden es ermöglich die Sprache einzustellen. -
Mein alter Code genau das gleiche:
if(isset($_GET["lang"])){ $langs = $_GET["lang"]; setcookie("langs", $langs,time()+3600*24,"florianleonsteenbuck.lima-city.de"); } if(isset($_COOKIE["langs"])){ $langs = $_COOKIE["langs"]; setcookie("langs", $langs,time()+3600*24,"florianleonsteenbuck.lima-city.de"); } else{ $langs = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); setcookie("langs", $langs,time()+3600*24,"florianleonsteenbuck.lima-city.de"); }
Oder der hier:
if(isset($_GET["lang"])){ $langs = $_GET["lang"]; setcookie("langs", $langs,time()+3600*24); } if(isset($_COOKIE["langs"])){ $langs = $_COOKIE["langs"]; setcookie("langs", $langs,time()+3600*24); } else{ $langs = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); setcookie("langs", $langs,time()+3600*24); }
Beitrag zuletzt geändert: 29.4.2013 22:01:05 von florianleonsteenbuck -
ini_set('session.cookie_lifetime',100); session_start(); if(isset($_GET["lang"])){ $langs = $_GET["lang"]; $_SESSION['langs'] = $langs; } elseif(isset($_SESSION["langs"])){ $langs = $_SESSION["langs"]; $_SESSION['langs'] = $langs; } else{ $langs = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); $_SESSION['langs'] = $langs; }
Bin dem Link auf deine Seite http://florianleonsteenbuck.lima-city.de/?lang=en gefolgt.
Die Variable $_GET["lang"] wird nicht übermittelt, deshalb wird dieser Codeteil übersprungen
if(isset($_GET["lang"])){ $langs = $_GET["lang"]; $_SESSION['langs'] = $langs; }
Ich gehe mal davon aus, dass $_SESSION['langs'] im obigen Teil initialisiert werden sollte, aber eben nicht wurde.
Folglich steht diese Variable nicht zur Verfügung und deshalb wird auch dieser Codeteil übersprungen.
Der Code ist ohnehin sinnlos, weil sich hier alles im Kreis dreht!
elseif(isset($_SESSION["langs"])){ $langs = $_SESSION["langs"]; $_SESSION['langs'] = $langs; }
Zuletzt wird diese Anweisung ausgeführt und wird als Ergebnis für $_SESSION['langs'] ="de" liefern.
else{ $langs = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); $_SESSION['langs'] = $langs; }
Tip:
Benutze in der Entwicklungszeit die PHP-Funktionen var_dump() oder print_r().
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage