Скрипты

ticket-plus-система-технической-поддержки-клиентов  - позволяет вам легко масштабировать и оптимизировать обслуживание клиентов и значительно улучшать положительное отношение ваших клиенов. Ticket...
phpsound-1-2-7-платформа-обмена-музыкойPhpSound - это социальная платформа обмена музыкальными файлами, похожей на soundcloud. Сервис даёт пользователям возмоность загружать свою музыку, и...
wowonder-v-1-3-социальная-сетевая-платформа WoWonder - это PHP-скрипт социальной сети, WoWonder это лучший способ чтобы начать создание собственного сайта социальной сети. Этот скрипт имеет все...

Для Photoshop

animation-glitch-photoshop-action Action для программы Photoshop, который генерирует видео ряд анимационных эффектов в виде помех на экране, из ваших изображений. Вы можете создать...
radiant-action-photoshop Экшен для программы Photoshop, создаёт эффект света и геометрических фигур, что поможет создать стильный модный вид вашему образу. Создавайте яркие и...
doomsday-action-экшен-для-photoshop Экшен для программы Photoshop, создаёт потрясающий эффект драматизма с глубокими тенями и световым контрактом. Отлично подойдёт при создании рекламных...

Что такое Сookies и как его использовать

mini-cookie

Вы возможно слышали о Cookies  (от англ. cookie — печенье), но что на самом деле мы можем сделать с ним?  В этом уроке мы сосредоточимся на основах Cookies   чтобы узнать об их функциональности при применении в различных web- приложениях. Вы также узнаете как использовать  Cookies в приложениях на PHP и JavaScript, уделяя при этом особое внимание вопросам безопасности, которые могут возникнуть при их использовании.

Что же такое Cookies.

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

Однако существует некоторые ограничения, которые помогут использовать Cookies наиболее безопасно.

  • Web- сервер может получить куки только те которые были установлены именно им то есть куки привязывается к определённому доменному имени.  Это значит что Cookies  которые были установлены например на  google.com не могут быть прочитаны yandex.ru, так и наоборот.
  • Согласно протоколу  HTTP размер Cookies не может превышать больше 4096 байт (4KB) каждый.
  • Также существует ограничение на количество куки  файлов  для одного домена, эта цифра может быть различна в разных браузерах, однако обычно используется ограничение в 20. Это необходимо для предотвращения засорения дискового пространства пользователя.
  • И ещё одно ограничения которое касается общего количества файлов Cookies на компьютере пользователя, в основном это 300 и эта цифра может быть другой в разных браузерах. В случае если лимит превышен, то более старые куки файлы удаляются в замен новым.

Cookies имеют срок годности. Срок хранения в основном устанавливаются самим web приложением (скриптом) и удаляются браузером по истечению срока годности. Если срок хранения не указан, то куки будут удалены после закрытия соединения с web сервером, это происходит когда пользователь закрывает окно сайта вкладку или полностью браузер. Такие файлы иногда называют Cookies сессии и используются для хранения временных параметров.

Давайте посмотрим как всё это выглядит на техническом уровне. Cookies передаются через протокол HTTP, этот протокол используется в браузерах для получения и отправки файлов на сервер. Ниже вы можете увидеть фрагмент сервер запроса для создания Cookies (этот фрагмент является частью ответа HTTP).

 

Set-Cookie: Name=content data; expires=Fri, 
31-Dec-2010 23:59:59 GMT; path=/; domain=.example.net 

Давайте разберём что к чему

  • Set-Cookie: команда для браузера о том что сервер хочет создать новый Cookies
  • Name - это имя куки. Для каждой оно должно быть разное.
  • content data – это данные которые должен содержать новый файл, это может быть как строка так и число но как уже говорилось размер недолжен быть больше 4kb.
  • Expires -  это установка срока годности создаваемого куки.
  • domain  и path – это имя домена в котором куки будут активны. Если куки были отправлены с ads.google.com то они будут работать только в этом под домене, а если с  google.com то они работают на всём домене google.com.

Дальше мы рассмотрим, как эти параметры можно использовать в web программировании.

Создание и чтение Cookies

PHP

Самое главное что нужно знать при создании Cookies в PHP, является то что вы должны установить его файлы перед отправкой каких либо данных в браузер. Это означает что вы должны всегда инициализировать новый Cookies до любого вывода. Это могут быть команды echo или print, а также <html> или <body>.

<?php 
/*** Создание cookie***/ 
$name = 'clientname'; 
$value = 'Peter Griffin'; 
//time() даёт текущее время в секундах, и мы добавим 60 секунд * 30 = 30 минут
// так что срок годности этой Cookies истекает через 30 минут.
// Заметьте , что дата окончания в секундах, PHP переводит их
//во внутренний правильный формат ! 
$expireDate = time() + 60 * 30; 
$path = '/example/'; 
$domain = 'test.envato.com'; 
$secure = false; //передавать куки если соединение установлено через HTTPS 
$httponly = true; //сделать куки доступным только для протокола HTTP (а не для JavaScript) 
setcookie( $name, $value, $expireDate, $path, $domain, $secure, $httponly); 
 
<html> 
.... //Всё содержимое страницы идёт здесь
?> 
  

Всё это вам может быть знакомо за исключением переменных $secure и $httponly.Это сделано для безопасности. Например  $httponly  создаёт куки только через протокол HTTP в этом случае получения доступа к cookie  на стороне клиента через такие языки как JavaScript и VBScript невозможно. Конечно для создание Cookies может использоваться и меньший код.

<?php 
setcookie( 'clientname', 'Peter Griffin', time()+60*30, '/example/', 'test.envato.com', false,true); 
?> 
 

 

