Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Где php хранит cookies? $_COOKIES
Новая тема
Ответить
цитата
27/05/08 в 14:44
Lamagro
Получаю страницу гет запросом.
Обычно для получения кук парсю заголовки ответа, смотрю что ставится и уже полученное передаю дальше.
Возникла потребность получить куку другим способом.
Существует массив $_COOKIES... Но когда он получает данные?
Я забираю страницу через сокеты - массив должен заполняться? Или если я открываю урл через file_get_contents?
цитата
27/05/08 в 15:05
Stek
куки хранятся у клиента в браузере, поэтому если забираешь страницу через сокеты, то незабудь и кукисы передать серверу.
цитата
27/05/08 в 15:07
JM
curl тебе поможет
цитата
27/05/08 в 15:17
Lamagro
я понимаю что кука хранится у клиента на тачке
мне нужно где кука храниться в php! и как она записывается туда - при каких условиях..
В массиве $_COOKIES у меня одно значение доступное для разных скриптов и оно постоянно, не меняется, не перезаписывается Array ( [PHPSESSID] => 0d4bcfc7b13c2e32e6038743a0a3d459 ) глюк может какой-то..
2JM надо на сокетах
цитата
27/05/08 в 15:21
wMaster
Идентификатор сессии постоянен в пределах сессии, на то он и идентификатор.
цитата
27/05/08 в 15:23
dDan
Вообще не понял что топик стартеру надо
в $COOKIES то что у тебя в куках когда ты скрипт пускаешь а не то что ты получил file_get_contents
Если сокетами читаешь то явно тебе не file_get_contents нужен
Код:
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
// Проверяем успешность установки соединения
if (!$fp) echo "$errstr ($errno)<br />\n";
else
{
// Формируем HTTP-заголовки для передачи
// его серверу
$headers = "GET $path HTTP/1.1\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Connection: Close\r\n\r\n";
// Отправляем HTTP-запрос серверу
fwrite($fp, $headers);
// Получаем ответ
while (!feof($fp))
{
$line = fgets($fp, 1024);
// Ищем строку вида
// Set-Cookie: PHPSESSID=6197e647566bdaa24da3ab42ae7604b2;
// Именно она устанавливает cookie
preg_match("|Set-Cookie: PHPSESSID=([\d\w]+);|i",$line,$out);
if(!empty($out[1]))
{
$SID = $out[1];
break;
}
}
fclose($fp);
}
цитата
27/05/08 в 15:40
xreload
Lamagro писал:
Я забираю страницу через сокеты - массив должен заполняться? Или если я открываю урл через file_get_contents?
Если ты передаешь руками(через сокеты), то ты должен сам ставить куки и получать их.
цитата
27/05/08 в 15:42
Lamagro
2 dDan
я все именно так и делаю как ты написал... и так же парсю ответ и получаю куку и все время так и делал...
но сейчас есть страница где при заходе на нее ставится одна кука
Код:
HTTP/1.1 200 OK
Set-Cookie: PHPSESSID=2a7a75469b40345355cab232346a6686; path=/
Сonnection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
а когда я иду с этой страницы по ее ссылке передается уже не одна кука а две:
Код:
POST /index2.php HTTP/1.1
Accept: image/gif, */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Cookie: PHPSESSID=2a7a75469b40345355cab232346a6686; OAID=02a8d103d01f8f8a5454cf3afd47e976
Вопрос, откуда взялась вторая?
И еще один для чего нужен массив $_COOKIES?
п.с. file_get_contents приплел для того что бы понять если я забирать буду страницу черз него кука будет писаться в $_COOKIES? Ведь поидее запрос идет php скриптом.
цитата
27/05/08 в 15:44
Lamagro
xreload писал:
Если ты передаешь руками(через сокеты), то ты должен сам ставить куки и получать их.
Для чего тогда нужен $_COOKIES?
И как куку получить если ее например ставят через жабаскрипт?
цитата
27/05/08 в 16:06
Lamagro
я так понимаю $_COOKIES это массив куда заносятся переменные которые я сам буду ставить с помощью setcookie...
цитата
27/05/08 в 16:29
arachnO
случаем не с vBulletin работаешь?
цитата
27/05/08 в 16:32
Lamagro
не... частный сайт
цитата
27/05/08 в 16:46
dDan
А почему бы не быть двум кукам? Да хоть 10. Одна кука за сессию другая еще за чтото...
Масив $_COOKIES нужен тебе если ты вдруг себе в браузер кук поставишь для своего скрипт setcookie
цитата
27/05/08 в 17:10
Lamagro
dDan писал:
А почему бы не быть двум кукам? Да хоть 10. Одна кука за сессию другая еще за чтото...
там в заголовках ставится одна кука, вторая не видно как ставилась (видно только как передавалась) потому и вычислить ее я немогу, а браузер может
цитата
27/05/08 в 18:50
dDan
Я могу. Если сет куки в хидери стоит то почему ты ее вычеслить не можешь?
цитата
28/05/08 в 05:00
Lamagro
dDan писал:
Я могу. Если сет куки в хидери стоит то почему ты ее вычеслить не можешь?
в хедере кука ставится одна, а при переходе на следующую страницу передается две
это по данным снифера
цитата
28/05/08 в 07:57
Corex
Lamagro:
Код:
POST /index2.php HTTP/1.1
Accept: image/gif, */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Cookie: PHPSESSID=2a7a75469b40345355cab232346a6686; OAID=02a8d103d01f8f8a5454cf3afd47e976
Скорее всего, эту куку ставит скрипт, который лезет на страницу. Сам PHP куки нигде не хранит, ему это без надобности. Возможно, OAID это уникальный идентификатор адреса, к которому идёт запрос и, похоже, значение OAID это УРЛ закодированный через md5 (можно попробовать проверить).
В общем, скорее всего надо смотреть этот скрипт на сокетах, особенно если это сторонний готовый класс или библиотека.
цитата
28/05/08 в 08:02
Lamagro
рразобрался
все спасибо!
цитата
28/05/08 в 13:28
JM
Не заметил что на сокетах, но если у тя пхп то curl там должне быть 99% на нем можно быстрее организовать эт дело т.е. куку в файл а потом из файла его прочесть....
цитата
29/05/08 в 05:35
Lamagro
я когда начинал програмить - как-то с сокетов начал - так и юзаю их счас
надо таки попробывать с curl повозиться...
цитата
29/05/08 в 08:52
dDan
Ну так там все просто COOKIE_JAR COOKIE_FILE
цитата
29/05/08 в 09:10
Lamagro
хм ну попробую
спасибо все еще раз
цитата
30/05/08 в 17:02
JM
в curl таймауты есть, а в сокетах нету ;(
может скрипт висеть бесконечно долго.......
лучше не юзай их
цитата
30/05/08 в 19:32
xreload
Не пиши бред, все там есть.
цитата
30/05/08 в 20:23
Lamagro
JM писал:
лучше не юзай их
я все порешал на сокетах...
"проблема не в психологии, а в физиологии"
(с) перевозчик 2
бля может на оборот, по пьяни счас уже не помню
Стр.
1
,
2
>
последняя »
Новая тема
Ответить
Эта страница в полной версии