Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как проверить наличие куков? (https://javascript.ru/forum/misc/81345-kak-proverit-nalichie-kukov.html)

StartGames 12.11.2020 14:40

Как проверить наличие куков?
 
Здравствуйте. Есть код:

<script type="text/javascript">
$(document).ready(function() {
let date = new Date(Date.now() + 86400e3);
date = date.toUTCString();
function getCookie(syslike) {
  let matches = document.cookie.match(new RegExp(
    "(?:^|; )" + syslike.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
  ));
  return matches ? decodeURIComponent(matches[1]) : undefined;
  syslike = getCookie('syslike');
  alert(syslike)
}

if (syslike = undefined) {
  document.cookie = "syslike=Y55YY56YY57Y; expires=" + date;
  alert(syslike)
}
});
</script>


По идее он должен создавать куки если их нету. Куки он создает, но мне нужно создавать их только в том случае, если их нет.

Пробовал условием:
if (syslike = undefined) {


Но ничего не получилось. :help:

рони 12.11.2020 15:44

Цитата:

Сообщение от StartGames
Пробовал условием:
if (syslike = undefined) {

где условие?

StartGames 12.11.2020 15:56

Цитата:

Сообщение от рони (Сообщение 530686)
где условие?

вот) просто я не сильно в этом разбираюсь))

if (syslike = undefined) {
  document.cookie = "syslike=Y55YY56YY57Y; expires=" + date;
  alert(syslike)
}

рони 12.11.2020 16:00

StartGames,
это скорее присвоение, а нужно условие, чего-то самую малость не хватает в строке 1.

StartGames 12.11.2020 16:07

if (syslike == undefined) {
  document.cookie = "syslike=Y55YY56YY57Y; expires=" + date;
  alert(syslike)
}


вот так?) если да, то пробовал - без резрезультатно...

рони 12.11.2020 16:24

StartGames,
проверять на своём сервере
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
let date = new Date(Date.now() + 86400e3);
date = date.toUTCString();
function getCookie(syslike) {
  let matches = document.cookie.match(new RegExp(
    "(?:^|; )" + syslike.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
  ));
  return matches ? decodeURIComponent(matches[1]) : undefined;
}
var syslike = getCookie('syslike');
alert(syslike);
if (!syslike) {
  document.cookie = "syslike=Y55YY56YY57Y; expires=" + date;
  alert(getCookie('syslike'))
}
});
</script>

StartGames 12.11.2020 16:58

Не знаю как, но работает))) Я же вроде так делал но эффекта не было(( Благодарю)

Пытаюсь вызвать событие клика по кнопке, и ищу в куках значение Y55Y оно там есть, но при клике не реагирует никак...

<script>
$(document).ready(function() {
let date = new Date(Date.now() + 86400e3);
date = date.toUTCString();
function getCookie(syslike) {
  let matches = document.cookie.match(new RegExp(
    "(?:^|; )" + syslike.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
  ));
  return matches ? decodeURIComponent(matches[1]) : undefined;
}
var syslike = getCookie('syslike');
alert(syslike);
if (!syslike) {
  document.cookie = "syslike=Y55YY56YY57Y; expires=" + date;
  alert(getCookie('syslike'))
}
});
</script>



<script type="text/javascript">
  $(document).ready(function() {
    $(document).on('click','#syslike',function(){

      if (syslike.indexOf('Y55Y') > -1){
        alert('есть')
      } else {
        alert('нет')
      }

    });
  });
</script>



<button id="syslike">but</button>

StartGames 12.11.2020 17:20

почему то не может увидеть поисковую фразу Y55Y в куках...
пробую вот так но безрезультатно...

if (syslike.indexOf('Y55Y') > -1){

рони 12.11.2020 17:22

StartGames,
где строка 4? смотреть строку 11 выше код.

StartGames 12.11.2020 17:30

вы имеете ввиду пропуски?

сделал так:
<script type="text/javascript">
  $(document).ready(function() {
    $(document).on('click','#syslike',function(){
      if (syslike.indexOf('Y55Y') > -1){
        alert('есть')
      } else {
        alert('нет')
      }
    });
  });
</script>


результата к сожалению это не дало... возможно дело в том что они в разных блоках <script type="text/javascript"> Хотя клик вызывается. Не проходит именно условие:

if (syslike.indexOf('Y55Y') > -1){
        alert('есть')
      } else {
        alert('нет')
      }


Часовой пояс GMT +3, время: 09:58.