X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Не ставятся cookie
Banderas
Banderas
Topic Starter сообщение 21.3.2011, 1:05; Ответить: Banderas
Сообщение #1


Почему не ставятся cookie? Вот код
[php]$hash = md5(rand(0,10));
$ip = "INET_ATON('".$_SERVER['REMOTE_ADDR']."')";

mysql_query("UPDATE users SET hash='$hash', ip='$ip' WHERE login='".mysql_real_escape_string($login)."'");

$q = @setcookie("login", $login, time()+60*60*24*30) ? print('cookie OK') : print('cookie fuck');
$w = @setcookie("hash", $hash, time()+60*60*24*30);
echo $q, $w;[/php]
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FordogeN
FordogeN
сообщение 21.3.2011, 16:17; Ответить: FordogeN
Сообщение #2


а вначале кода есть?
session_start();


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 21.3.2011, 16:20; Ответить: Banderas
Сообщение #3


причем логин и хеш существуют, да и вообще решил вывести инфу, вот что показало
Banderas123:a87ff679a2f3e71d9181a67b7542122c
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\blogup.com\www\login_handler.php:27) in Z:\home\blogup.com\www\login_handler.php on line 28
cookie fuck
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\blogup.com\www\login_handler.php:27) in Z:\home\blogup.com\www\login_handler.php on line 29

Приветствуем Вас Banderas123
Спасибо за авторизацию!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FordogeN
FordogeN
сообщение 21.3.2011, 16:24; Ответить: FordogeN
Сообщение #4


это ты в браузере проверил?
зы. По поводу сейшн_старт затупил. подумал что ты сессию ставишь)))


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
сообщение 21.3.2011, 16:40; Ответить: sc2r2bey
Сообщение #5


ай-яй-яй, безобразие!!!
опять одни и те же грабли, куки надо ставить до вывода чего-либо в браузер, про заголовки надо помнить всегда!!!
http://www.phpfaq.ru/headers


--------------------
Заметки о разработке и не только
программирую web и для we


Поблагодарили: (0)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 21.3.2011, 17:17; Ответить: Banderas
Сообщение #6


Оки, наконецто записал куки... Но вопрос в том, что мне нужно записать два элемента в массив КУКИ. Я делаю запись
[php]<?php
setcookie('login', 'lololo', time() + 60*60*24*30) ? print('cookie OK') : print('cookie fuck');
setcookie('hash', 'fdsfsdfsadfsdf2fds', time() + 60*60*24*30) ? print('cookie OK') : print('cookie fuck');
include ('db.php');[/php]
Первая запись успешна, проверил в браузере - login есть. Но hash не добавляется потому что перед ним мы уже передавали headers. Что делать с hash'ом что бы передать его вместе с лоигном? Формировать довухуровневый массив куки?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
сообщение 21.3.2011, 17:20; Ответить: sc2r2bey
Сообщение #7


возможно это будет интересно

вот так станут:

[php]<?
setcookie('login', 'lololo', time() + 60*60*24*30);
setcookie('hash', 'fdsfsdfsadfsdf2fds', time() + 60*60*24*30);
?>[/php]

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

[php]setcookie('login', 'lololo', time() + 60*60*24*30) ? $cookie_login=TRUE : $cookie_login=FALSE;
setcookie('hash', 'fdsfsdfsadfsdf2fds', time() + 60*60*24*30) ? $cookie_hash=TRUE : $cookie_hash=FALSE;

$cookie_login==TRUE ? print('cookie OK') : print('cookie fuck');
$cookie_hash==TRUE ? print('cookie OK') : print('cookie fuck');[/php]


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 21.3.2011, 18:39; Ответить: Banderas
Сообщение #8


У меня при такой записи тоже ставятся
[php]<php

?>
print('Выше с десяток строк, из которых как минимум 5 строк вывода информации');
<?
setcookie('login', $login, time() + 60*60*24*30);
?>
<?php
print('Ещё с десяток строк, одна из которых:');
echo "<br/>".'Приветствуем Вас '.$login."<br/>";
?>[/php]
И все прекрасно работает. Хотя написано, что нельзя выводить информацию перед тем, как задаются куки. Или перед setcookie() не должно быть символов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 22.3.2011, 19:12; Ответить: ZiTosS
Сообщение #9


Banderas,
1) Установленные куки появятся только после перезагрузки страницы.
2) Не стоит ничего выводить в браузер до передачи заголовков, конечно это не распространяется при использовании буферизации вывода (функции ob_...)
3) По сообщению #6 тебе правильно сказали. Не надо выводить инфу в браузер, этим ты отсылаешь заголовки клиенту.
4)
У меня при такой записи тоже ставятся

Возможно у тебя стоит преднамеренная буферизация в настройках сервера.

P.s.: А вообще нужно бы разобраться, как же работать с куками. Сервер - одна машина, клиент - другая машина. В основном они общаются посылкой запросов на действия пользователя. Запросил пользователь страницу, происходит:
  • Браузер отсылает запрос на получение данных, не забывая к нему прикрепить куки, POST-данные, GET и т.д.
  • Сервер формирует документ и отсылает его обратно в браузер клиенту

После того, как сервер установил куки пользователю, т.е. в сформированном ответе передал запрос на установку кукисов. Браузер их выставляет, но данные о них он обратно на сервер не отсылает. Они передадутся на сервер только при последующем запросе страниц ресурса.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Раскладывающееся меню с jquery.cookie.js
0 Lion43 5406 10.10.2012, 2:58
автор: -berluskoni-


 



RSS Текстовая версия Сейчас: 24.4.2024, 6:17
Дизайн