$lang = filter_input(INPUT_GET, 'lang');
$route = filter_input(INPUT_GET, 'route');
if ( !$lang ) {
if ( isset($_COOKIE["language"]) ) {
$lang = $_COOKIE["language"];
} else {
$lang = 'nl';
}
header("Location: /$lang/$route");
}
Met andere woorden als $_Cookie{"language"] bestaat (nl, en, de) dan dient de uitgangs- taal (bij een tweede bezoek) de waarde van het Cookie te zijn (www.website.com/de/ of een van de andere twee), bestaat het Cookie nog niet zet de taal dan op Nederlands (www.website.com/nl/).
In de navigatie wil ik graag een taal dropdown hebben waar de Cookie taal de link voor de dropdown is:
<?php if (!isset($_COOKIE["lang"]) || isset($_COOKIE["lang"]) && $_COOKIE["lang"] == 'nl' ): ?>
<li class="nav-item dropdown">
<a id"languageDropdown" class="nav-link dropdown-toggle" href="#" data-toggle="dropdown">
<img src="/images/flaggs/nl.png"> Nederlands
</a>
<div class="dropdown-menu" aria-labelledby="languageDropdown">
<a href="/en<?php echo $current_route?>" class="dropdown-item">
<img src="/images/flaggs/uk.png"> English
</a>
<a href="/de<?php echo $current_route?>" class="dropdown-item">
<img src="/images/flaggs/de.png"> Deutsch
</a>
</div>
</li>
<?php elseif(isset($_COOKIE["lang"]) && $_COOKIE["lang"] == 'en'): ?>
// Zelfde als boven met Engels als uitgangs taal
<?php elseif(isset($_COOKIE["lang"]) && $_COOKIE["lang"] == 'de'): ?>
// Zelfde als boven met Duits als uitgangs taal
<?php endif; ?>
Ik kom er alleen niet uit op welk moment en waar ik het best het Cookie kan zetten. Zit me nu al een uur of wat rot te tobben. Iedere hulp zou ik zeer op prijs stellen.
[size=xsmall]Toevoeging op 30/09/2018 18:11:46:[/size]
Ik heb dit op de volgende wijze opgelost:
$lang = filter_input(INPUT_GET, 'lang');
$route = filter_input(INPUT_GET, 'route');
if ( !$lang ) {
if ( isset($_COOKIE["language"]) ) {
$lang = $_COOKIE["language"];
} else {
$lang = 'nl';
}
header("Location: /$lang/$route");
} else {
$lang = (string)$lang;
setcookie( 'language', $lang, time() + 60*60*24*365, '/' );
}
En dat werkt prima. Het enige probleem dat ik nu nog ondervind is de content voor de dropdown niet wijzigd, althans niet met gebruik van de header("Location") Als iemand bijvoorbeeld Engels kies veranderd de waarde van het Cookie naar en maar de nederlandse vlag met bijbehorende tekst blijven staan.
<img src="/images/flaggs/nl.png"> Nederlands
Als ik daarna de pagina handmatig ververs veranderd de content wel naar de engelse versie:
<img src="/images/flaggs/uk.png"> English
Hoe zou ik dit kunnen oplossen? Alvast bedankt