Протокол HTTPS и его проблемы.

123
П
На сайте с 08.06.2007
Offline
63
#11
maloi86:
Прошу в студию Ваш кусок кода , если он лучше оптимизирован Вам + в репу.

Справедливости ради я должен отметить что привёл код не для работы. Хотя он и работоспособен.

А для понимания что и как.

В нём нет обработки ошибок и ответов сервера.

[Удален]
#12
$curl = new DudeCurl("http://winimg.com/account/login");
$curl->post = array("action"=>"login","password"=>"xxxx","remember"=>"1","return"=>"","task"=>"login","username"=>"xxx");
$curl->exec();


$curl->init("http://winimg.com/upload?action=upload");
$curl->post = array("file_0"=>"@1.jpg");
$curl->exec();

такой код разве не красив? :)

П
На сайте с 08.06.2007
Offline
63
#13
Патапыч, тут все зависит от того что дальше с этим кодом делать) + ООП код куда понятнее

Кто бы спорил.

Я выше написал что пример больше для понимания чем для работы.

Если человеку интересно, он разберёт что делает каждая строчка.

Не думаю что он будет делать тоже самое с вашим или другим классом.

[Удален]
#14
Патапыч:
Кто бы спорил.
Я выше написал что пример больше для понимания чем для работы.
Если человеку интересно, он разберёт что делает каждая строчка.
Не думаю что он будет делать тоже самое с вашим или другим классом.

увы я не думаю что и с вашим, с вашим исория закончится так "так допиши, че тут 5 строк осталось то" ))))

тс без обид, просто статистика

Dreammaker
На сайте с 20.04.2006
Offline
569
#15

bearman, внесите в код класса обработку заголовка "100 Continue" - это по сути можно воспринимать как редирект сам на себя. Этот заголовок редко используется, но в своё время пришлось покопаться пока разобрался почему не могу работать с одним из сайтов. :)

[Удален]
#16
Dreammaker:
bearman, внесите в код класса обработку заголовка "100 Continue" - это по сути редирект. в своё время некоторое время пришлось покопаться пока разобрался почему не могу работать с одним из сайтов. :)

интересно. запишу ка, а есть сайт где можно проверить это?

bearman добавил 19.06.2009 в 18:37

ааа понял про что вы Dreammaker

уже убран ;)

это херня от хттп1.0 апач 1.3 кажется ее еще июзает или иис старый, отключается посылкой заколовка Expect: пустого ;)

помню сам нарвался

Dreammaker
На сайте с 20.04.2006
Offline
569
#17

bearman, сайт точно не вспомню, ну и вопрос в том, что это сайт одного из заказчиков с СЕ (там что-то типа сателлита для статей).

Вот метод из класса, на который я ставил заплатку:

 /*  modified from php.net */



function curl_redir_exec()

{

static $curl_loops = 0;

static $curl_max_loops = 20;

if ($curl_loops++ >= $curl_max_loops)

{

$curl_loops = 0;

return FALSE;

}

curl_setopt($this->ch, CURLOPT_HEADER, true);

$data = curl_exec($this->ch);

$data = preg_split("~(\r?\n){2,}~si", $data);

$y = 0;

if ( isset($data[0]) && ( preg_match('~100 Continue~', $data[0]) ) ){



unset( $data[0] );



$y = 1;



}

if ( count($data) < 2 ) {



return FALSE;

}

else {



$header = $data[$y];

$data = $data[$y+1];



}



$debbbb = $data;



$http_code = curl_getinfo($this->ch, CURLINFO_HTTP_CODE);



if ($http_code == 301 || $http_code == 302) {

$matches = array();

preg_match('/Location:(.*?)\n/', $header, $matches);

$url = @parse_url(trim(array_pop($matches)));

//print_r($matches);

if (!$url)

{

//couldn't process the url to redirect to

$curl_loops = 0;

return $data;

}

$last_url = parse_url(curl_getinfo($this->ch, CURLINFO_EFFECTIVE_URL));



$new_url = $url['scheme'] . '://' . $url['host'] . $url['path'] . (isset($url['query'])?'?'.$url['query']:'');

curl_setopt($this->ch, CURLOPT_URL, $new_url);

// debug('Redirecting to', $new_url);



return $this->curl_redir_exec();

}

else {

$curl_loops=0;

return $debbbb;

}

}

код немного грязноватый, если что будет непонятно, то объясню :)

[Удален]
#18
Dreammaker
На сайте с 20.04.2006
Offline
569
#19
bearman:
какбы подтверждение)
// stupid HTTP/1.0 bug feature fix.

Я когда код глянул подумал, что возможно это с моим случаем связано, ибо помню ,что к HTTP/1.0 относится, но потом отбросил эту мысль. :)

Soeti
На сайте с 22.02.2009
Offline
41
#20

Хотя я сам ...гм.. ООПшник, но тут код Патапыча мне больше понравился. Он просто в тему и нагляден, как раз для ТС. А не сплошь состоящий из методов класса, которые неплохо б еще и покурить перед тем, как разбирать пример..

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий