我有以下代码
$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子句能够工作。我该怎么办?
答案 0 :(得分:0)
CUrl只是为您执行请求,在您的情况下,返回目标页面的内容。您需要在目标网页上仅输出1
或0
,并按以下方式检查:
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是有效的身份验证。