我有以下代码
$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子句能够工作。我该怎么办?
CUrl只是为您执行请求,在您的情况下,返回目标页面的内容。您只需要在目标页面上输出1
或0
,并进行如下检查:
if ( trim($result)=='1' ) {
// do something
}
您还需要检查http代码。这可能会对你有所帮助。
$httpcode = curl_getinfo($handle,CURLINFO_HTTP_CODE);
if ($httpcode == '200')
{
//logged in
}
else
{
//not logged in
}
在大多数情况下,HTTP代码200是有效的身份验证。