Моя функция воссоздает cookie, даже если он уже существует - PullRequest
0 голосов
/ 29 июля 2011

Здравствуйте, у меня есть проблема.

Я использую приведенную ниже функцию для создания файла cookie, когда никого нет в наличии.

Проблема в том, что когда браузер был закрыт и снова открыт, эта функция снова создает Cookie ... даже если он уже там есть. Поэтому каждый раз, когда пользователь открывает и закрывает браузер, этот файл cookie создается и создается еще раз ..

Это действительно плохо для меня. Как мне избежать этой проблемы?

Что не так в моей функции?

Спасибо

 <?php
  function GenerateTuittingID()
  {
      $todaydate = date('Ymd');
      $time = mktime(date('G'), date('i'), date('s'));
      $NowisTime = date('Gis', $time);
      $random_numbers = substr(number_format(time() * rand(), 0, '', ''), 0, 10);
      $random = $random_numbers . $todaydate;
      if (!isset($_COOKIE["tuittingID"])) {
          setcookie("tuittingID", $random, mktime(0, 0, 0, 12, 31, 2015));
      }
  }
?>

Ответы [ 3 ]

1 голос
/ 29 июля 2011

Cookie не может никогда быть создан снова и снова -

Если он уже существует, он будет перезаписан, в противном случае, если он не существует, он будет создан. убедитесь, что ваш браузер не удаляет куки при закрытии.

1 голос
/ 29 июля 2011

Я не вижу проблем с вашим кодом

  • проблема в браузере пользователя
  • есть другая проблема в другой части вашего скрипта
0 голосов
/ 29 июля 2011

1) Откройте настройки браузера, перейдите на Privacy.

2) Нажмите Use custom settings for history.

3) Убедитесь, что в выпадающем списке рядом с Keep Until указано They Expire. Если нет, обновите его и нажмите ОК.

4) Дайте мне знать, если это решило вашу проблему.

Редактировать (Только что увидел ваш комментарий)

Установите путь и домен для ваших файлов cookie, чтобы они были доступны со всего сайта:

setcookie("tuittingID", $random, mktime(0, 0, 0, 12, 31, 2015),
  '/', '.yourdomain.com');
...