Warning: include() [function.include]: URL file-access is disabled in the server configuration in /usr/home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_wwwcookies.php on line 23

Warning: include(http://altcode.ru/include/style.php) [function.include]: failed to open stream: no suitable wrapper could be found in /usr/home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_wwwcookies.php on line 23

Warning: include() [function.include]: Failed opening 'http://altcode.ru/include/style.php' for inclusion (include_path='.:') in /usr/home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_wwwcookies.php on line 23

ALTCODE

Программирование - ALTCODE.ru   Все о языках программирования.

Assembler |  C  |  C++ |  Visual C++ |  C++ Builder |  C# |  Pascal |  Delphi |  BASIC |  Visual Basic |  Visual Basic .NET 
Java |  Perl |  Visual FoxPro |  Ruby |  PHP |  MySQL 
 Главная / PHP / Справочник по PHP (краткий)
Главная
Карта сайта
Наши партнеры
Контакты

<< предыдущая | в начало | следующая >>



Работа с WWW : Работа с Cookies

Немного теории

Cookie - это именованная порция информации, которая может сохраняться прямо в настройках браузера пользователя между сеансами. Причина, по которой применяются Cookies - большое количество посетителей вашего сервера, а также нежелание иметь нечто подобное базе данных для хранения информации о каждом посетителе. Поиск в такой базе данных может очень и очень затянуться, и, в тоже время, нет никакого смысла централизованно хранить столь отрывочные сведения. Использование Cookies фактически перекладывает задачу на плечи браузера, решая одним махом как проблему быстродействия, так и проблему большого объема базы данных с информацией о пользователе.

Самый распространенный прием применения Cookies - логин и пароль пользователя, использующего некотовые защищенные ресурсы вашего сайта. Эти данные, конечно же, между открытиями страниц храняться в Cookies, для того чтобы пользователю не пришлось их каждый раз набирать вручную заново.

У каждого Cookies есть определенное время жизни, по истечении которого он автоматически уничтожается. Существуют также Cookies, которые "живут" только в течение текущего сеанса работы с браузером.

Каждый Cookie устанавливается сценарием на сервере. Для этого он должен послать браузеру специальный заголовок вида:

Set-cookie: данные

Сценарии с других серверов, а также расположенные в другом каталоге, не будут извещены о "чужих" Cookies. Для них их словно и нет. И это правильно с точки зрения безопасности - кто знает, насколько секретна может быть информация, сохраненная в Cookies?
Получение Cookie

Предположим, сценарий отработал и установил какой-то Cookie, например, с именем Cook и значением Val. В следующий раз при запуске этого сценария (на самом деле, и всех других сценариев, расположенных на том же сервере в том же каталоге или ниже по дереву) ему передастся пара типа Cook=Val (через специальную переменную окружения). PHP это событие перехватит и автоматически создаст переменную $Cook со значением Val. То есть интерпретатор действует точно так же, как если бы значение нашего Cookie пришло откуда-то из формы. Та переменная, которую мы установили в прошлый раз, будет доступна и сейчас.
setcookie
Установка Cookie.

Синтаксис :
int setcookie(string $name [,string $value] [,int $expire] [,string $path] [,string $domain] [,book $secure])

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

Вызов setcookie() определяет новый Cookie, который тут же посылается браузеру вместе с остальными заголовками. Все аргументы, кроме имени, необязательны. Если задан только параметр $name (имя Cookie), то Cookie с указанным именем у пользователя удаляется. Вы можете пропускать аргументы, которые не хотите задавать, пустыми строками "". Аргументы $expire и $secure не могут быть представлены строками, а потому вместо пустых строк здесь нужно использовать 0.
Параметр $expire задает timestamp, который, например, может быть сформирован функциями time() или mktime().
Параметр $secure говорит о том, что величина Cookie может передаваться только через безопасное HTTPS-соединение.

Примеры:

// Cookie на одну сессию, т.е. до закрытия браузера
SetCookie("TextCookie","value");

// Эти Cookies уничтожаются браузером через 1 час после установки
SetCookie("TextCookie",$val,time()+3600);
SetCookie("TextCookie",$val,time()+3600,"/~rasmus/",".utoronto.ca",1);

После вызова SetCookie() только что созданный Cookie сразу появляется среди глобальных переменных как переменная с заданным в параметре $name именем. Она появиться и при следующем запуске сценария - даже если SetCookie() в нем и не будет вызвана.


<< предыдущая | в начало | следующая >>






Warning: include() [function.include]: URL file-access is disabled in the server configuration in /usr/home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_wwwcookies.php on line 85

Warning: include(http://altcode.ru/include/banners.php) [function.include]: failed to open stream: no suitable wrapper could be found in /usr/home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_wwwcookies.php on line 85

Warning: include() [function.include]: Failed opening 'http://altcode.ru/include/banners.php' for inclusion (include_path='.:') in /usr/home/virtwww/w_altcode-ru_ffd5b838/http/php/ssm/php_wwwcookies.php on line 85