Кукопроверка
setcookie("test","1");
If ($_COOKIE['test']==1) {
echo "Включены";
}
else {
echo "Выключены";
}
Мне все время пишет что выключены, хотя в реальной жизни все наоборот. Проверял под IE6 и Мозиллой.
На PHP.NET при обсуждении функции setcookie возникла бурная дискуссия. Я не совсем ее понял. Народ там пишет, про политику Майкрософт P3P и что прежде чем проверять возможность установки куки, необходимо на сервер отправить некий заголовок. Зачем? И как вообще решить проблему с проверками кук на включенность или выключенность?
При первой загрузке выдает что куки выключены, а при перезагрузке выдает что куки включены, и при всех дальнейших перезагрузках тоже что включены.
в чем дело сказать затрудняюсь :)
Вот так.
У меня ИЕ 6.0
setcookie добавляет в HTTP заголовок строку устанавливающую Cookies. Броузер анализирует ее и сохраняет значение у себя. При последующем обращении к вашим страницам он добавляет в HTTP заголовок информацию о Cookie.
Другими словами, Cookies нельзя проверять в тот момент когда вы обращаетесь. Можно проверить только при последующих обращениях.
См: [phpdoc]setcookie[/phpdoc], [phpdoc]header[/phpdoc], RFC2065
Проблема в том что вы не понимаете принципа работы Cookies.
Согласен. Именно поэтому я и задал этот вопрос.
Окей. Тогда простой пример. Допустим, юзер пришел на страницу моего сайта и передо мной стоит задачка узнать включены ли у него куки.
Получается... Я не могу этого сделать без refresh страницы?
Я прошу прощения за тупые вопросы, но я действительно хочу НАУЧИТЬСЯ, а не пофлудить в форуме.
Или две страницы, или JavaScript.
Спасибо, Майк. Эту тему я вроде догнал. Расскажи, пожалуйста, что такое P3P header и нужен ли он? Может можно обойтись простым setcookie?
Обрати внимаение, на этой странице, в MSIE, есть глаз со знаком "кирпич". Это как раз из-за того, что некоторые картинки загружены без P3P
Майк, подскажи, пожалуйста, как можно с помощью cookie распознать на сайте уникального посетителя? Пресловутая перезагрузка страницы не дает осуществить те планы, которые были задуманы.
От java script для определения кук хотелось бы отказаться...
Хорошо. Это тоже вполне понятно.
Майк, подскажи, пожалуйста, как можно с помощью cookie распознать на сайте уникального посетителя? Пресловутая перезагрузка страницы не дает осуществить те планы, которые были задуманы.
От java script для определения кук хотелось бы отказаться...
Без JavaScript или промежуточных страниц никак.
Без JavaScript или промежуточных страниц никак.
Майк, а так можно?
<?
session_start();
if (!isset($_SESSION['temp_session']))
{
$_SESSION['temp_session']="123456789";
setcookie("test","1");
header("Location: http://xxxx.ru/xxxx/xxx.php']");
}
else
{
unset($_SESSION["temp_session"]);
session_destroy();
if(!$_COOKIE['test'])
{
echo("Cookies выключены");
}
else
{
echo("Cookies включены");
}
}
?>