|
|
|
| На сайте есть форма с помощью которой к теме можно приаттачить картинку.
<form name=f2 action="http://10.6.5.56/cgi-local/upload2pl.pl?bla&bla&bla" method="post" enctype="multipart/form-data">
<br><input type="file" name="file">
<input type="image">
</form>
|
Я с помощью cURL выполняю запрос:
<?php
$url = "http://10.6.5.56/cgi-local/upload2pl.pl?bla&bla&bla";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($ch, CURLOPT_REFERER, "http://10.6.5.56/cgi-local/upload2pl.pl?bla&bla&bla");
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); // Отправить cookie
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);
$result = curl_exec($ch);
echo '<pre>';
print_r(curl_getinfo($ch));
echo "\n\ncURL error number:" .curl_errno($ch);
echo "\n\ncURL error:" . curl_error($ch);
echo '<br />';
curl_close($ch);
echo $result;
?>
|
Запрос выполняется и картинка, по всей видимости заливается, но после этого следует редирект и адрес там не абсолютный, т.е.: http://10.6.5.56/cgi-local/artpl.pl?bla&bla&bla, а относительный: artpl.pl?bla&bla&bla и перенаправление идет уже на мой сервер.
Теперь вопрос, как заставить cURL самостоятельно последовать по нужному абсолютному адресу?
PS
Исходя из того, что праметр curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); присутствует в коде все должно сработать, но почемуто не работает.
Интересное:
Array
(
[url] => http://10.6.5.56/cgi-local/upload2pl.pl?com!at&name!at5812575162&comat!frazdel&art!&comnum!&news!&autor!&comment!&razdel!r1&tema!
[content_type] => text/html; charset=ISO-8859-1
[http_code] => 200
[header_size] => 195
[request_size] => 563
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 1.585
[namelookup_time] => 0
[connect_time] => 0.004
[pretransfer_time] => 0.005
[size_upload] => 73225
[size_download] => 417
[speed_download] => 263
[speed_upload] => 46198
[download_content_length] => 0
[upload_content_length] => 73225
[starttransfer_time] => 0.028
[redirect_time] => 0
)
cURL error number:0
cURL error:
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Date: Wed, 05 Nov 2008 01:12:42 GMT
Server: Apache/1.3.33 (Win32) PHP/4.4.0
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1
|
| |
|
|
|
|
|
|
|
для: Zend72
(05.11.2008 в 04:04)
| | Так кажется понял! В коде старници присутствует:
<SCRIPT Langauge="JavaScript">
function gotoURL() {
window.location.href='artpl.pl?bla&bla&bla'
}
function TimerURL() {
setTimeout("gotoURL()", 1)
}
TimerURL()
</SCRIPT>
|
И если параметр curl_setopt($ch, CURLOPT_NOBODY, 0); присутствует в запросе, то echo $result; выводит его в мой браузер и он редиректит на несуществующий адрес. Как быть в такой ситуайии? Парсить страничку и делать еще один запрос на правильный адрес или есть средство обойти такую нестправедливость? | |
|
|
|
|
|
|
|
для: Zend72
(05.11.2008 в 04:11)
| | Ну в общем так я и поступил (парсим страничку и делаем правильный запрос) и думаю другого способа просто нет. Темболее это решение для отдельно взятого сайта, поэтому тему можно закрыть удилить и т.д. Всем прочитавшим спасибо, за то что проявили интерес к теме =) | |
|
|
|