Talen keuze dmv sessie en get
(het voorbeeld is een iets ander script, dat komt omdat ik dit onderstaande script ietsje heb aangepast voor gebruiks vriendelijkheid) Ik heb dit scriptje zelf ook gebruikt naar mate ik het handiger vond om meerdere talen bezoekers te trekken. (hoeft niet meer, maar toch is het handig). dit scriptje is dan voor beginners, maar altijd handig. Dit script slaat de taal van de get op in de sessie mits hij in de array $taal_oke staat, dus dat scheelt vreselijk veel gets in links. Hoe werkt het om dit script heen? maak een folder genaamd talen zet daarin de php bestanden genaamd taal_en.php en taal_nl.php (deze worden dan ge-include) talen_en.php talen_nl.php dit kan met natuurlijk meerdere pagina's zo word het opgeroepen op home.php Je kunt deze pagina het makkelijkst opslaan als talen_selector.php en dan in je pagina's zetten: include_once('talen_selector.php'); (als je een include script gebruikt moet je het op de pagina doen waar je ze op include!!) De pagina kan opgevraagd worden met pagina.php?taal=en of welke taal je wilt mocht er iets niet werken hoor ik het graag
<?php
session_start();
// wil je de pagina gedefineerd hebben (dus de verwijzing pagina waar je naar toe gaat als de taal niet toegestaan is), of zelf laten uitzoeken?
// voor include scripts is het beter om zelf te defineren.
// settings
$taal_rdr = true; // false als je het zelf wilt instellen waar je op terecht komt
$taal_doc = 'index.php'; // dit is alleen als taal_rdr false is
$taal_oke = array('en','nl'); // de talen die toegestaan zijn (tevens ook de pagina taal_land.php
$taal_std = 'nl'; // standaard taal
//////////////////////////////////////////////////////////
// hier niets veranderen als je niet weet wat je doet!! //
//////////////////////////////////////////////////////////
if($taal_rdr)
{
$pagina = $_SERVER['PHP_SELF'];
$taal = $taal_st;
}
else
{
$pagina = $taal_doc;
$taal = $taal_st;
}
// als er een taal bestaat in de get, geef hem dan aan $taal en de sessie
if(isset($_GET['taal']))
{
$taal = $_GET['taal'];
$_SESSION['taal'] = $taal;
}
// als er een taal sessie bestaat, geef em dan aan $taal
elseif(isset($_SESSION['taal']))
{
$taal = $_SESSION['taal'];
}
// anders is de sessie $taal
else
{
$_SESSION['taal'] = $taal;
}
// als $taal in de array staat, dan include hij talen/taal_gekozen taal.php
if(in_array($taal, $taal_ok))
{
include('talen/taal_'.$taal.'.php');
}
// als hij er niet in staat, dan is sessie leeg en word je redirected naar de juiste pagina
else
{
$_SESSION['taal'] = '';
header('location:'.$pagina.'?taal='.$taal_std.'');
}
?>
Reacties
0