2015-03-14 3 views
1

Я могу установить обычный файл cookie, как только установить имя, значение и срок действия. Но я не могу установить его в безопасный файл cookie или httpOnly cookie или оба.Как создать безопасный файл cookie? Я пробовал все, но все еще не работал

Вот мой код:

<?php 
setcookie("TestCookie", "CookieValue", 0, null, null, true, true); 
if(isset($_COOKIE["TestCookie"])){ 
    echo '$_COOKIE["TestCookie"] = '.$_COOKIE['TestCookie']; 
    session_id($_COOKIE["TestCookie"]); 
} 
else 
    echo "Sorry! Cookie TestCookie was not set."; 
?> 

Я искал в поисковой системе. Попробуйте все. Например, изменение настроек в php.ini и т. Д.

Он не обнаружил ошибки, но все равно не работает. Пожалуйста, ответьте на мой вопрос.

+0

Как вы проверяете, безопасно ли этот файл cookie или нет? –

+0

Действительно я не знаю. Я просто установил его как безопасный файл cookie, чтобы защитить значение cookie от хакера. Я имею в виду, что я защищаю файл cookie от того, кто крадет HTTP-заголовок между сервером и клиентом. –

+0

Чтобы защитить что-либо между сервером и клиентом, вы все равно должны использовать ssl (https), не так ли? –

ответ

0

Шестой аргумент setcookie гарантирует, что cookie будет установлен только для HTTPS-запросов. Установите значение false или убедитесь, что вы подключаетесь через HTTPS.

Также обратите внимание, что setcookie не будет изменять $_COOKIE, так как файлы cookie загружаются только один раз, перед выполнением скрипта.

Если вам нужно получить значение из переменной $_COOKIE, вы должны установить его вручную:

setcookie("TestCookie", "CookieValue", 0, null, null, true, true); 
$_COOKIE["TestCookie"] = "CookieValue"; 

Вы можете также обновить страницу, но это может создать цикл перенаправления для людей, которые имеют инвалидов печенье в их браузеры:

<?php 
setcookie("TestCookie", "CookieValue", 0, null, null, true, true); 
if(isset($_COOKIE["TestCookie"])){ 
    echo '$_COOKIE["TestCookie"] = '.$_COOKIE['TestCookie']; 
    session_id($_COOKIE["TestCookie"]); 
} 
else{ 
    header('Refresh: 0'); 
    exit(); 
} 
?> 
+0

Спасибо за ваш ответ! Не могли бы вы рассказать мне, как печатать значение cookie с «$ _COOKIE», когда cookie уже установлен. Мне всегда нужно обновить страницу еще раз, чтобы получить значение cookie. Еще раз спасибо! –

+0

Конечно, я отредактировал свой ответ с некоторыми решениями. –

Смежные вопросы