Поиск по сайту
PHP Поиск
- фильтры очистки воды заказ
Cookie в PHP
setcookie() определяет куку для отправки вместе с остальной header-информацией. Куки обязаны быть отправлены до любых других шапок/headers (это ограничение кук, а не РНР). Это требует, чтобы вы помещали вызовы этой функции перед первым выводом на страницу, т.е. до тэга <html>.
int setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
Все аргументы, кроме name, являются необязательными. Если имеется только аргумент name, кука с этим именем будет удалена с удалённого клиента. Вы можете также заместить любой аргумент пустой строкой (""), чтобы пропустить этот аргумент. Аргументы expire и secure это целые числа/integer и они не могут быть пропущены с помощью пустой строки. В них используйте нуль (0). Аргумент expire это обычное Unix time integer, возвращаемое функциями time() или mktime(). Аргумент secure указывает, что данная кука должна передаваться только через секретное HTTPS-соединение.
После того как куки установлены, доступ к ним может быть получен при загрузке следующей страницы через массив $_COOKIE (который вызывается $HTTP_COOKIE_VARS в версиях PHP до 4.1.0).
Обычные ловушки:
Куки будут невидимы до тех пор, пока не будет загружена следующая страница.
Куки обязаны быть удалены с теми же параметрами, с которыми были установлены.
В PHP 3 множественные вызовы setcookie() в том же скрипте могут быть выполнены в реверсном порядке. Если вы пытаетесь удалить одну куку до вставки другой, вы должны сделать вставку до удаления. В PHP 4 множественные вызовы setcookie() выполняются в порядке вызова.
Далее идут примеры отправки кук:
Пример 1. Отправка кук функцией setcookie()
setcookie ("TestCookie", $value);
setcookie ("TestCookie", $value,time()+3600); // период действия - 1 час
setcookie ("TestCookie", $value,time()+3600,
"/~rasmus/", ".utoronto.ca", 1);
При удалении куки вы должны убедиться, что дата окончания действия прошла, чтобы переключить механизм в вашем браузере. Далее идут примеры удаления куки, созданной в предыдущем примере:
Пример 2. Удаление куки с помощью setcookie()
// установить дату окончания действия на один час назад
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600,
"/~rasmus/", ".utoronto.ca", 1);
Пример 3. Удаление всех кук
foreach($_COOKIE as $ind=>$val) @setcookie($ind,'',time()-999, "/", ".".$_SERVER['SERVER_NAME'] );
Пример 4.
Обратите внимание, что часть value куки будет автоматически urlencoded при отправке куки, и, когда она получена, она автоматически декодируется и присваивается переменной с тем же именем, что и имя куки. Для просмотра содержимого нашей тестовой куки в скрипте просто используйте один из следующих примеров:
echo $TestCookie; echo $_COOKIE["TestCookie"];
Пример 5.
Вы можете также установить куки массива, используя нотацию в имени куки. Это даёт эффект установки стольких кук, сколько элементов в этом массиве, но, когда кука получается скриптом, значения помещаются в массив с именем куки:
setcookie ("cookie[three]", "cookiethree");
setcookie ("cookie[two]", "cookietwo");
setcookie ("cookie[one]", "cookieone");
foreach($_COOKIE as $name=>$val) {
echo "$name = $value<br>\n";
}
Пример 6.
Если у Вашего сервера два доменных имени: "www.domain.com" и "other.domain.com", и Ваш аккаунт позволяет Вам обслуживать страницы из каталога ~/myhome, Вы должны вызывать функцию setcookie() следующим образом:
setcookie('name', $value, time()+3600, '~/myhome', '.domain.com');
Пример 7. Счетчик в куки с помощью setcookie()
// Демонстрация работы с $_COOKIES.
// Вначале счетчик равен нулю.
$count = 0;
// Если в Cookies что-то есть, берем счетчик оттуда.
if (isset($_COOKIE['count'])) $count = $_COOKIE['count'];
$count++;
// Записываем в Cookies новое значение счетчика.
setcookie("count", $count, 0x7FFFFFFF, "/");
// Выводим счетчик.
echo $count;
О куках дополнительно смотрите спецификацию Netscape.
Microsoft Internet Explorer 4 с Service Pack 1 некорректно работает с куками, которые имеют установленный параметр path.
Netscape Communicator 4.05 и Microsoft Internet Explorer 3.x обрабатывают куки некорректно, если path и time не установлены.
Ещё примеры работы с cookie на PHP
Читать дальше: Сесии в PHP
Cистемы хранения данных обеспечивают надежное хранение и оперативный доступ к корпоративной информации и подходят как для небольших, так и для крупных компаний, в которых есть необходимость в круглосуточной доступности и надежном хранении данных.
Популярное:
- Генератор Sitemap
- Отправить SMS
- Генератор Robots.txt
- Полезные ссылки
- Чей IP-адрес?
- Чей домен?
- Где телефон?
- Примеры Ajax
- Примеры PHP
- Примеры Javascript
- Примеры HTML, CSS
- Справочник PHP
- GIF-аниматор
- Сайт в ТОП
Содержание:
- HTML
- JavaScript
- PHP + MySQL
- Введение в PHP
- Основы языка
- Использование
массивов - $_server
- Создание функций
- Строки
- Функции работы
со строками - Объектное
программирование - Формы
- Файлы
- MySQL
- Cookie
- htaccess
- Безопасность
- Сессии
- Отправка почты
- Кэширование
- Дата, время
- Математические
функции - Дополнительные
возможности - Регулярные
выражения - Библиотека Curl
- IMAP, POP3, NNTP
- Оптимизация
- Примеры скриптов
- XML + XSLT
- AJAX
- Графика CorelDRAW
- SEO
- Сервисы
- Разное
- Шаблоны сайтов
Новое за неделю
Сейчас на сайте: 489