2017-01-10 109 views
1

我有一個PHP的問題。在我的網站上,您可以選擇三種語言(法語,英語和德語)。如何在會話中存儲值php

我可以很容易地改變語言,但當我走到其他頁面時,它不記得我選擇哪種語言。

這是我的index.php頁面的開頭:

<?php 
session_start(); 
require("decide-lang.php"); 
$_SESSION = $lang; 
?> 
<!DOCTYPE html> 
<html lang="fr"> 
<head> 
    <?php include('include/head.php'); ?> 
</head> 
<body> 
    <!--Header--> 
    <?php include('include/header.php'); ?> 

這是我變化的代碼的語言:

<?php 
if (!empty($_GET['lang'])) { 
    $lang = $_GET['lang']; 
} elseif(isset($_COOKIE['lang'])) { 
    $lang = $_COOKIE['lang']; 
} else { 
    //default language of the navigator 
    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2); 
} 
//script d'origine 
if ($lang=='fr') {   
    include('lang/fr-lang.php'); 
} elseif ($lang=='en') {  
    include('lang/en-lang.php'); 
} elseif ($lang=='de') {  
    include('lang/de-lang.php'); 
} 

//fin du script d'origine 
//définition de la durée du cookie (1 an) 
$expire = 365*24*3600; 
// //enregistrement du cookie au nom de lang 
// setcookie('lang', $lang, time() + $expire); 

回答

1

簡單,獲取和設置語言的核心是這裏:

session_start(); 
if(isset($_GET['lang'])) 
    $_SESSION['lang'] = $_GET['lang']; //GET value from chosen lang 

if(!isset($_SESSION['lang'])) 
    $_SESSION['lang'] = 'fr'; //default case 

require_once 'lang/' . $_SESSION['lang'] . '-lang.php'; //include file dinamically 
+0

這是完美的。謝謝:) –

+0

不客氣:) – mariobros