我正忙于一个学校项目,我做了一个检查密码是否有效的功能。由于某种原因,它返回“ 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');
}
答案 0 :(得分:0)
正如IncredibleHat所说,它不能返回0。但是,实际上,您不显示打印$ _SESSION [“ wrongreg”]数据的位置。您改为使用header()进行重定向。您为什么可以说它告诉您响应为0的唯一解释是,“ register.php”页面上发生了某些事情,您尚未在此处显示。
您可能在该页面上做的一件事是:strval(intval($ _ SESSION [“ wrongreg”]));
那将给我们0(但是这样做很奇怪)。更有可能的是,在 register.php 页面上有一些完全不同的代码会干扰您的运行,使脚本打印出的内容与该密码函数的返回字符串完全不同。