Сообщения с тегами ‘$_COOKIE’

Cookie что это такое и с чем их лучше есть)

Ну есть их лучше конечно с чаем) Cookie с английского переводится как печенье. Фактически это те данные которые мы можем сохранить на машине пользователя в браузере именно для нашего сайта. Проще всего посмотреть список кукисов для определенного сайта в опере. В моей 10 надо нажать инструменты->настройки->выбрать вкладку Дополнительно->cookie->управление Cookie. Ну вот теперь вы повелитель печенекь на своем компьютере:) Зачем они нужны? Ну например это удобно для примитивной идентификации пользователя (Гораздо безопаснее важные данные хранить в сессиях а не куках, но об этом я напишу позднее). Ну хватит “воды” пора переходить к конкретике. Итак мы разобрались что cookie хранятся у пользователя в браузере, но как же с помощью php их туда засунуть? Есть такая функция setcookie именно она задает их. Надо помнить, что cookie должна быть заданы до того как будут отправлены какие либо данные пользователю(т.е до какого-либо вывода на дисплей юзера). Я приведу простой пример как задаются кукисы, сделаю счетчик количества просмотров страницы, для каждого отдельного пользователя.


<?php

if(!$_COOKIE['count']) setcookie('count',1); 

//Если в глобальном массиве кук нет такого элемента, то создаем его

else $_COOKIE['count']++;

//иначе просто к существующему значению плюсуем 1

echo 'Вы просмотрели данную страницу ',($_COOKIE['count']?$_COOKIE['count']:1),' раз';

?>

Вот собственно и вся премудрость. В массиве COOKIE будет доступен данный элемент после следующей перезагрузки страницы. Надо заметить, что данная кука будет “жить” пока пользователь не закроет браузер, после чего она просто исчезнет, но бывают случаи когда надо задать cookie на гораздо дольший срок. Как раз для этого у setcookie имеется третий параметр, а именно время жизни кукиса. Задается он примерно вот так:


<?php

setcookie
('count',1,time()+3600); 

//Ставим значение для элемента массива $_COOKIE['count']

//равным единице и задаем время жизни куки один час

?>

Но и даже это еще не все. Иногда нужно задать куку для определенной дирректории. или для какого то из субдоменов вашего сайта. Тогда делаем вот так:


<?php

setcookie 
("count"1,time()+3600"/2009/"".phpbegun.ru"1);

?>

Для дирректории 2009 начиная от корня сайта я устанавливаю куку для всех субдоменов и домена сайта phpbegun.ru . Последний параметр равный единице обозначает то, что cookie защищенная, т.е будет отдаваться лишь в том случае, если используется HTTPS соединение.
И конечно же, чтобы обнулить нашу куку, если она вдруг перестала быть нужной надо просто выполнить setcookie без второго параметра.


<?php

setcookie
("count");

?>

После следующей загрузки страницы $_COOKIE['count'] будет удален.
Ну вот, теперь вы знаете что такое кукисы и с чем их лучше есть)

Такие странные линки (типы передачи данных)

Вы никогда не задавались вопросом почему такие разные, странные бывают линки? Ну адрес сайта разный-это понятно. А вот зачем эти записи после знака вопроса? Например такие
http://badcode.net.ru/wp-admin/post.php?action=edit&post=67
Все очень просто “сложные” урлы нужны для передачи данных. Вообще есть три основных способа передачи данных POST, GET и COOKIE. GET данные это и есть все что после знака впороса в урле
http://badcode.net.ru/wp-admin/post.php?action=edit&post=67

Что же они нам дают? А вот что: существуют глобальные массивы (одноименные с типами передачи) $_POST, $_GET, $_COOKIE. Фактически такой записью урлы мы передаем ключи и значения массива $_GET примерно так:
Array(
[action] => [edit]
[post] => 67
)

т.е. массив $_GET содержит ключ action и ему соответствует значение edit, ключ post с значением 67. Заметьте что ключи и значения в запросе (URL) разделяются значком “&”. Мы разобрали лишь один способ передачи. А зачем же остальные? Почему бы не пользоваться только GET? Дело в том что метод GET может передать лишь столько сколько вмещает браузер в строке. например в 6 Internet Explorer ограничение 2048 символов (порядка 2 килобайт) согласитесь это очень мало. Как раз для таких случаев придумали метод POST.

Что же из себя представляет метод пост? Данным методом передается информация исключительно ч ерез формы на странице. Я думаю вы часто заходили на сайты на которых требуется регистрация. Вот странички регистрации и есть формы, чаще всего через которые передаются данные через POST. Думаю вы уже поняли что соответственно эти данные кладутся в массив $_POST видимый из любого скрипта. Что ж..осталось поговорить о COOKIE..

В переводе с английского COOKIE-печенье. Очень часто нам требуется сохранить какое-то небольшое количество данных у пользователя на машине(в браузере). В массив $_COOKIE помещаются
все данные которые лежали на машине у пользователя. Позднее я расскажу как работать с кукакми, как задавать их и “вытаскивать”.

Итак теперь нам известны глобальные массивы данных, массивы которые видны на протяжении всего выполнения скрипта. Мы можем передать информацию, и принять ее. Что ж…пора познакомиться с функциями ( операторами ) php.