Я использую Javascript, чтобы установить cookie для выбора языка, поэтому веб-сайт использует этот cookie для получения перевода на выбранный язык.Когда кто-то меняет язык на главной целевой странице, проблем не возникает, но если вы измените язык на подстранице после того, как изменили ее ранее, он пишет второй файл cookie, например, путь / contact.Таким образом, создаются двойные куки с разными значениями lang, и это создает проблему.Я не мог понять проблему, поэтому любая помощь имеет значение.Спасибо
- 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);
}