Как получить только логический ответ в curl Stack Overflow

У меня есть следующий код

$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», и я хочу, чтобы это, если предложение работает. Что я делаю?

1

Решение

Вам также необходимо проверить http-код. Это может помочь вам.

$httpcode = curl_getinfo($handle,CURLINFO_HTTP_CODE);
if ($httpcode == '200')
{
//logged in
}
else
{
//not logged in
}

В большинстве случаев HTTP-код 200 является действительной аутентификацией.

-1

Другие решения

CUrl просто выполняет запросы за вас и, в вашем случае, возвращает содержимое целевой страницы. Вам нужно только вывести 1 или же 0 на целевой странице и проверьте, как это:

if ( trim($result)=='1' ) {
// do something
}
0