Задайте вопрос
Поиск по сайту

Содержание:

Глава1 - Основы.

  • Установка и настройка Denwer.
  • Знакомство с РНР.
  • Переменные.
  • Операторы.
  • Массивы и циклы
  • Функции.

  • Глава2 - Разработка web-сайтов и взаимодействие с MySql.
    Partner


    И так

    что такое куки?

    Или cookie?

    Представим, что сидит человек с завязанными глазами и кто-то кладет ему в руку, скажем, монетку. Через пять минут опять ему кладут монетку, а он не знает тот это человек который положил ему в предыдущий раз или уже новый!

    Вот так и сервер - Вы послали запрос, через минуту еще один и сервер не сможет понять Вы ли это снова или другой пользователь, в силу спецификации протокола http.


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

    Вот как это работает:

    Мы запрашиваем некую информацию у браузера, он, допустим возвращает нам форму: Как тебя зовут?
    Мы пишем имя и каким-либо образом говорим браузеру, что бы тот передал серверу, чтобы он в свою очередь "повесил" нам куку.(ну не всегда так - в основном куки летят незаметно для пользователя)

    Ну вот как пример тот же сайт одноклассники - вы заполняете логин и пароль и там есть галочка запомнить. так вот поставив эту галочку Вы говорите браузеру, что нужно передать куку, т.е. запрос идет на сервер и в случае Вашей удачной авторизации сервер не только возвращает Вам страницу, но и шлет куки, например: user=Jhon.

    Теперь если Вы просто закроете браузер, а потом опять откроете его и перейдете на сайт одноклассников, то сервер посмотрит, а есть ли у вас кука привязанная к данному сайту? Увидит ее: user=Jhon и сразу откроет Вашу страницу без запроса логина и пароля. Т.е. он определит по куке, что это именно Вы, а ни кто другой.

    А вот кнопка выход, которую всегда рекомендуется нажимать, когда вы перестаете работать с сайтом - это как раз выполняется код, который эту куку уничтожает. И теперь зайти без логина и пароля не удастся.

    Ладно, хватит теории. Как все это реализовать с помощью php.

    Так устанавливаем куки. В основном используют только два первых параметра, остальные не всегда.



    Все cookie должны ОБЯЗАТЕЛЬНО быть посланы до любого вывода контента, т.к. они посылаются в заголовках, а после какого-либо вывода информации перепослать заголовки уже нельзя.

    Примеры:



    Так же как с массивами $_POST[] и $_GET[] все приходящие куки автоматически попадают в массив $_COOKIE[] и аналогично мы их можем зачитать.

    В следующем коде при первом запросе страницы мы увидим пустое поле, т.к. кука только отправилась и выводить еще нечего было, а при последующих обновлениях мы увидим значение нашей cookie - test. Можете проверить :-)



    Но в приведенном примере выше - кука временная, т.е. пока я работаю с сайтом пославшим мне куку она существует, как только я закрою браузер, открою его снова и пойду опять на наш сайт куки уже не будет - она была временная.

    Задать время жизни ей можно, как я уже говорил третьим параметром. Нпример поставим один час.



    Часто требуется куки принудительно удалить (что и делает например кнопка выход у вас на почте:)). Для этого нужно просто послать имя куки без ее значения.

    Давайте перейдем к заголовкам

    :-)

    Вы уже знаете методы передачи данных GET и POST. Теперь посмотрим метод HEAD:

    Это то же самое что и метод GET тольо в ответ на него сервер возвращает только заголовки без самого содержания самой страницы!!!

    Многие (не все!!!) заголовки можно поменять! Вдаваться в подробности не буду - рассмотрим как посылаются заголовки:

    Посылаются они с помощью функции header();

    Обратите внимание, что и в случае с куками они должны посылаться ДО любого вывода, т.е. в самом начале!!!

    Рассмотрим самые наиболее используемые и которые нам могут на данном этапе помочь.

    Например редирект (переадресация) на уровне заголовков.



    т.е. если мы запросим например страницу test.php а в ней будет код, который мы написали выше, то нам вернется страница cookie.php - то есть мы сделали переадресацию посредством заголовков php!!!

    Есть заголовок Refresh();

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



    Вообщем, грубо говоря, это аналог Location, только с задержкой, какую Вы укажете...

    Через точку с запятой после времени (1 сек в данном случае) можно отправить имя файла перезапрашиваемого.

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

    Не буду здесь вдаваться в подробности - если есть интерес можете написать мне! Я всегда отвечаю и помогу с интересующим заголовком.

    Эти два - те, которые многих интересовали, судя по вопросам!

    Наверх Предыдущая страница Следующая страница