我读过如果您使用预准备语句,则无需验证或清理用户的输入.
然而,在以下示例中,这对我没有意义.
用户提供了他的电子邮件地址.
我通常会这样做
验证码
// to validate data if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { header("Location: index.php"); die("Wrong email-address"); }
声明说,如果我们使用预准备语句,我们不需要验证数据,如下所示
没有验证码的代码
// 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; }
我不确定我们是否需要在最后一段代码中使用验证码,因为我们使用pg_prepare
和pg_execute
.
如果使用预准备语句,是否需要考虑验证和清理用户的输入?
您仍然需要验证您的数据,但您不必对其进行清理.
使用预准备语句可防止插入恶意代码,但不会检查其形式是否有意义.