Теперь когда Cookies создана, мы должны иметь возможность читать содержимое этого файла. В PHP это делается очень легко, есть такая переменная окружения называется $ _COOKIE [], кторая может быть использована для извлечения значения Cookies. Что бы её использовать просто введите имя куки между скобок [] например:

<?php 
$cookieValue = $_COOKIE[‘Имя cookie'];  ?>
 

 

Если вы хотите изменить дату истечения срока годности, домен или имя, вы должны переписать существующие куки  с SetCookie () с тем же именем, что и оригинальный. Если изменить дату срока годности на прошедшие время (time()-30*60 например) то куки будут удалены.

JavaScript

Cookies могут читаться и записываться на стороне клиента, то есть в браузере. Хотя JavaScrip не представляет больших возможностей для чтения и записи Cookies, всё же его широко используют. JavaScript использует document.cookie объект манипуляций для Cookies как показано ниже.

var cookieName = 'testcookiename'; 
var textArray = document.cookie.split(';'); // положить все части строки в массив
for(var i = 0; i < textArray.length; i++){ // цикл, хотя все строки части
var textPiece = textArray[i]; // содержит 1 строку
 
while(textPiece(0)==' ') textPiece = textPiece.substring(1,textPiece.length); 
if (textPiece.indexOf(cookieName)== 0){ 
return textPiece.substring(cookieName.length,c.length); 
} 
} 
 

 

Дальше приводиться пример кода для чтения Cookies

function writeCookie(cookieName, cookieValue, expireHours, path, domain){ 
var date = new Date(); 
date.setHours(date.getHours + expireHours); 
document.cookie = cookieName + '=' + cookieValue + '; expires=' + date + '; path=' + path + '; domain=' + domain; 
} 
 
function readCookie(cookieName){ 
var textArray = document.cookie.split(';'); 
for(var i = 0; i < textArray.length; i++){ 
var textPiece = textArray[i]; 
while(textPiece(0)==' ') textPiece = textPiece.substring(1,textPiece.length); 
if (textPiece.indexOf(cookieName)== 0) return textPiece.substring(cookieName.length,c.length); 
} 
} 
 

 

На этом с JavaScript закончим, имейте ввиду это правильные фрагменты кода и не имеют ошибок.

Что делать с Cookies

В настоящее время мы используем куки для почти всех целей, это может быть сохранения пользовательских  настроек ка имя, язык или размер экрана. Конечно есть более интересные вещи которые можно сделать с Cookies, дальше я покажу что.

Запомнить меня Логин фрагмент

Я приведу фрагмент кода, который использует куки для создания механизма вход в систему.  Для реализации механизма Запомнить меня мы должны иметь несколько вашей, это наличие базы данных, таблицу содержащею имя пользователя, пароль и идентификационное поле.

<?php 
 
/**** Создание идентификации строки ****/ 
 
$username; // Обычно имя пользователя будет известно после входа в систему
 
// создать сборник из двух случайных величин и имя пользователя
$digest = sha1(strval(rand(0,microtime(true)) + $username + strval(microtime(true)); 
 
// сохранить в базе данных (если соединение уже сделано)
mysql_query('UPDATE users SET reloginDigest="'.$digest.'" WHERE username="'.$username.'"'); 
 
//Создание cookie 
setcookie( 'reloginID', $digest, time()+60*60*24*7,'/', 'test.example.com', false, true); 
 
// это предполагает, что пользователь выходит из системы и куки установлен
/**** Проверка пользователей через куки ****/ 
 
$digest = $_COOKIE['reloginID']; 
$digest = mysql_real_escape_string($digest); 
 
 
$result = mysql_query('SELECT username FROM users WHERE reloginDigest="'.$digest.'"'); 
 
if(mysql_num_rows($result) == 1){ 
 $userdata = mysql_fetch_object($result); 
 $username = $userdata->username; 
 
 // здесь вы должны установить новый дайджест на следующий вход в систему использованием вышеуказанных код!
 
 echo 'Вы успешно вошли в систему, '.$username; 
 
} else{ 
echo " Войти не удалось!"; 
} 
 
?> 
 
 

 


  1. Комментарии (0)

  2. Add Yours

Комментарии (0)

There are no comments posted here yet

Оставьте свой комментарий

Posting comment as a guest. Sign up or login to your account.
Вложения (0 / 3)
Share Your Location

Векторная графика

плашки-для-рекламных-текстов Набор ярких плашек для рекламных текстов в векторном формате, которые значительно выделят ваш текст на общем фоне. Формат файлов: AI / EPS /...
start-up-rockets-–-ракеты-в-векторе Набор векторных изображений, разного вида летящих ракет. Можно использовать при создании анимации и рекламных баннеров. Формат файлов:...
pop-art-man-векторные-мужчин-в-стиле-поп-арт Набор изображений в векторном формате, яркие иллюстрации мужчин в модном стиле поп арт, отлично подойдёт при создании рекламных баннеров. Формат...

Растовая графика

атлетика-и-бодибилдинг-–-фото-клипарт Набор из 32 изображений высокого качества на тему атлетики и бодибилдинга. Отлично подойдут для рекламных флаеров, баннеров и слайдеров на сайтах...
интернет-технологии,компьютер,гаджеты-–-фото-клипарт Набор из 25 изображений высокого качества, различные интернет технологии, компьютеры, гаджеты. Отлично подойдет для слайд-шоу. Размер 4800 на 3200 px....
бизнес-леди-–-набор-фото-клипарта Набор из 15 изображений высокого качества с красивой блондинкой, бизнес-леди. Эти изображения отлично подойдут для использования в презентациях,...