php - 返回值为 0 的验证函数
问题描述
我忙于一个学校项目,我做了一个检查密码是否有效的功能。由于某种原因,它返回“0”。我不知道为什么。有没有人可以在这里帮助我?
我还制作了检查邮件和用户名的功能,这些功能都很好。在此先感谢您的帮助!
function checkPassword($pass){
if (strlen($pass) < 6) {
return "Your password must contain more than 6 characters";
}
else {
if (preg_match('~[0-9]~', $pass)){
if (preg_match('/^[\p{L}\p{N}_-]+$/u', $pass)) {
return true;
}
else {
return "Your password contains illegal characters";
}
}
else {
return "Your password must contain at leas one number";
}
}
}
$val3 = checkPassword($_POST['password']);
if ($val3 !== true) {
$_SESSION["wrongreg"] = $val3; // $val3 = 0, for some reason.
header('Location: register.php');
}
解决方案
正如 IncredibleHat 所说,它不能返回 0。但是,您实际上并没有显示打印 $_SESSION["wrongreg"] 数据的位置。您改为使用 header() 重定向。为什么您可以说它告诉您响应为 0 的唯一解释是“register.php”页面上发生了一些事情,您还没有在此处显示。
您可能在该页面上做的一件事是: strval(intval($_SESSION["wrongreg"]));
那会给我们0(但这是一件奇怪的事情)。更有可能的是register.php页面上有一些完全不同的代码,这会妨碍脚本打印与该密码函数的返回字符串完全不同的内容。
推荐阅读
- python - 使用通用视图的 django rest 框架电子邮件验证
- mongodb - NestJS、MongoDB、Mongoose、GraphQL - 重复自己描述用户或任何模型
- ios - 多个应用程序用户访问 CloudKit 中的私有数据库
- unity3d - 使用 ScreenCapture.CaptureScreenshotAsTexture() 后如何显示纹理;
- javascript - 在段落之后插入元素(不仅仅是节点)
- javascript - 如何从 UWP WebView 中提取 httponly cookie?
- python-3.x - 为什么 tkinter 方面在 Windows 7 中不起作用?
- java - 从字符串慢慢将文本打印到 JLabel?
- tcl - 为什么 tcl 认为空字符串是双精度的?
- python-3.x - 如何在 QGridLayout 中为隐藏的 QtWaitingSpinner 保留空间?