我读过如果您使用预准备语句,则无需验证或清理用户的输入.
然而,在以下示例中,这对我没有意义.
用户提供了他的电子邮件地址.
我通常会这样做
验证码
// to validate data
if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
header("Location: index.php");
die("Wrong email-address");
}
Run Code Online (Sandbox Code Playgroud)
声明说,如果我们使用预准备语句,我们不需要验证数据,如下所示
没有验证码的代码
// to get email-address nad passhash from the db
$result = pg_prepare($dbconn, "query2", 'SELECT email, passhash_md5
FROM users WHERE email = $1
AND passhash_md5 = $2;');
$result = pg_execute($dbconn, "query2", array($_POST['email'], $_POST['password']));
if(!$result) {
echo "An error occurred";
exit;
}
Run Code Online (Sandbox Code Playgroud)
我不确定我们是否需要在最后一段代码中使用验证码,因为我们使用pg_prepare和pg_execute.
如果使用预准备语句,是否需要考虑验证和清理用户的输入?