голосование
PHP
Javascript
BASH
HTML
Firebird
Программы
Хостинг
Майнинг
Ресурсы
GIT
SEO
Oracle
Python
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Куки $_COOKIE в PHP

Раньше я не знал как передавать значение переменных из одной страницы в другую. Для этих целей я использовал GET - передачу данных. Это не совсем удобно если передаёте большое количество переменных. Ваш url-адрес будет слишком длинным. При передаче данных через массив куки $_COOKIE все данные будут храниться в ассоциативном массиве. Хочу рассказать о плюсах кук. Сколько бы тысяч элементов не содержал массив $_COOKIE он будет сохраняться в памяти вашего компьютера. В этом случае ваш сервер с сайтами не перегружается. Сколько бы тысяч пользователей не было вы не нагрузите ваш сервер данными пользователя. Если у вас в массиве 100 элементов и посещаемость равна 1000 уникальных посетителей в сутки, то в вашей базе данных или в сессии будет храниться 100х1000 = 100 000 элементов. Лучше хранить эти данные в куках. Перегружать базу данных не стоит. Для того чтобы данные в куках хранились 1 месяц вы должны выставить время жизни конкретной куки в функции setcookie(). В примере используется значение IP из массива $_SERVER PHP.


$value1 = date("Y-m-d H:i:s");
$value2 = 'Egor';
$value3 = $_SERVER['REMOTE_ADDR']; 
//устанавливаю на 1 месяц
setcookie('paramOne', $value1, time()+2592000);
setcookie('user', $value2, time()+2592000);
setcookie('ip-adres', $value2, time()+2592000);
print_r($_COOKIE);
/*
Array
(
    [paramOne] => 2015-07-25 21:02:30
    [user] => Egor
    [ip-adres] => Egor
)
*/

Вы можете удалить куки с помощью функции unset(). Можно удалить как весь массив, так и его определённый элемент. Функция unset() несколько странно работает. Как только вы её примените и передадите в входной параметр функции нужный массив или элемент массива, то вы удалите на время этот массив. Для текущего места где работает эта функция куки будут удалены, но в других частях вашего сайта куки снова появятся. Вам лучше не удалять подобным образом куки. Есть способы более надёжные. Надёжный способ удаления кук состоит в том, что их можно очистить от данных. Вы можете очистить весь массив от элементов, но при этом сам массив останется.


//заменяем пустотой
setcookie('', '');
/*устанавливаем второй параметр пустым 
и переводим время на 1 час назад*/
setcookie('paramOne', '', time()-3600);
//удаляю весь массив куки
foreach($_COOKIE as $key=>$val)
{
    setcookie($key, '', time()-3600);
}
//если предыдущий способ не сработал
foreach($_COOKIE as $key=>$val)
{
    unset($_COOKIE[$key]);
}

Для распечатывания массива $_COOKIE используйте функцию print_r(); Я хочу вам показать на картинке как хранить данные. Вы решите сами в каком виде хранить данные. Либо это будут сессии, либо куки, либо база данных.

сохранение информации в куки $_COOKIE и сессий $_SESSION

Помните о том, что куки в некоторых браузерах отключают и вы должны предупредить пользователя о том что информация записывается в куки. Если вы администратор сайта и данные которые нужно хранить предназначены для маленькой группы людей, то записывайте их в сессиях. Так будет надёжнее. Информацию для модераторов и администраторов не храните в куках. Это очень опасно.

Если у вас сайт-резинка и вы храните информацию о персональных настройках вашего сайта, то сохраняйте настройки в куках. Их будет много и в случае потери пользователь снова сделает необходимы настройки на сайте. Новые данные снова запишутся к нему на компьютер. Некоторые программисты записывают данные в базу данных MySQL. Учтите что при большой посещаемости база сильно разрастётся и прибавит в весе. Причем в этом случае важной информации будет мало, а основную часть базы будет занимать второстепенная информация.

просмотры: 2068, уровень: лёгкий уровень, рейтинг: 5, дата: 2015-07-25 20:00:00
проголосовать:

Комментарии:






поиск
сайты друзей
банеры
сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://ping-admin.ru/index_5659.html мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://www.2domains.ru домен RU домен RU всего за 99 рублей
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.