Я запрашиваю сайт с 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;
Если это запрос на отправку, вы должны установить 'CURLOPT_POST'' TRUE'. В зависимости от вашей версии PHP она может быть FALSE по умолчанию. Посмотрите, не имеет ли это никакого эффекта. – Max
@Max попробовал, но не сработал :( – reddead
Вы за прокси? – Max