Не может прочитать файл cookie, установленный с помощью PHP

У меня есть php, который устанавливает:

setrawcookie('psd_susenka', rawurlencode("cookie_value"), time() + (86400 * 365));

Я даже пробовал длинную версию с путями, доменами и переключателями (только http и безопасный, оба с ложными значениями)

затем после перезагрузки страницы у меня есть jquery:

$(document).ready(function(){
  alert(document.cookies);
})

Если установлен единственный файл cookie «psd_susenka», я получаю предупреждение с «Не определено». Если я установил другие файлы cookie с помощью $.cookie("test", something, { expires: 365 });, тогда предупреждение будет записывать только файлы cookie, установленные с помощью jquery.

Так что не так с PHP-кодом? Или, может быть, что-то не так с предупреждением jquery? Я загрузил <script type = "text/javascript" src = "//cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>, и файл cookie вручную проверен в Chrome, поэтому он существует.

вы устанавливаете куки в ajax или как?

I wrestled a bear once. 06.04.2018 21:58

Если вы перейдете на вкладку «Приложение» в Chrome Inspector, сможете ли вы увидеть файл cookie? Это безопасно?

Luca Colonnello 06.04.2018 22:04

Я рекомендую отказаться от файлов cookie и использовать сеансы и ajax

treyBake 06.04.2018 22:31

@LucaColonnello спасибо за предложение. Это небезопасно, но это только HTTP, даже если в php указано, что это не setrawcookie('psd_susenka', rawurlencode($psw), time() + (86400 * 365), NULL , NULL , NULL , 0);.

loqan 06.04.2018 22:59

Вместо того, чтобы устанавливать для этих необязательных параметров значение null, попробуйте просто пропустить их, как и setrawcookie('psd_susenka', rawurlencode($psw), time() + (86400 * 365), , , , FALSE);, почему вы просто не используете setcookie вместо ручного кодирования URL-адреса значения cookie?

Anthony 06.04.2018 23:13

Что ж, я не могу пропустить аргументы в PHP - по крайней мере, я так думал. Я пробовал «setcookie». Этот пример с setrawcookie - всего лишь вторая попытка, и я сохранил код таким образом

loqan 06.04.2018 23:20

Это действительно нервно. Я знаю, что только что узнал о пропуске аргументов за последние несколько недель, и теперь я только нахожу доказательства того, что ни php, ни JavaScript не поддерживают его. Но я не читаю документацию на других языках, так что мне это, должно быть, приснилось.

Anthony 07.04.2018 01:19

Убедитесь, что вы ничего не выводите перед вызовом - setrawcookie() and setcookie(). Также убедитесь, что у вас нет персонажа (ов) до <?php. Вывод перед этими функциями и тегом может привести к сбою настройки cookie.

Karlo Kokkak 07.04.2018 02:58
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
8
60
1

Ответы 1

Вероятно, у вас есть опечатка.

Попробуйте document.cookie вместо document.cookies.

Документация: https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie

P.S. document.cookie является частью WebAPI (см .: https://developer.mozilla.org/en-US/docs/Web/API). Это не часть jQuery и не часть JavaScript. JavaScript (также jQuery, потому что он работает только с JavaScript) может работать с WebAPI.

Ой ну спасибо. Пробовал по-прежнему возвращать только файлы cookie, установленные с помощью javascript, а не php.

loqan 06.04.2018 22:56

поскольку @Luca Colonnello предположил, что я проверил его с помощью вкладки Chrome Application, а файл cookie, установленный через PHP, - это только Http, даже когда я установил его на false setrawcookie('psd_susenka', rawurlencode($psw), time() + (86400 * 365), NULL , NULL , NULL , 0);

loqan 06.04.2018 22:58

Умник. (Я сказал это)

Anthony 06.04.2018 23:03

@loqan Твой код у меня работает, проверял неоднократно. Возможно, вы что-то не так делаете. Проверьте на новой странице, заново напишите эти простейшие операции.

Maxim Mandrik 06.04.2018 23:10

Другие вопросы по теме