如果我能够使用 PHP 5,这会更容易一些,不幸的是这不是一个可行的选择?
我已经在使用 this stackoverflow thread 中的 RFC 2822验证电子邮件格式是否有效,当然这在表单页面上使用 JS,这不是最佳实践。
在保存之前我会再次验证它是否符合这种格式,但我想知道是否有任何方法可以用来帮助防止 SQL 注入(inject)?
最佳答案
错误的方式 - “永远不要相信用户输入”!
首先确定数据是你想要的格式,然后查询数据库。 首先,检查 $_POST[email_address] 是否采用有效的电子邮件格式,例如用正则表达式。仅当它是有效的电子邮件格式时,您才查询数据库。
电子邮件正则表达式代码 (PHP):
<?php
$email = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f682938582b682938582d895999b" rel="noreferrer noopener nofollow">[email protected]</a>";
if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
echo "Email is valid.";
}
else {
echo "Email in invalid.";
}
?>
关于php - 如何使用 PHP 4 防止 $_POST 电子邮件字段的 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9280260/