目前正在创建一个小型网站,我正在尝试在法语和英语之间添加一个多语言工具。但我面临着一些问题。基本上,我有两个按钮,英语和法语来改变语言。但如果是第一次访问时间,则应设置默认语言(此处为法语)。
所以我创建了一个小脚本,它不像我期望的那样工作......
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');
}
该脚本会自动使用带有include的index.php加载。现在,我只有index.php而且我正在尝试,当我点击例如英文按钮时,在URL中传递参数,然后改变cookie以使其获得'en'值,然后返回index.php
我的lang文件是两个测试cookie值的巨型循环。 但是每当我点击英文或法文按钮时,我都会被lang.php困住,但它应该回到index.php,并且会有新的语言。
任何想法?
答案 0 :(得分: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');
}
}
你有: