2015-05-29 3 views
0

У меня есть простой скрипт php, который делает логин на нужную веб-страницу. Он работает нормально на моем локальном хосте (WAMP сервер), но когда я запускаю его на Heroku, я получаю ответ, как это (ссылка: image link :) responsePHP Curl Login не работает на Heroku

Сценарий прост, как и что:

<?php 
 

 
$username = "username"; 
 
$password = "password"; 
 

 
$ch = curl_init(); 
 

 
curl_setopt($ch, CURLOPT_URL, "url"); 
 
curl_setopt($ch, CURLOPT_POST, 1); 
 
curl_setopt ($ch, CURLOPT_HEADER, true); 
 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('user[username]'=>$username, 'user[password]'=>$password))); 
 
curl_setopt ($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); 
 
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
 
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 
 
curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
 

 
$content = curl_exec($ch); 
 

 
echo $content; 
 

 
?>

Я не знаю, что я делаю неправильно. Это что-то не так с героикой или просто удача, что код работает нормально на моем сервере Wamp? Я также попытался запустить этот скрипт на других страницах бесплатного хостинга, но они не поддерживают параметр CURLOPT_FOLLOWLOCATION, поэтому сценарий не работает.

ответ

-1

Похоже, что страницы, которые я пытаюсь отправить к, есть страна ограничена IP. Спасибо, в любом случае.

0

Текст, который вы видите в верхней части страницы находится заголовок, который вы запросили с:

curl_setopt ($ch, CURLOPT_HEADER, true);

Кроме того, CURLOPT_POST подразумевается при использовании CURLOPT_POSTFIELDS, не нужно для этого.

Вы код должен выглядеть примерно так:

<?php 

$username = "username"; 
$password = "password"; 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, "http://www.yoursite.com"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('user[username]'=>$username, 'user[password]'=>$password))); 
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); 
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 

$content = curl_exec($ch); 

echo $content; 
+0

Благодарим вас за комментарий. Я отредактировал мой код, но это все еще перенаправляет меня на сайт google, когда я бегу от Heroku (ссылка на мое приложение: https://partisrss.herokuapp.com/), но он работает без проблем на моем сервере Wamp. Возможно, есть некоторые настройки для завитки? Я развертываю из dropbox. – user1403588

+0

@ user1403588 Вы решили эту проблему в Heroku? У меня проблема, которая возвращает ошибку 27, когда мое приложение запускается в герою. –

+1

Привет, не было ничего, что можно было бы исправить, поскольку страница давала ограниченный IP-адрес страны, поэтому скрипт не работал. Мои другие скрипты работают по назначению. – user1403588