У меня есть следующий код
$handle = curl_int();
$i = '123456';
curl_setopt_array(
$handle,
array(
CURLOPT_URL =>'localhost/unnamed/loginpage.php',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => "uname=birat&pword=$i",
CURLOPT_RETURNTRANSFER => true,
)
);
$response = curl_exec($handle);
//This if statement doesnot work
if($response == 1) {
echo 'Password is '. $i;
}
}
curl_close($handle);
Проблема в том, что я всегда получаю всю html-страницу вместо «1» или «0», указывая, что имя пользователя и пароль совпадают. Также последнее утверждение if не работает. Если я не использую этот оператор if, я получаю хороший результат, т. Е. «1» вверху и html-данные страницы под ним. Я не хочу, чтобы эти данные HTML. Я просто хочу, чтобы «1» или «0», и я хочу, чтобы это, если предложение работает. Что я делаю?
Вам также необходимо проверить http-код. Это может помочь вам.
$httpcode = curl_getinfo($handle,CURLINFO_HTTP_CODE);
if ($httpcode == '200')
{
//logged in
}
else
{
//not logged in
}
В большинстве случаев HTTP-код 200 является действительной аутентификацией.
CUrl просто выполняет запросы за вас и, в вашем случае, возвращает содержимое целевой страницы. Вам нужно только вывести 1
или же 0
на целевой странице и проверьте, как это:
if ( trim($result)=='1' ) {
// do something
}