Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Запрос на сайт (https://forum.antichat.xyz/showthread.php?t=94405)

Buffalon 02.12.2008 01:52

Запрос на сайт
 
Короче тут описан пост запрос на сайт www.weblancer.net/
Но он вообще никак не реагирует(
Что не хватает???Или кук нехватает как их прикрепить???

PHP код:

 <?
set_time_limit
(100);
 function 
Post($server,$url,$post)
    {
        
$q="POST $url HTTP/1.1\r\n".
        
"Host: $server\r\n".
        
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n".
        
'Accept:text/html, image/jpeg, image/png, text/*, image/*, */*'."\r\n".
        
"Accept-Encoding: x-gzip, x-deflate, gzip\r\n".
        
"Accept-Charset: windows-1251, utf-8;q=0.5, *; q=0.5\r\n".
        
"Accept-Language:ru, en\r\n".
        
"Keep-Alive: 300\r\n".
        
"Proxy-Connection: keep-alive\r\n".
        
"Referer: $server \r\n".
        
//
        
"Content-Type: application/x-www-form-urlencoded\r\n".
        
"Content-Length: ".strlen($post)."\r\n".
        
"\r\n".
        
"$post\r\n";
        
$s=fsockopen($server,80);
        
fputs($s,$q);
        while (!
feof($s)) $page.=fgets($s);
        
fclose($s);
        return 
$page;
}
echo 
Post('91.196.0.75','http://www.weblancer.net/','login=Buffalon&password=xXx');

?>

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

Gifts 02.12.2008 02:01

Ммм, каг бе у меня скрипт работает, во всяком случае ответ есть. Мб у тя заблокированы сокеты на хостинге?

DIAgen 02.12.2008 02:04

Используй Curl , на много проще, чем возиться с зоголовками, и зачем у тебя set_time_limit(100); , что запрос к серваку и отдача от него будет идти почти 2 менуты.

В CURL для установки кукисов используй CURLOPT_COOKIE а для работы с проксиком CURLOPT_PROXY

Buffalon 02.12.2008 02:04

Цитата:

Сообщение от Gifts
Ммм, каг бе у меня скрипт работает, во всяком случае ответ есть. Мб у тя заблокированы сокеты на хостинге?

Да ответ есть , вопрос в том что не могу залогинеться , если даже логин не верный то он должен выдавать другой текст типа пароль не верен.А у меня вообще ничего не передаёт .Какой Пост я забыл указать?

DIAgen 02.12.2008 02:05

И еще поставь в начало error_reporting(7); и посмотри что выдасть скрипт

Buffalon 02.12.2008 02:09

set_time_limit(100); У меня GRPS :D
ВСегда хотел узнать что такое Курл да времени не хватало , а сейчас пишу скрипт - как раз самое время - говорят не сложно разобраться , а можно плмз пример с КУРЛ?

DIAgen 02.12.2008 02:11

Цитата:

Сообщение от Buffalon
set_time_limit(100); У меня GRPS :D
ВСегда хотел узнать что такое Курл да времени не хватало , а сейчас пишу скрипт - как раз самое время - говорят не сложно разобраться , а можно плмз пример с КУРЛ?

Вот твоя загвозка вот тут, нужн указывать полный путь для отправки POST
Цитата:

http://www.weblancer.net/account/login/

Pashkela 02.12.2008 02:16

Курлы проще, но дольше выполняются, извините

Gifts 02.12.2008 02:16

И не хватает полей в посте

action=login&return_url=%2F&login=Buffalon&passwor d=xXx&x=15&y=6

приблизительно так

Buffalon 02.12.2008 02:19

Gifts прав .А откуда ты их нарыл???Я искал не нашёл ничего ... .Gifts + , УЧУ Курлы , всем спс

DIAgen 02.12.2008 02:20

Цитата:

Сообщение от Buffalon
а можно плмз пример с КУРЛ?

Вот держи

PHP код:

$handle curl_init();

curl_setopt($handleCURLOPT_COOKIE'remixlang=0;');
curl_setopt($handleCURLOPT_PROXY'91.196.0.75:80');
curl_setopt($handleCURLOPT_VERBOSEfalse);
curl_setopt($handleCURLOPT_HEADERfalse);
curl_setopt($handleCURLOPT_RETURNTRANSFERtrue);
curl_setopt($handleCURLOPT_REFERER'http://www.weblancer.net/');
curl_setopt($handleCURLOPT_URL'http://www.weblancer.net/account/login/');
curl_setopt($handleCURLOPT_USERAGENT'User-Agent: Mozilla/6.0 (Windows; U; Windows NT 6.1; ru; rv:2.9.0.4) Gecko/2009102920 Firefox/3.1.4');
curl_setopt($handleCURLINFO_HEADER_OUTtrue);
curl_setopt($handleCURLOPT_POSTtrue);
curl_setopt($handleCURLOPT_POSTFIELDS'action=login&login=Buffalon&password=xXx'); 

echo 
$response iconv('windows-1251''UTF-8'curl_exec($handle));
//echo $response = curl_exec($handle); // У меня просто все на UTF8

curl_close($handle); 

Ответ сервера:
Цитата:

Авторизация пользователя Неверно указан пароль. Число оставшихся попыток — 3. При превышении лимита возможность авторизации будет доступна через час.

Buffalon 02.12.2008 02:23

Цитата:

Сообщение от DIAgen

Вот держи

PHP код:

$handle curl_init();

curl_setopt($handleCURLOPT_COOKIE'remixlang=0;');
curl_setopt($handleCURLOPT_PROXY'91.196.0.75:80');
curl_setopt($handleCURLOPT_VERBOSEfalse);
curl_setopt($handleCURLOPT_HEADERfalse);
curl_setopt($handleCURLOPT_RETURNTRANSFERtrue);
curl_setopt($handleCURLOPT_REFERER'http://www.weblancer.net/');
curl_setopt($handleCURLOPT_URL'http://www.weblancer.net/account/login/');
curl_setopt($handleCURLOPT_USERAGENT'User-Agent: Mozilla/6.0 (Windows; U; Windows NT 6.1; ru; rv:2.9.0.4) Gecko/2009102920 Firefox/3.1.4');
curl_setopt($handleCURLINFO_HEADER_OUTtrue);
curl_setopt($handleCURLOPT_POSTtrue);
curl_setopt($handleCURLOPT_POSTFIELDS'action=login&login=Buffalon&password=xXx'); 

echo 
$response iconv('windows-1251''UTF-8'curl_exec($handle));
//echo $response = curl_exec($handle); // У меня просто все на UTF8

curl_close($handle); 

Ответ сервера:


Чёрт - реально проще , спс .Учу КУРЛ

DIAgen 02.12.2008 02:28

Цитата:

Сообщение от Pashkela
Курлы проще, но дольше выполняются, извините

Можешь привести тесты или статью где это описано что медленей?
fsockopen ты на прямую просто работаешь с сокетами, а Curl уже все сделано и не надо заморачиваться, но даже если Curl меделение fsockopen, то Curl выигрывает в том что можно использовать curl_multi

DIAgen 02.12.2008 02:29

Цитата:

Сообщение от Buffalon
Чёрт - реально проще , спс .Учу КУРЛ

Учить не чего не надо, надо просто читать документацию и понимать что делаеться и как, а остальное в голове само сабой заложеться (:

Pashkela 02.12.2008 02:38

Цитата:

Сообщение от DIAgen

Можешь привести тесты или статью где это описано что медленей?

http://habrahabr.ru/blogs/php/42158/

))) Мда, чото я сегодня не в форме. Сорри

