Неправильный путь cookie на Javascript - PullRequest
0 голосов
/ 28 апреля 2019

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

  1. cookie: lang = eng, path = / contact
  2. 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...