Работа с cookie
Cookie — небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере пользователя. Браузер всякий раз при попытке открыть страницу соответствующего сайта пересылает этот фрагмент данных веб-серверу в составе HTTP-запроса. Применяется для сохранения данных на стороне пользователя, на практике обычно используется для:
- аутентификации пользователя;
- хранения персональных предпочтений и настроек пользователя;
- отслеживания состояния сеанса доступа пользователя;
- ведения статистики о пользователях.
Получать и записывать cookie можно как с помощью JavaScript, так и при помощи PHP. Рассмотрим эти варианты:
JavaScript и Cookie
<script>
//Функция получения куков
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^s+|s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}
//Функция записи куков (имя, значение, время_жизни_в_днях)
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
//Если в конце убрать + "; path=/", то кук будет доступен только для текущей страницы
//Если не убирать, то кук будет доступен для любой страницы в пределах домена
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString() + "; path=/");
document.cookie=c_name + "=" + c_value;
}
//Запишем кук с именем "recorded_hash" со значением "jy7b21c876b23476h"
setCookie("recorded_hash","jy7b21c876b23476h",365); //Кук будет жить 365 дней
//Прочитаем значение кука "recorded_hash" в соответствующую переменную
var recorded_hash=getCookie("recorded_hash");
alert (recorded_hash);
</script>
PHP и Cookie
<?php
/*
Запишем кук с именем "recorded_hash" со значением "jy7b21c876b23476h"
и временем жизни 365 дней (60*60*24*365=31536000 сек).
Параметр "/" означает что кук будет доступен для всех страниц в пределах
текущего домена. Если его убрать, кук будет доступен только для текущей страницы
*/
setcookie("recorded_hash", "jy7b21c876b23476h", time()+31536000, "/");
//Прочитаем значение кука "recorded_hash" в соответствующую переменную
$recorded_hash = $_COOKIE["recorded_hash"];
if ($recorded_hash){
echo $recorded_hash;
}else{
echo "кука нету";
}
?>
(Просмотрено 305 раз, 1 раз за сегодня)