ЗЫЖ Даже больше - когда fsockopen отключен на сайте, curl практически всегда работает. Вот это сел в лужу:) Ставьте мне минусы быро

DIAgen 02.12.2008 02:52

Цитата:

Сообщение от Pashkela
http://habrahabr.ru/blogs/php/42158/

))) Мда, чото я сегодня не в форме. Сорри

ЗЫЖ Даже больше - когда fsockopen отключен на сайте, curl практически всегда работает. Вот это сел в лужу:) Ставьте мне минусы быро

Ставить не чего не будем (:

Но у Curla есть не большой не достаток, он заключает в том чно не может работать с патоком даных, если я правильно выразился, т.е если использовать протокол SMTP то уж тут не как не обойтись без Socket Functions

Pashkela 02.12.2008 02:57

delete

DIAgen 02.12.2008 03:03

Цитата:

Сообщение от Pashkela
Если речь идет о https, то кажется я понял

Неа.. не правильно понял
Цитата:

SMTP - Simple Mail Transfer Protocol. Простой Протокол Передачи Почты.
Там отправялеться запрос на подключение и читаем ответ и если ответ 220, то отправляем запрос приветсвия EHLO и все это идет в одном соедение.
Вот не большой пример
PHP код:

$socket socket_create AF_INETSOCK_STREAMSOL_TCP ) ;
        
