我正在使用Javascript设置Cookie以进行语言选择,因此网站使用该Cookie来获取所选的语言翻译。当有人在主登录页面上更改语言时,没有问题,但是如果您在之前更改了子页面上的语言之后再次更改了语言,则会写入第二个Cookie,例如,路径为/ contact。因此,正在创建具有不同lang值的双cookie,这会带来问题。我无法理解问题,因此任何帮助都会有所作为。谢谢
- cookie:lang = eng,path = / contact
- cookie:lang = fr,path = /
我正在使用的代码
<?php
$langs = array('en' => 'English',
'fr' => 'French'
);
function is_current_language($code)
{
return ($code == $_COOKIE['lang'])? 'selected="selected"': "";
}
?>
<select onchange="if(this.selectedIndex!=0) eraseCookie('lang');createCookie('lang',this.options[this.selectedIndex].value,30) ; location.reload()" name="userLanguage" id="userLanguage">
<?php foreach($langs as $code => $lang) { ?>
<option <?php echo is_current_language($code); ?> value="<?php echo $code; ?>">
<?php echo $lang; ?>
</option>
<?php } ?>
</select>
JavaScript
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function eraseCookie(name) {
createCookie(name,"",-1);
}