2014-10-13 3 views
1

Я запрашиваю сайт с cURL, который автоматически входит в систему, и хотя все работает отлично каждый запрос GET после того, как в журнале скриптов будет содержаться «localhost» в URL вместо фактического домена сайта, так что он выбрасывает ошибку 404.cURL PHP Домен по умолчанию для localhost

Пример: Вместо того, чтобы быть https://remotesite.com/dashboard это делает http://localhost.com/dashboard(Также обратите внимание, что не использует протокол HTTPS для http://localhost.com/dashboard)

Вот мой код:

$curl = curl_init(); 

$user_agent = 'Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0'; 
$url = 'https://remotesite.com/dashboard'; 
$post_data = 'username=username&password=password&cookie=true&destination=&login=Log+In'; 

curl_setopt ($curl, CURLOPT_URL, $url); 
curl_setopt ($curl, CURLOPT_USERAGENT, $user_agent); 
curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt ($curl, CURLOPT_HEADER, 0); 
curl_setopt ($curl, CURLOPT_POSTFIELDS, $post_data); 
curl_setopt ($curl, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($curl, CURLOPT_AUTOREFERER, 1); 
curl_setopt ($curl, CURLOPT_COOKIEFILE, "cookie.txt"); 
curl_setopt ($curl, CURLOPT_COOKIEJAR, "cookie.txt"); 

$result = curl_exec ($curl); 
$errmsg = curl_error($curl); 

echo $result; 
+0

Если это запрос на отправку, вы должны установить 'CURLOPT_POST'' TRUE'. В зависимости от вашей версии PHP она может быть FALSE по умолчанию. Посмотрите, не имеет ли это никакого эффекта. – Max

+0

@Max попробовал, но не сработал :( – reddead

+0

Вы за прокси? – Max

ответ

0

Это происходит потому, что сайт, который вы пытаются использовать пути родственников родственников в своих hrefs. Так что вы должны попробовать изменить base tag, чтобы использовать правильный домен.

Этот вопрос может помочь вам: Curl and relative path in <head>.

Смежные вопросы