Итак, из моего понимания PHP и файлов cookie, если я использую функцию setcookie()
, тогда я получаю файл cookie, который автоматически кодируется URL. И когда я иду в массив $_COOKIE
, я должен вернуть файл cookie, автоматически расшифрованный url. Проблема в том, что, по-видимому, декодирование файла cookie происходит дважды, когда я смотрю $_COOKIE
.
Скажем, у меня есть файл cookie, чье значение "Name | ID | Email", например:
Joe|123|[email protected]
Это будет закодировано как:
Джо% 7C123% 7Cmy% 2Bemail% 40somewhere.com
Обратите внимание, что знак плюса закодирован, поэтому теоретически я должен его вернуть, если я его расшифрую. Поскольку это автоматически выполняется в $_COOKIE
, я должен вернуть то, с чего я начал. Но вместо этого я возвращаюсь:
Joe | 123 | мой [email protected]
Обратите внимание на место, где раньше был плюс. Это то, чего я ожидал бы, если бы я запустил дополнительный urldecode()
в cookie. Но я не, поэтому я понятия не имею, почему я получаю пространство вместо плюса.
Еще один интересный поворот. Кажется, что обновление на странице дает правильный результат. Любые идеи, почему это так?
FYI, чтобы установить исходный файл cookie, я использую javascript и escape()
script для создания закодированной строки. Может ли это быть проблемой между javascript и PHP?
Мысли будут оценены.