Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > PHP > Помогите с CURL |
Автор: secondvad2 27.10.11, 11:53 |
Всем привет, задачка одновременно простая и интересная, -пишу робота который будет отслеживать доставку груза по номеру накладной вот этой компании, Вот по этой ссылке С CURL раньше работал но с методом ГЕТ. Накидал вот такой код (брал из примера) <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> $uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"; $url=' Наша ссылка, см в тексте'; $postdata="trace1=11-5072-5400"; // номер накладной для примера $ch = curl_init( $url ); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_ENCODING, ""); curl_setopt($ch, CURLOPT_USERAGENT, $uagent); curl_setopt($ch, CURLOPT_TIMEOUT, 120); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); // curl_setopt($ch, CURLOPT_COOKIEJAR, "z://coo.txt"); // curl_setopt($ch, CURLOPT_COOKIEFILE,"z://coo.txt"); $content= curl_exec( $ch ); $err = curl_errno( $ch ); $errmsg = curl_error( $ch ); $header = curl_getinfo( $ch ); curl_close( $ch ); echo $content; $header['errno'] = $err; $header['errmsg'] = $errmsg; $header['content'] = $content; return $header; Скрипт нормально выводит мне весь контент страницы, но как я понимаю сам ПОСТ запрос не срабатывает, так как не вижу данных о доставке. В коде страницы, я нашел скрытое поле, и попробовал изменить пост данные <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> Но тоже ничего не вышло..$postdata="trace1=11-5072-5400&trace_mode=1"; В чем засада? |
Автор: Demon_id 27.10.11, 12:23 |
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); вот эта штука криво работает при определённых обстоятельствах. |
Автор: secondvad2 27.10.11, 12:29 |
Отключил, результата не дало.( |
Автор: panaslonik 27.10.11, 12:57 |
Еще там есть trace_submit |
Автор: secondvad2 27.10.11, 13:01 |
panaslonikТОЧНО! Я об этож помнил, и сначала составил такой пост <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> $postdata="trace1=11-5072-5400&trace_mode=1&trace_submit"; и сразу не заметил что в конце переменной должен стоять знак "=" Добавил его и заработало) <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> $postdata="trace1=11-5072-5400&trace_mode=1&trace_submit="; спасибо тебе!! |
Автор: Pr0[)!9Y 27.10.11, 21:31 |
м? |
Автор: Demon_id 28.10.11, 08:13 |
Цитата Pr0[)!9Y @ Цитата (Demon_id @ Вчера, 15:23) вот эта штука криво работает при определённых обстоятельствах. м? CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set |
Автор: Pr0[)!9Y 28.10.11, 11:23 |
А, это. Ну он об этом сообщает, так что он не работает совсем. А не криво |