0

目前正在创建一个小型网站,我正在尝试在法语和英语之间添加一个多语言工具。但我面临一些问题。基本上,我有两个按钮,英语和法语来改变语言。但如果是第一次访问,则应设置默认语言(此处为法语)。

所以我创建了一个小脚本,它没有像我预期的那样工作......

if(!isset($_COOKIE['lang_ylx'])) {

 $timestamp_expiration = time()+30*24*3600 ;

if(!isset($_GET['lang'])) {                      
    setcookie('lang_ylx', 'fr',$timestamp_expiration, null, null, false, true);
}

else if ($_GET['lang']=='fr') {      // si la langue est 'fr' par le bouton de langue, on définit le cookie francais
    setcookie('lang_ylx', 'fr',$timestamp_expiration, null, null, false, true); //On définit un cookie de langue
    header('Location: index.php');  
} 

else if ($_GET['lang']=='en') { 
    setcookie('lang_ylx', 'en',$timestamp_expiration, null, null, false, true); 
    header('Location: index.php');  

}

该脚本会自动加载到 index.php 中并包含在内。现在,我只有 index.php 并且我正在尝试,当我单击例如英文按钮时,在 URL 中传递一个参数,然后更改 cookie 使其获得“en”值,然后返回 index.php .

我的 lang 文件是两个测试 cookie 值的巨大循环。但是每当我单击英语或法语按钮时,我都会停留在 lang.php,但它应该回到 index.php,并使用新的语言。

任何想法 ?

4

1 回答 1

1
$timestamp_expiration = time()+30*24*3600 ;
if(!isset($_COOKIE['lang_ylx'])) {
    //If you want your default to be english, use this:
    setcookie('lang_ylx', 'en', $timestamp_expiration, null, null, false, true);
    //French:
    setcookie('lang_ylx', 'fr',$timestamp_expiration, null, null, false, true);
}

/*if(!isset($_GET['lang'])) {                      
    setcookie('lang_ylx', 'fr',$timestamp_expiration, null, null, false, true);
}*/
//Comment out above because you're setting french every time llang isn't set.
if (isset($_GET['lang']){
    else if ($_GET['lang']=='fr') {      // si la langue est 'fr' par le bouton de langue, on définit le cookie francais
        setcookie("lang_ylx", "", time()-3600);
        setcookie('lang_ylx', 'fr',$timestamp_expiration, null, null, false, true); //On définit un cookie de langue
    header('Location: index.php');  
    } 

    else if ($_GET['lang']=='en') {
        setcookie("lang_ylx", "", time()-3600);
        setcookie('lang_ylx', 'en',$timestamp_expiration, null, null, false, true); 
        header('Location: index.php');  
    }
}

你有过:

  1. 一个}在错误的地方
  2. 不设置任何默认值
于 2013-08-15T13:13:35.483 回答