ГРУППА КУРСА
|
Главная >
Учебник PHP >
КукиВ прошлой теме были рассмотрены сессии. Куки - это такой же способ хранения данных, но эти данные хранятся не на сервере, а на компьютере пользователя. Каждый браузер имеет своё место на диске для хранения файлов куки. Поэтому доступ к данным куки имеет только тот браузер, которые эти данные записал. Для сохранения куки в PHP используется функция setcookie(), которая отправляет куки на компьютер пользователя. setcookie (имя, значения, срок действия) Параметры:
имя - имя параметра, который записывается в куки значение - значение параметра, который записывается в куки. срок действия - время в секундах, после которого данные становятся недействительны и программа их не использует. Необязательный параметр. Если не установлен, то данные становятся недействительны после закрытия браузера. Для указания срока действия обычно используют функцию time(), и прибавляют к результату её работы нужное количество секунд. У функции также есть другие параметры, но они используются редко. Скрипты берут даннные куки из суперглобального массива $_COOKIE. При запуске каждого скрипта данные отправляются клиентом на сервер и записываются в массив. Создадим программу, которая будет записывать данные из куки в переменную, а затем записывать в куки то же значение. Смысл этого состоит в том, чтобы обновить срок действия куки. +
Скрипт работает так: в переменную записывается значение из массива $_COOKIE. При первом запуске значения не будет, ведь в куки ещё ничего не было отправлено. При следующих запусках в массиве будет значение, но только если у данных не закончился срок действия. А если срок действия закончился, то массив снова будет пустой. В следующей строке данные куки обновляются и для них устанавливается срок действия: 5 секунд с момента записи. Если между запусками скрипта пройдёт менее 5 секунд, то переменная будет содержать значение и оно выведется на экран. А если пройдёт больше 5 секунд, то срок действия куки закончится и данные в массив не будут записаны. Обратите внимание, 5 секунд должно пройти не с момента закрытия страницы, а с момента записи куки, то есть практически с запуска скрипта. Чтобы правильно использовать куки, нужно учитывать некоторые особенности. Функция setcookie() должна выполняться до отправки каких-либо данных клиенту. Если попытаться запустить её после отправки, то она выполнена не будет. После того, как куки отправлены, они не сразу отображаются в массиве $_COOKIE, потому что массив обновляется один раз при запуске скрипта.
Сессии и куки решают примерно одинаковые задачи. Каждый раз, когда нужно сохранить данные во время присутствия пользователя на сайте, программист решает, что для этого использовать, сессии или куки. Сессии более безопасны, ведь к данным, находящимся на сервере, получить доступ гораздо сложнее. Поэтому, если данные могут представлять какую-то ценность, то лучше использовать сессии. А если информация не важная, то её можно записывать в куки, чтобы не загружать сервер. Это может быть применено для хранения учётных данных пользователя, чтобы он мог зайти на сайт через какое-то время и ему не нужно было заново вводить логин и пароль, а он сразу заходил как зарегистрированный пользователь. |