Работа с cookie

Работа с 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 раз за сегодня)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *