Pull to refresh

Comments 21

в первом случае вроде надо добавить
$send .= "Content-type: application/x-www-form-urlencoded\r\n";
и должно заработать.
Да вы волшебник, сударь!
Пойду подправлю тему.
если не затруднит подкиньте ктонибудь пример где происходит аунтификация по сертификату личному,как на light.webmoney.ru к примеру.
давно писал этот скрипт щас уже не заню куда он делся, ну чтоб все это заработало я просто тупо проснифил общение броузера с веб сервером, ну собственно все эти заголовки что шлет броузер серверу, я послал скриптом как выше описано, вот и все...
Что-то подобное было в дипломе вот одна функция)
function doConnect($method, $url, $cert, $cert_pass,$vars,$head) {
$ch = curl_init();
if($method == 'GET' || $method == '')
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"GET");
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_POST,0);
curl_setopt($ch,CURLOPT_USERAGENT,"User-Agent=Firefox/2.0.14");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch,CURLOPT_SSLCERT,"$cert");
curl_setopt($ch,CURLOPT_SSLCERTPASSWD,"$cert_pass");
if($head!=="")
curl_setopt($ch,CURLOPT_HTTPHEADER,array("ClientSign: $head\n"));
if ($method == 'POST') {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
}
$answ = curl_exec($ch);
curl_close($ch);
print "\n\nAnswer from server:\n";
print $answ;

}
Вместо конструкции

$postdata = "";
foreach ( $postvars as $key => $value )
$postdata .= "&".rawurlencode($key)."=".rawurlencode($value);
$postdata = substr( $postdata, 1 );


Лучше использовать функцию http_build_query


$postdata = http_build_query($postvars);
Спасибо, не знал про такую.
ну только если не нужна совместимость с php4
"http_build_query
(PHP 5, PECL pecl_http:0.1.0-0.9.0)" (c) the PHP Documentation Group
Такой весь из себя хакер, а элементарных вещей не знает:
mail@gmail.com
Код:
mail@gmail.com.
Хех, может написать yet another статью о том как писать посты на хабре) Ато есть еще замечания
Ни разу не сказал что я хакер. Просто влом было искать таблицу html сущностей. Зато всегда найдутся люди, которые только лишь для того чтобы подъебнуть человека готовы разрыть здоровенные справочники...
Эээээ.. у тебя мания величия))) Нафиг мне тебя под**ывать. Мне уже не 17 лет(к сожалению). По другому я тебе никак не мог это сказать, кстати все твои статьи на данную тематику плюсовал, и слово хакер написал без кавычек!!. А ты тут прям так стреманулся.. Тот кто хочет написать статью, вместо того чтоб писать, тупой хабрапарсер делает ссылку, пойдет и найдет решение. Если бы ты не акцентировал на этом внимание в статье, я бы не написал такой комментарий) Вообщем ты спровоцировал сча ненужный флуд с моей стороны.
Дык я вроде тоже без агрессии писал). А про спецсимвол — это природная лень =). Проще было пару строчек в пост докатать.
)) А мат? ) Ладно, проехали)
кстати раз уже тут про курл - хочу заметить что курл не работает с фтп через сокс5 - может кто-то не знает еще...
Человек, знающий, что такое сокеты - знает, что курл не может ничего такого, чего не может, допустим, телнет. Курл лишь предоставляет удобный интерфейс. А ошибка с контент-тайпом (специально для пионеров) - ничего общего с ХТТПС не имеет - точно так же "провалился" бы и запрос без ССЛ. И даже не "запрос провалился" - а просто запрашивающий не дал серверу понять, что в теле запроса придут данные из формы. А еще вдогонку, для тех же пионеров: когда пишете подобную программу - запрашивайте для начала свой собственный какой-нибудь скрипт, и только когда убедитесь, что запрос идет правильно и мог бы быть корректно обработан вашим скриптом - переходите к реальному УРЛу.
Пустой звук. От PHP'шных доков больше пользы.
Честно говоря, вообще не понял, зачем было рассматривать fsockopen в применении к HTTPS, так с протоколом походу только скрипт-кидди работают.
Когда формируете $postdat, проще использовать http_build_query().

CURLOPT_SSL_VERIFYHOST. Познал прелисти такой проверки в FF3. В сертификате указано для какого домена он действителен. Мы проверяем, действительно ли пренадлежит.

Присоединюсь к предыдущим ораторам — от манов пользы больше.
уже ни раз встречал данный пример в рунете… так что низачОт :(
Небольшой совет по использованию curl. Опции гораздо удобнее и более кратко передавать массивом, например:
$options = array
(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_COOKIE => $cookie,
CURLOPT_RANGE => $start . '-' . $end,
CURLOPT_FILE => $fp
);

$ch = curl_init();
curl_setopt_array($ch, $options);
lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20080714/07ea5534/attachment.txt
Sign up to leave a comment.

Articles