Пытаетесь войти на сайт с помощью PHP & cURL? - PullRequest
4 голосов
/ 17 марта 2010

Я никогда раньше такого не делал ... Я пытаюсь зайти на swagbucks.com и получить некоторую информацию, но она не работает. Может кто-нибудь сказать мне, что не так с моим сценарием?

<?php
$pages = array('home' =>
'http://swagbucks.com/?cmd=home',
           'login' =>
'http://swagbucks.com/?cmd=sb-login&from=/?cmd=home',
           'schedule' =>
'http://swagbucks.com/?cmd=sb-acct-account&display=2');
$ch = curl_init();
//Set options for curl session
$options = array(CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; `rv:1.9.2) Gecko/20100115 Firefox/3.6',`
         CURLOPT_HEADER => TRUE,
         //CURLOPT_RETURNTRANSFER => TRUE,
         CURLOPT_COOKIEFILE => 'cookie.txt',
         CURLOPT_COOKIEJAR => 'cookies.txt');


//Hit home page for session cookie
$options[CURLOPT_URL] = $pages['home'];
curl_setopt_array($ch, $options);
curl_exec($ch);

//Login
$options[CURLOPT_URL] = $pages['login'];
$options[CURLOPT_POST] = TRUE;
$options[CURLOPT_POSTFIELDS] = 'emailAddress=lala@yahoo.com&pswd=jblake&persist=on';
$options[CURLOPT_FOLLOWLOCATION] = FALSE;
curl_setopt_array($ch, $options);
curl_exec($ch);

//Hit schedule page
$options[CURLOPT_URL] = $pages['schedule'];
curl_setopt_array($ch, $options);
$schedule = curl_exec($ch);

//Output schedule
echo $schedule;

//Close curl session
curl_close($ch);
?> 

Но я все равно не могу войти. Что не так?

Ответы [ 3 ]

1 голос
/ 17 марта 2010

Я предлагаю вам использовать

curl_setopt($ch, CURLOPT_COOKIEFILE, '/dev/null');

Таким образом, куки хранятся внутри в памяти без необходимости отдельного файла.

1 голос
/ 17 марта 2010

попробуйте повторить каждый запрос, чтобы увидеть, если что-то пошло не так. (включение CURLOPT_RETURNTRANSFER)

0 голосов
/ 17 марта 2010

У меня работает с "persist = 1", а не с "persist = on":

$options[CURLOPT_POSTFIELDS] = 'emailAddress=lala@yahoo.com&pswd=jblake&persist=on'; // doesn't work
$options[CURLOPT_POSTFIELDS] = 'emailAddress=lala@yahoo.com&pswd=jblake&persist=1'; // works
$options[CURLOPT_POSTFIELDS] = 'emailAddress=lala@yahoo.com&pswd=jblake'; // also works
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...