|
|
|
| Как проверить включение cookie | |
|
|
|
|
|
|
|
для: Сашинька
(13.08.2011 в 22:21)
| | установить и прочитать
если прочиталось.... то включено | |
|
|
|
|
|
|
|
для: Valick
(13.08.2011 в 22:22)
| | Почему то сразу не срабатывает, а только на второй раз | |
|
|
|
|
|
|
|
для: Сашинька
(13.08.2011 в 23:42)
| | потому что так и должно быть | |
|
|
|
|
|
|
|
для: Сашинька
(13.08.2011 в 23:42)
| | Наверное потому что куки сначала читаются, а потом уже только устанавливаются. | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(14.08.2011 в 08:21)
| | звучит нелепо но так оно и есть
куки читаются и устанавливаются в заголовках
при обращении к странице браузер вместе со всеми заголовками передает куки если они существуют
ну а если это первое обращение то их нет и передавать нечего
потом скрипт выполняется и сервер выдает ответ браузеру в заголовках ответа и происходит установка кукисов и уже при следующем обращении браузеру есть что послать
[поправлено модератором] | |
|
|
|
|
|
|
|
для: Valick
(14.08.2011 в 09:31)
| | Eсть ли способ, установить cookie не используя setcookie("test","1") ?
Как сделать, что бы можно было прочитать на 100%? | |
|
|
|
|
|
|
|
для: Сашинька
(14.08.2011 в 13:48)
| | Можно при помощи JavaScript, но все-равно пользователь должен будет загрузить сначала страницу с сервера и лишь после этого будет установлена cookie. | |
|
|
|
|
|
|
|
для: cheops
(14.08.2011 в 19:10)
| | Правильно ли понят алгоритм,
1.JavaScript устанавливает при первом открытии cookie
2. После обращении к серверу, например отправкой формы, читаем возможность установки cookie.
Во время загрузки пользователем страницы PHP никак нельзя узнать возможность использования cookie, так да?
Только и только после окончания загрузки страницы и последующего чтения, можно узнать.
А если направить (до ответа пользователю, или во время загрузки)запрос куда-то в пустое место. | |
|
|
|
|
|
|
|
для: Сашинька
(15.08.2011 в 13:46)
| | 1. Что означает первое открытие cookie?
2. Если при установки cookie при помощи JavaScript у вас она не читается при помощи JavaScript - cookie не поддерживаются. Это можно проверить сразу без обращения к серверу.
PHP может узнать установлена cookie или нет только если ему придет/не придет соответствующий HTTP-заголовок. Т.е. он сначала просит клиента установить cookie при помощи Set-Cookie, а потом "смотрит" есть ли в ответе HTTP-заголовок Cookie и что в нем.
>А если направить (до ответа пользователю, или во время загрузки)запрос куда-то в пустое место.
Откуда? Если до клиента не дойдет HTTP-заголовок Set-Cookie, он ничего не установит, если клиент отправит заголовок другому серверу, он не получит Set-Cookie и значение, которое он должен установить в Cookie.
Проще всего проверить возможность установки cookie при помощи JavaScript - можно сразу не отходя от кассы удостоверится устанвливаются cookie или нет. | |
|
|
|
|
|
|
|
для: cheops
(15.08.2011 в 14:30)
| | >1. Что означает первое открытие cookie?
Выше вы писали
>пользователь должен будет загрузить сначала страницу с сервера
Ответ есть? Подразумевалась по тексту открытие страницы, а не cookie, как продолжение вашей мысли
Подскажите пожалуйста, почему не работает под денвером
http://www.softtime.ru/scripts/checkcookie.php
Ответ браузера
На этой странице обнаружена циклическая переадресация
Веб-страница cookie.php?cookie=1 привела к избыточному количеству переадресаций. Чтобы устранить эту проблему, можно удалить файлы cookie для этого сайта или разрешить файлы cookie независимых поставщиков. Если проблема сохранится, возможно, она связана с конфигурацией сервера, а не с вашим компьютером.
И под PHPedit тоже не работает. нужен хоть один рабочий вариант, а то путаница в голове | |
|
|
|
|
|
|
|
для: Сашинька
(15.08.2011 в 15:48)
| | Скрипт очень старый (хорошо, что обратили на него внимание, обновим в ближайшее время), нужно преобразовать $cookie в $_GET['cookie'], а $test в $_COOKIE['test']. | |
|
|
|
|
|
|
|
для: cheops
(15.08.2011 в 16:18)
| | Так он от старости не может работать?
Смешнее, когда с кем-то общаешься в жизни, с теоретиком, а он постоянно ссылаясь на теоретиков, человека практика записывает в дураки.
Еще смешнее, когда в институте все такое дают, а теоретик свято верит и борется за правду.
Очень смешно, когда кругом одни теоретики, но давным давно они были практики по использованию ошибок и не проверили теорию до конца.
Совсем смешно, когда вся страна изучив отрицательный опыт прошлого, принимает его за положительное и начинает все крушить вокруг.
Извините если шутка кажется глупыми и неуместными. Пусть тогда модератор удалит.
Весь интернет из этого примера на эту тему. Все переписывают не проверяя.
Получается любая глупость в инете может быть, что мы и имеем.
То что вы сказали-заработало в денвере, а в браузере ни фига.
В браузере тоже самое пишет.
Можно ли использовать для поставленных целей, а то уже голова запарилась от комбинаций?
Подскажите пожалуйста. | |
|
|
|
|
|
|
|
для: Сашинька
(15.08.2011 в 16:37)
| | Пусть тогда модератор удалит.
Хеопс и есть модератор) и автор множества книг и создатель этого форума)
вам просто нужна хорошая книга, чтобы последовательно изучить язык, без этого у вас в голове еще долго будет каша | |
|
|
|
|
|
|
|
для: Valick
(15.08.2011 в 17:15)
| | Там написано, что у вас ошибка. А книга есть, с двумя словами не в эту тему и еще больше 10000 страниц, на другие темы.
А мне надо, после получения заполненной формы на сервере, узнать есть ли кука у пользователя и если нет, то отказать посетителю. А дискутировать можно вечно о том что для этого надо.
Не плохо бы понять, как сделать, что-бы код, приведенный в книгах по проверке включения кук должен работать, если он ни у кого не работал.
Можете для опоры и предметного общения пример привести? | |
|
|
|
|
|
|
|
для: Сашинька
(15.08.2011 в 18:50)
| | Посмотрите новый пример http://www.softtime.ru/scripts/checkcookie.php. Лучше эту задачу не решать средствами PHP - не очень удобно, cookie находятся на стороне клиента, поэтому и задачу проверки того факта включены ли они, удобнее делать на стороне клиента (сервер можно известить по AJAX-каналу). | |
|
|
|
|
|
|
|
для: cheops
(15.08.2011 в 19:20)
| | Спасибо за целебную помощь.
В книге тоже ошибка, но там уже другого рода, на лицо прогресс.
Дайте опорный пример JavaScript для опредмечивания темы, а то мы уже книги исследуем.
Мне принцип механики стал понятен, но отправная точка в пустоте.
В моем случае, наверное, при отправке формы, мне надо послать куку в пустое окно, а потом на серваке попытаться прочитать? | |
|
|
|
|
|
|
|
для: Сашинька
(15.08.2011 в 19:31)
| | На JavaScript проверить существование cookie можно, отталкиваясь от следующего примера
<html>
<head>
<script>
function loadpage()
{
var obj = document.getElementById ('id_cookie');
if(obj)
{
// Устанавливаем cookie
setcookie("ckeck_cookie", 1);
// Извлекаем cookie
var cookie = getcookie("ckeck_cookie");
if(cookie != "1")
{
obj.innerHTML = 'У вас отключены cookie, ряд возможностей сайта вам будут не доступны';
}
else
{
obj.innerHTML = 'У вас включены cookie, сейчас мы вас ограбим';
}
}
}
// Устанавливаем cookie
function setcookie(name, val)
{
var putdate = new Date();
// Устанавливаем cookie на год
putdate.setTime(putdate.getTime() + (86400 * 365));
document.cookie = name + "=" + val + "; expires=" + putdate.toGMTString() + "; path=/";
}
// Извлекаем cookie
function getcookie(name)
{
var re = new RegExp(name + "=([\\d])", "i");
arr = re.exec(document.cookie);
return arr[1];
}
</script>
</head>
<body onload='loadpage()'>
<div id='id_cookie'></div>
</form>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: cheops
(16.08.2011 в 10:49)
| | Огромное спасибо.
Практическим испытаниям сейчас нет времени, но есть уверенность.
Для меня, именно для меня, эта Ваша помощь конкретна и бесценна.
Ваша помощь позволила мне прекратить бесплодные поиски в просторах интернет, создала у меня ощущение ясной законченности, устранила блуждания в лабиринте потёмков, создала мне твердую почву, на которой можно выстраивать мощную структуру проекта.
Я надеюсь, верю и в этом убежден, что этот ход развития задачи ПРОВЕРКИ ВКЛЮЧЕНИЯ КУК будет полезен многим начинающим и опытным программистам.
Вечером попробую силу практики и полезность кода, который думаю можно оформить в виде законченного, выделенного модуля.
З,Ы. Вроде локально не должно работать в браузере Google Chrome | |
|
|
|
|
|
|
|
для: cheops
(15.08.2011 в 19:20)
| | Все работает.
Оригинальное решение.
А где, в какой папке, можно куку увидеть, если под денвером и если на сайте? | |
|
|
|
|
|
|
|
для: Сашинька
(15.08.2011 в 21:01)
| | От браузера зависит... все складируют в разных местах (кроме того, сессионные куки вообще не записываются на жесткий диск, а хранятся в оперативной памяти). Вы каким браузером пользуетесь? | |
|
|
|