Что такое Cookies

Тема в разделе "Статьи", создана пользователем Nooba, 17 июл 2015.

  1. Гость, давай поддержим форум вместе, делись информацией с друзями через кнопки в блоке "Поделиться в социальных сетях"

    Скрыть объявление
  1. Nooba

    Nooba Banned

    
    Регистр:
    30 ноя 2014
    Сообщения:
    68
    Лайки:
    90
    Дизлайки:
    0
    Баллы:
    30
    Пол:
    Мужской
    Программирование Cookies

    Приступим к программированию Cookies.

    Для установки Cookies используется функция SetCookie(). Для этой функции можно указать шесть параметров, один из которых является обязательным:

    name - задает имя (строк), закрепленное за Cookie;
    value - определяет значение переменной (строка);
    expire - время "жизни" переменной (целое число). Если данный параметр не указать, то Cookie будут "жить" до конца сессии, то есть до закрытия браузера. Если время указано, то, когда оно наступит, Cookie самоуничтожится.
    path - путь к Cookie (строка);
    domain - домен (строка). В качестве значения устанавливается имя хоста, с которого Cookie был установлен;
    secure - передача Cookie через защищенное HTTPS-соединение.
    Обычно используются только три первые параметра.

    Пример установки Cookies:

    <?php

    // Устанавливаем Cookie до конца сессии:
    SetCookie("Test","Value");

    // Устанавливаем Cookie на один час после установки:
    SetCookie("My_Cookie","Value",time()+3600);

    ?>
    При использовании Cookies необходимо иметь в виду, что Cookies должны устанавливаться до первого вывода информации в браузер (например, оперетором echo или выводом какой-либо функции). Поэтому желательно устанавливать Cookies в самом начале скрипта. Cookies устанавливаются с помощью определенного заголовка сервера, а если скрипт выводит что-либо, то это означает, что начинается тело документа. В результате Cookies не будут установлены и может быть выведено предупреждение. Для проверки успешности установки Cookies можно использовать такой метод:

    <?php
    // Устанавливаем Cookie до конца сессии:
    // В случае успешной установки Cookie, функция SetCookie возвращает TRUE:
    if (SetCookie("Test","Value")) echo "<h3>Cookies успешно установлены!</h3>";
    ?>
    Функция SetCookie() возвращает TRUE в случае успешной установки Cookie. В случае, если Cookie установить не удается SetCookie() возвратит FALSE и возможно, предупреждение (зависит от настроек PHP). Пример неудачной установки Cookie:

    <?php
    // Cookies установить не удастся, поскольку перед отправкой
    // заголовка Cookie мы выводим в браузер строку 'Hello':
    echo "Hello";
    // Функция SetCookie возвратит FALSE:
    if (SetCookie("Test","Value")) echo "<h3>Cookie успешно установлен!</h3>";
    else echo "<h3>Cookie установить не удалось!</h3>";
    // Выводит 'Cookie установить не удалось!'.
    ?>
    Cookie установить не удалось, поскольку перед посылкой заголовка Cookie мы вывели в браузер строку "Hello".

    Чтение значений Cookies

    Получить доступ к Cookies и их значениям достаточно просто. Они хранятся в суперглобальных массивах и $_COOKIE и $HTTP_COOKIE_VARS.

    Доступ к значениям осуществляется по имени установленных Cookies, например:

    echo $_COOKIE['my_cookie'];
    // Выводит значения установленной Cookie 'My_Cookie'
    Пример установки Cookie и последующего его чтения:

    <?php
    // Устанавливаем Cookie 'test' со значением 'Hello' на один час:
    setcookie("test","Hello",time()+3600);
    // При следующем запросе скрипта выводит 'Hello':
    echo @$_COOKIE['test'];
    ?>
    В рассмотренном примере при первом обращении к скрипту устанавливается Cookie "test" зо значением "hello". При повторном обращении к скрипту будет выведено значение Cookie "test", то есть строка "Hello".

    При чтении значений Cookies обращайте внимание на проверку существования Cookies, например, используя оператор isset(). Либо путем подавления вывода ошибок опереатором @

    А вот пример, как построить счетчик числа загрузок страницы с помощью Cookies:

    <?php
    // Проверяем, был ли уже установлен Cookie 'Mortal',
    // Если да, то читаем его значение,
    // И увеличиваем значение счетчика обращений к странице:
    if (isset($_COOKIE['Mortal'])) $cnt=$_COOKIE['Mortal']+1;
    else $cnt=0;
    // Устанавливаем Cookie 'Mortal' зо значением счетчика,
    // С временем "жизни" до 18/07/29,
    // То есть на очень долгое время:
    setcookie("Mortal",$cnt,0x6FFFFFFF);
    // Выводит число посещений (загрузок) этой страницы:
    echo "<p>Вы посещали эту страницу <b>".@$_COOKIE['Mortal']."</b> раз</p>";
    ?>
    Удаление Cookies

    Иногда возникает необходимость удаления Cookies. Сделать это несложно, необходимо лишь вновь установить Cookie с идентичным именем и пустым параметром. Например:

    <?php
    // Удаляем Cookie 'Test':
    SetCookie("Test","");
    ?>
    Установка массива Cookies и его чтение

    Мы может установить массив Cookies, используя квадратные скобки в именах Cookies [], а затем прочитать массив Cookies и значения этого массива:

    <?php
    // Устанавливаем массив Cookies:
    setcookie("cookie[1]", "Первый");
    setcookie("cookie[2]", "Второй");
    setcookie("cookie[3]", "Третий");

    // После перезагрузки страницы мы отобразим
    // Состав массива Cookies 'cookie':
    if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
    echo "$name : $value <br>";
    }
    }
    ?>