Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Http & Php

5.9K
19 января 2004 года
crezd
5 / / 19.01.2004
На чужом хостинге...нужно авторизироватся и взять нужную инфу,для этого нужно:

1. Получить куку (даже две, а может и три).
2. При последующих соединениях из скрипта, использовать эти куки при отправке http запроса того, что мне нужно.


Как написать http запрос?? много читал и про headers и про setcookies,http/1.1 итд..понял всё,но нет практики.
Как это всё реализовать на php?
4
20 января 2004 года
mike
3.7K / / 01.10.2002
При первом соединении (например, с помощью fsockopen()) считываешь о обрабатываешь содержимое поля "Set-Cookie" HTTP заголовка ответа сервера.

Запоминаешь то что получил, и при последующем обращнии добавляешь в HTTP запрос поле "Cookie", например:

Сookie: PHPSESSID=8475748475748
5.9K
20 января 2004 года
crezd
5 / / 19.01.2004
Цитата:
Originally posted by mike
При первом соединении (например, с помощью fsockopen()) считываешь о обрабатываешь содержимое поля "Set-Cookie" HTTP заголовка ответа сервера.

Запоминаешь то что получил, и при последующем обращнии добавляешь в HTTP запрос поле "Cookie", например:

Сookie: PHPSESSID=8475748475748




Напиши пример

528
20 января 2004 года
olegnet
154 / / 17.11.2003
[COLOR=blue] mike [/COLOR] а ты не задумывался, где он возЪмёт куки???
1.3K
20 января 2004 года
view
148 / / 14.10.2003
Цитата:
Originally posted by olegnet
[COLOR=blue] mike [/COLOR] а ты не задумывался, где он возЪмёт куки???


Проще всего запустить снифер и посмотреть, как все происходит на практике. Узнаешь много интересного :)

4
20 января 2004 года
mike
3.7K / / 01.10.2002
Код:
<?php
$fp = fsockopen ("www.host.ru", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)
\n"
;
    }
else {
    $ans="";
    fputs ($fp, "POST /login.php HTTP/1.0\r\n");
    fputs ($fp, "Host: www.host.ru\r\n");
    fputs ($fp, "Connection: Keep-Alive\r\n");
    fputs ($fp, "\r\n");
    fputs ($fp, "login=login&password=password");
    while (!feof($fp)) $ans.=fgets ($fp,128);
    $pos=strpos($ans,"Set-Cookie:");
    if ($pos) {
        $cookie=substr($ans,$pos+11);
        list($cookie)=explode($cookie,";");
        $cookie=trim($cookie);
        }

    $ans="";
    fputs ($fp, "GET /page.php HTTP/1.0\r\n");
    fputs ($fp, "Host: www.host.ru\r\n");
    fputs ($fp, "Cookie: ".$cookie."\r\n");
    fputs ($fp, "Connection: Close\r\n");
    fputs ($fp, "\r\n");
    while (!feof($fp)) $ans.=fgets ($fp,128);
    print $ans

    fclose ($fp);
    }
?>


писалось прямо в форуме. код не рабочий, но показывает принцип.

Работает только при одной Cookie, и не проверяет валидность по домену и времени.
4
20 января 2004 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by olegnet
[COLOR=blue] mike [/COLOR] а ты не задумывался, где он возЪмёт куки???



задумывался, из HTTP заголовка ответа сервера.

5.9K
20 января 2004 года
crezd
5 / / 19.01.2004
Код:
<?php
$fp = fsockopen ("www.host.ru", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)
\n"
;
    }
else {
    $ans="";
    fputs ($fp, "POST /login.php HTTP/1.0\r\n");
    fputs ($fp, "Host: www.host.ru\r\n");
    fputs ($fp, "Connection: Keep-Alive\r\n");
    fputs ($fp, "\r\n");
    fputs ($fp, "login=login&password=password");
    while (!feof($fp)) $ans.=fgets ($fp,128);
    $pos=strpos($ans,"Set-Cookie:");
    if ($pos) {
        $cookie=substr($ans,$pos+11);
        list($cookie)=explode($cookie,";");
        $cookie=trim($cookie);
        }

    $ans="";
    *Здесь
    fputs ($fp, "GET /page.php HTTP/1.0\r\n");
    fputs ($fp, "Host: www.host.ru\r\n");
    fputs ($fp, "Cookie: ".$cookie."\r\n");
    fputs ($fp, "Connection: Close\r\n");
    fputs ($fp, "\r\n");
    while (!feof($fp)) $ans.=fgets ($fp,128);
    print $ans

    fclose ($fp);
    }
?>

Всё понятно...но тебе не кажеться что надо повторно сделать fsockopen в "Здесь"
4
21 января 2004 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by crezd
Всё понятно...но тебе не кажеться что надо повторно сделать fsockopen в "Здесь"



После обработки запроса соединение не обязательно обрывается.

Точнее если Connection: Close, то обрывается, а если Connection: Keep-Alive, то нет.

p.s. есть исключения, почитай RFC2068

5.9K
21 января 2004 года
crezd
5 / / 19.01.2004
Цитата:
Originally posted by mike


После обработки запроса соединение не обязательно обрывается.

Точнее если Connection: Close, то обрывается, а если Connection: Keep-Alive, то нет.

p.s. есть исключения, почитай RFC2068




оки..всё ясно...ещё один момент:

напрмер есть закрытый доступ к странице и на главной странице есть формы(логин,пароль)
и когда ты заходишь(авторизируешся) то в адрессной строке есть такая фишка

example.com/inf.pl?920391292395

Я так понимаю что эти цифры назначаються каждому кто авторизируется...тоесть всё работает не с куки..так как заходя повторно на главную стр..нужно опять вводить свои данные...
Что нужно сделать чтоб скрипт зашел один раз..и собирал инфу..

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог