【发布时间】:2013-04-09 11:05:41
【问题描述】:
如果这段代码很糟糕,我很抱歉,因为我在不到一个月前刚开始使用 php 时,正在阅读一本书并为我的学校项目修改它。
我正在尝试理解此验证的含义,但似乎无法完全理解它,因为我是 php 新手。
代码:
if (preg_match ('/^(\w*(?=\w*\d)(?=\w*[a-z])(?=\w*[A-Z])\w*){6,20}$/', $_POST['pass']) ) {
//$p = mysqli_real_escape_string ($dbc, $_POST['pass']);
$p = $_POST['pass'];
$sticky_password = $p;
} else {
$error['pass'] = 'Please enter a valid password!';
}
任何帮助将不胜感激!谢谢!
非常感谢.. :)
【问题讨论】:
-
我的任何密码都会失败,它们总是包含特殊字符,并且总是超过 20 多个字符。不要强迫我在你的网站上设置垃圾密码。
-
你可以用
/^\w{2,20}$/替换/^[a-z\d_]{2,20}$/i -
为什么使用正则表达式来验证用户名或密码?你所做的只是给用户带来不便。如果您试图防止黑客入侵,那么有更好的技术。
-
@GitKidd:书中的大多数代码只是示例性的,并不是为了以后真正使用而复制和粘贴。保重。