Как php работает с cookie.
![]() |
Механизм cookie необходим, чтобы хранить на стороне клиента небольшие объемы данных. Например, когда браузер предлагает сохранить логин и пароль для какого-либо сайта, то он их помещает в cookie. Естественно для разных web-сайтов будут созданы отдельные файлы. К примеру, браузер Internet Explorer сохраняет все в текстовых файлах в папке Cookies. Имя файла будет образовано от имени пользователя, под которым вы зашли в систему и от домена, который вы посетили. |
Кстати, я провел один эксперимент. Посетил сайт с голосованием и после того, как я отдал голос за один из вариантов, у меня в папке cookies создался соответствующий файл. При попытке проголосовать снова, мне отказали. Тогда я разозлился и удалил файл из Cookies. И ресурс подумал, что я никогда и не
голосовал. Но это не всегда может сработать. Более продвинутые сайты, насколько я понял, помимо cookie, используют защиту от накрутки по ip. И еще всякие фичи, которые пока я не знаю.
Давайте теперь перейдем непосредственно к практике.
Чтобы создать cookie, надо воспользоваться функцией setcookie(имя_cookie, значение, время жизни). Я сделал небольшой пример, который демонстрирует механизм cookie.
Листинг файла index.php
Листинг файла cookie.php
echo $_COOKIE['mycook'];
?>
Сначала идёт проверка. Если файл cookie существует, то на экран выведется “ты уже знаешь как работает механизм cookie”.
Если cookie не существует, то мы её создаем и переходим с запросом в другой скрипт, где вытаскиваем значение cookie.
time()+15 – таким образом, я указал, что cookie будут храниться ровно 15 секунд, после создания. То есть если вы обратитесь к скрипту cookie.php через, скажем 20 секунд, то уже ничего не увидите, так как cookie уже будет удалён из системы.
Если вы хотите удалить вручную, то просто укажите в setcookie() один параметр – имя этой самой куки.
Хочу обратить внимание на одну вещь. Создавать cookie надо перед html текстом, оператором echo и всеми вещам, которые отправляются браузеру. Так как setcookie() посылает браузеру заголовок с именем Set-Cookie. А все заголовки надо передавать до команд вывода.

Июнь 23rd, 2008
Можно ли сохранять в куках логин и пароль пользователя, можно ли прочитать куки каким нибуть способом? Я имею ввиду взлом сайта.. И наконец можно ли подставить свой логин на чужом сайте где используется такая методика?
Я пишу свой собствений сайт, поетому нужна ваша косультация… Как безопасней записовать дание юзера для его индетефекацие на сайте…
Июнь 23rd, 2008
Есть некоторые виды хакерских атак, используя которые злоумышленник может получить доступ к cookie ваших посетителей, если вы храните там пароли.
Я логин/пароль храню в БД. Каждый раз когда человек заходит на сайт – он может залогиниться в специальной форме. Данные которые он вводит в форму(логин/пароль) я проверяю на наличие в БД. Если такие есть то в переменную сессии записываю что-нибудь вроде $_SESSION['is_logged'] = true; и дальше уже работаю с этой переменной.
Июнь 23rd, 2008
Да ето полезно, но что делать если мне для індетефикации нужно лиш логин человека… Хим! хорошая идея… Можно зделать при авторизации запись в куки логина и какова нибуть набора цифир, которий будет уникальний для каждива человека.. Набор цифир будет служить как индетификатор, а логин как дополнительний инструмент… Как ви считаете? Безопосним етот метод будет, если внимание будет приделено лиш набору цифир, а логин просто второстопеним… (соррі русскоим язиком не владею (правописанием
))
Июнь 23rd, 2008
Кстати как посмотреть все установление значения в куках?
вот етой переменой
print_r($_COOKIE); // виводет все записи установление у куках…
Декабрь 12th, 2008
Кстати для определения голосовал пользователь или нет пожно использовать две полезные пердопределенные переменные в сочетании: $_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_X_FORWARDED_FOR']. Первая известна, а вот вторая переменная не описана в офицальной документации(по крайней мере не встречал). Эта переменная принемает на себя внутренний(серый) IP клиента
Октябрь 11th, 2009
Можно еще другим способом проверить
Апрель 14th, 2010
Лучше всегда используйте в своих проектах сессию чем куки, и храните все пароли в базе в виде md5. Так все делают.
Апрель 23rd, 2010
Может быть и все используют сессию для авторизации, но для автоматической авторизации на форуме без cookie не обойтись. У меня вопрос: из-за чего может не работать cookie? В броузере они включены, на разных сайтах они работают, но не работают на одном, который я разрабатываю
Июнь 12th, 2010
Vladimir
Возможно хостинг с которым ты работаешь(если он бесплатный) отключает возможность использования.