Arhn - архитектура программирования

JS устанавливает cookie, который не читается в PHP

Ладно, это сводит меня с ума. Я даже не смог заставить код отладки работать здесь.

Используя https://github.com/carhartl/jquery-cookie, я установил файл cookie:

var link=$.getQueryParam('q');
var cookie_name="project_"+q+"_diff";
$.cookie(cookie_name,true,{expires:7,path:'/'});

Я пытаюсь прочитать этот файл cookie в PHP-скрипте:

$cookie_name="project_".$q."_diff"; 
if($_COOKIE[$cookie_name]=='true') 
  {
    echo "<!-- Cookie Status is TRUE -->";
    // stuff
  }
else 
  {
    echo "<!-- Cookie Status is FALSE for cookie '$cookie_name' \n All cookies: ".print_r($_COOKIE,true)."\n-->";
    // Other stuff
  }

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

Результат исходного кода?

<!-- Cookie Status is FALSE for cookie 'project_80afd7a53462bb02dfd39e359ac3f291_diff' 
 All cookies: Array
(
)
-->

Я также выполнил в консоли следующее, основываясь на другом вопросе StackOverflow, и позже получил результат в консоли, но все еще не вывел его в JS.

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=/; domain=.compute.amazonaws.com";
}

Я не получаю НИКАКИХ файлов cookie обратно. Настройка немного странная (запуск PHP на отрендеренном шаблоне Jinja), но все остальные стандартные переменные работают, и мне просто нужно переключение пользователя на длинный сеанс, и файлы cookie кажутся очевидным (хотя и несовместимым) решением. Я открыт для предложений, если никто не может понять это ...

11.07.2013

  • Убедитесь, что браузер отправляет файл cookie на сервер. это будет в заголовке запроса. 11.07.2013
  • Одна из возможных причин: ваш код JS обслуживается из домена, отличного от кода PHP, и поэтому создаваемые им файлы cookie относятся к этому домену и недоступны для вашего кода PHP. 11.07.2013
  • Я только что закончил работу над этим и сделал все это на Javascript, который работает. Я думаю, это было из-за того, что заголовки и переменные обрабатывались в Python, который не передавал их как файл cookie в механизм PHP. 28.07.2013

Ответы:


1

У меня тоже есть эта проблема. Я решил это, удалив домен в описании файла cookie.

Пример:

document.cookie="username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/"; 

P.S. Я нахожу эту проблему в IE, Chrome и Opera. В файрфоксе работает.

07.04.2015
  • StackOverflow — англоязычный сайт. Пожалуйста, воздержитесь от использования других языков или переводов. Если интересно, есть русская версия: ru.stackoverflow.com 07.04.2015

  • 2

    поместите этот код на свою страницу index.php

    if(isset($_COOKIE['uniqueID'])=='')
    {
    $uniquenum = rand(1000, 10000);
    setcookie('uniqueID',$uniquenum,time() + (86400 * 7)); // 86400 = 1 day
    }
    

    чем получить значение cookie, используя

    if(isset($_COOKIE['uniqueID']) && !empty($_COOKIE['uniqueID']))
    {
    }
    
    11.07.2013
  • isset возвращает логическое значение, я не уверен, почему вы проверяете его на пустую строку 07.04.2015
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..