Forum Moderators: coopster
<?php
session_start();
$session = $_SESSION['lang'];
$cookie = $_COOKIE['lang'];
$server = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
if ($session != null)
{
$language = $session;
}
elseif ($cookie != null)
{
$language = $cookie;
}
elseif ($server != null)
{
$languageArray = explode(",", $_SERVER["HTTP_ACCEPT_LANGUAGE"]);
$lang == "none";
foreach ($languageArray as $value)
{
while ($language != "none")
{
$langArray = substr($value, 0, 2);
switch ($langArray)
{
case "de":
$language = "en"; // should be "de"
break;
case "en":
$language = "en";
break;
case "es":
$language = "en"; // should be "es"
break;
case "fr":
$language = "en"; // should be "fr"
break;
case "is":
$language = "en"; // should be "is"
break;
}
}
if ($language == "none")
$language = "en";
}
}
else
{
$language = "en";
}
$_SESSION['lang'] = $language;
$_COOKIE['lang'] = $language;
?>
<p>Session: <?php echo $session; ?></p>
<p>_SESSION: <?php echo $_SESSION['lang']; ?></p>
<p>Cookie: <?php echo $cookie; ?></p>
<p>_COOKIE: <?php echo $_COOKIE['lang']; ?></p>
What's interesting is that instead of writing:
Session: is
_SESSION: is
Cookie: is
_COOKIE: is
I get:
Session:
_SESSION: is
Cookie: is
_COOKIE: is
In other words, the sesssion variable is always empty.