如何在curl php中只得到一个响应布尔值

时间:2014-09-17 06:00:01

标签: php curl

我有以下代码

$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',我希望这个if子句能够工作。我该怎么办?

2 个答案:

答案 0 :(得分:0)

CUrl只是为您执行请求,在您的情况下,返回目标页面的内容。您需要在目标网页上仅输出10,并按以下方式检查:

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

答案 1 :(得分:-1)

您还需要检查http代码。这可能会对你有所帮助。

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

在大多数情况下,HTTP代码200是有效的身份验证。