Установить cookie без экранирования специальных символов - PullRequest
0 голосов
/ 10 мая 2011

Я обнаружил, что функция setcookie () экранирует специальные символы, такие как кавычки.Я решил эту проблему, очистив эти символы мусора:

$new_avt = str_replace("\'","",$_COOKIE['avatar']);
$new_avt = str_replace('alt=','',$new_avt);

Но я считаю это решение безобразным.Кроме того, как вы можете видеть, мне пришлось удалить свойство 'alt', поскольку я не мог правильно избавиться от символа escape внутри него.Единственное другое решение, к которому я пришел, - это написать закодированную строку в cookie, а затем декодировать ее при получении cookie.Будет ли это решение быстрее, чем str_replace ()?Есть ли лучшие методы?

Спасибо за ваше время.

1 Ответ

2 голосов
/ 10 мая 2011

Если вы храните большие объемы данных в файлах cookie, вы можете вместо этого рассмотреть возможность использования сеансов. Это сохраняет данные на сервере, а не отправляет их клиенту при каждом запросе. Любая переменная, которая может быть сериализована, может быть сохранена в переменной сеанса. Смотри http://www.php.net/manual/en/intro.session.php

...