Het kiezen van de voorkeur taal werkt goed maar zodra ik een andere link klik uit het menu van mijn site en daarna op een taal keuze knop dan werkt het niet meer.
Wie heeft hier een oplossing voor?
<?php
session_start();
if(isset($_COOKIE["langset"])){
$_SESSION['lang'] = $_COOKIE["langset"];
}
// Bevat de URL-variabele 'lang' niet minstens 2 tekens voor een
// korte taalcode, gebruik dan de HTTP-header 'Accept-Language':
if ((strlen($_SESSION['lang']) < 2) and (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))) {
$_SESSION['lang'] = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
}
// $_SESSION['lang'] omzetten in kleine letters:
$_SESSION['lang'] = strtolower($_SESSION['lang']);
// Stel standaard taal in (indien deze nog niet is ingesteld)
if(isset($_SESSION['lang']) == false)
{
$_SESSION['lang'] = 'en';
}
// Gebruik reguliere expressies om langere taalvoorkeuren
// te verwerken.
if (ereg("en", $_SESSION['lang'])) {
$_SESSION['lang'] = "en"; // Engels
} elseif (ereg("nl", $_SESSION['lang'])) {
$_SESSION['lang'] = "nl"; // Nederlands
} elseif (ereg("de", $_SESSION['lang'])) {
$_SESSION['lang'] = "de"; // Duits
} else {
$_SESSION['lang'] = "en"; // Engels
}
if(isset($_GET['lang'])) // Kijk of de gebruiker de taal wil wijzigen
{
$lang= strtolower(trim($_GET['lang']));
if(in_array($lang, array('nl', 'de', 'en'))) // Kijk of de taal beschikbaar is binnen deze website
{
$_SESSION['lang'] = $lang;
}
}
// Taalcode voor HTTP en HTML, en paginatitel instellen:
switch ($_SESSION['lang']) {
case "nl": // Nederlands
$taalcode = "nl";
$title = "Talen in Europa";
break;
case "en": // Engels
$taalcode = "en";
$title = "Languages in Europe";
break;
case "de": // Duits
$taalcode = "de";
$title = "Sprachen in Europa";
break;
default: // Engels is de standaardinstelling
$taalcode = "en";
$title = "Languages in Europe";
}
// HTTP-headers instellen:
if (!headers_sent()) {
header("Content-Language: " . $taalcode);
header("Content-Type: text/html; charset=iso-8859-1");
}
setcookie ("langset", $_SESSION['lang'], time()+3600*24*365);
$pup = $_SERVER['REQUEST_URI'];
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="<?php echo $taalcode; ?>">
<head>
<meta http-equiv="Content-Language" content="<?php echo $taalcode; ?>">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title><?php echo $title; ?></title>
</head>
<body lang="<?php echo $taalcode; ?>">
<a href="?pag=pag1">pag 1</a> | <a href="?pag=pag2">pag 2</a><br><br>
<form action="/" method="get">
<select name="newlanguage" onChange="top.location.href=this.options[this.selectedIndex].value">
<option value="<?php if ($pup == "/test-4" || $pup == "/test-4/" || $pup == "/test-4/index.php"){ echo "?lang=nl"; } else { echo $_SERVER['REQUEST_URI']."&lang=nl"; } ?>" <?php if ($_SESSION['lang'] == nl){ echo "selected"; } ?>>Nederlands</option>
<option value="<?php if ($pup == "/test-4" || $pup == "/test-4/" || $pup == "/test-4/index.php"){ echo "?lang=en"; } else { echo $_SERVER['REQUEST_URI']."&lang=en"; } ?>" <?php if ($_SESSION['lang'] == en){ echo "selected"; } ?>>English</option>
<option value="<?php if ($pup == "/test-4" || $pup == "/test-4/" || $pup == "/test-4/index.php"){ echo "?lang=de"; } else { echo $_SERVER['REQUEST_URI']."&lang=de"; } ?>" <?php if ($_SESSION['lang'] == de){ echo "selected"; } ?>>Deutch</option>
</select></form>
<br>
<?php
$id = $_GET['pag'];
switch($id) {
case "index":
if ($_SESSION['lang'] == nl){
include ("includes/languages/dutch.php");
}
if ($_SESSION['lang'] == en){
include ("includes/languages/english.php");
}
if ($_SESSION['lang'] == de){
include ("includes/languages/german.php");
}
break;
case "pag1":
if ($_SESSION['lang'] == nl){
include ("includes/languages/dutch.php");
}
if ($_SESSION['lang'] == en){
include ("includes/languages/english.php");
}
if ($_SESSION['lang'] == de){
include ("includes/languages/german.php");
}
break;
case "pag2":
if ($_SESSION['lang'] == nl){
include ("includes/languages/dutch2.php");
}
if ($_SESSION['lang'] == en){
include ("includes/languages/english2.php");
}
if ($_SESSION['lang'] == de){
include ("includes/languages/german2.php");
}
break;
default:
if ($_SESSION['lang'] == nl){
include ("includes/languages/dutch.php");
}
if ($_SESSION['lang'] == en){
include ("includes/languages/english.php");
}
if ($_SESSION['lang'] == de){
include ("includes/languages/german.php");
}
break;
}
?>
</body>
</html>