socket_connect $socket$domen_mx25 ) ;
        
$tmp_soket socket_read $socket512 ) ;
        if (
substr $tmp_soket0) !== '220') {
            return 
false ;
        }
        
socket_write $socket"EHLO {$domain}\n" ) ;
        
$tmp_soket socket_read $socket512 ) ;
        if (
substr $tmp_soket0) !== '250') {
            return 
false ;
        } 


PHPoozy 02.12.2008 03:05

EHLO ))))

PHPoozy 02.12.2008 03:06

жошшш

PHPoozy 02.12.2008 03:07

:D AAAAAAAAAAAAAAAAAAAA =))))

b3 02.12.2008 03:10

В настоящее время libcurl поддерживает протоколы http, https, ftp, gopher, telnet, dict, file, и ldap. (с) php.net

Сокеты - все остальное (как понял я)

Pashkela 02.12.2008 03:13

Цитата:

Сообщение от PHPoozy
EHLO ))))

ESMTP — расширяемый протокол, в отличие от SMTP. При установлении соединения сервер объявляет о наборе поддерживаемых расширений (в качестве ответа на команду EHLO). Соответствующие расширения могут быть использованы клиентом при работе. Необходимо помнить, что если сессия начинается с команды HELO (используемой в «классическом» SMTP, RFC 821), то список расширений выводиться не будет.

http://ru.wikipedia.org/wiki/SMTP

PHPoozy 02.12.2008 03:19

ради такой х*йни посылать ехло этож надо так...

FeoЩту 02.12.2008 10:37

Цитата:

Сообщение от b3
В настоящее время libcurl поддерживает протоколы http, https, ftp, gopher, telnet, dict, file, и ldap. (с) php.net

Сокеты - все остальное (как понял я)

curl - надстройка над сокетами

DIAgen 02.12.2008 10:39

Цитата:

Сообщение от PHPoozy
ради такой х*йни посылать ехло этож надо так...

Я писал этот скрипт для авторизации на gmail, ты попробуй авторизоваться отсылая HELO.

И HELO был в первой версии протокола, в последующих рекомундуеться использовать EHLO.

P.S. почитай спецификацию протолов (:

DIAgen 02.12.2008 10:41

Цитата:

Сообщение от FeoЩту
curl - надстройка над сокетами

Можно сказать так, Curl - это на подобии фреймворка для работы с сокетами (:

vikseriq 02.12.2008 23:31

Кста, раз про курл. На чем курляндию пустить на локале? Денвер тупит, АппСерт, ТопСерв, Юниформ и ХАМПП тоже. Что делать? Именно надо под виндами, на никсы не гнать )

Chaak 02.12.2008 23:37

Цитата:

Сообщение от vikseriq
Кста, раз про курл. На чем курляндию пустить на локале? Денвер тупит, АппСерт, ТопСерв, Юниформ и ХАМПП тоже. Что делать? Именно надо под виндами, на никсы не гнать )

Последний вариант: http://wampserver.com

Потом в трее левой кнопкой мыши -> PHP -> php_curl

vikseriq 02.12.2008 23:43

Снова Чакусу thnk )

rushter 03.12.2008 00:03

http://forum.antichat.ru/thread79123.html
http://ru2.php.net/manual/ru/book.curl.php
вот за 15минут научишься


Время: 09:21