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
я понимаю что кука хранится у клиента на тачке icon_smile.gif
мне нужно где кука храниться в 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
icon_smile.gif не... частный сайт
цитата
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
рразобрался icon_smile.gif
все спасибо!
цитата
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 писал:
лучше не юзай их

я все порешал на сокетах...

"проблема не в психологии, а в физиологии" icon_smile.gif (с) перевозчик 2 icon_smile.gif
бля может на оборот, по пьяни счас уже не помню
Стр. 1, 2  >  последняя »


Эта страница в полной версии