php curl вход на сайт для обработки данных - PullRequest
0 голосов
/ 06 марта 2012

Попробовал это:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://site/takelogin.php');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'username=USER&password=PASS');
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec ($ch);
curl_close ($ch);

Все начинается в login.php , но формируется на takelogin.php , и если имя пользователя и пароль исправляют, оно перенаправляет на acc.php Для лучшего понимания части публикации login.php html сторона, которую я считаю важной:

<form action="takelogin.php" id="signup" method="post">
<input id="username" name="username" type="text" maxlength="25" value="">
<input id="password" name="password" type="password" maxlength="60" value="">
<input name="commit" type="submit" value="Login">
<input type="hidden" name="returnto" value="/acc.php"

Даже в адресной строке браузера попытался ввести: http://site/takelogin.php?returnto=acc.php&username=USER&password=PASS Не повезло.

Чего мне не хватает в моем скрипте скручивания?

Ответы [ 3 ]

0 голосов
/ 06 марта 2012

Если вам необходимо предоставить учетные данные для базовой аутентификации, убедитесь, что вы добавили что-то вроде следующего в скрипт получения формы.

curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
0 голосов
/ 06 марта 2012

Curl не следует перенаправлениям по умолчанию, для этого есть CURLOPT_FOLLOWLOCATION.

При отсутствии доступа к этой системе входа в систему, самое большее, мы можем сказать, что, возможно, сценарий входа проверяет значение кнопки отправки, поэтому добавьте commit=Login к значениям вашего запроса.

0 голосов
/ 06 марта 2012

Если вы хотите, чтобы curl следовал за перенаправлениями php, вам нужно использовать это:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

Но у вас также есть поле "returnto" в вашей форме, которое вы не используете в своем скрипте curl.Вам нужна эта переменная или она необязательна?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...