HTML new_password:
<input name="new_password" type="password" maxlength="25" id="new_password" class="ModuleTextbox" onkeyup="var regex = new RegExp(/^.*(?=.{6,})(?=.*\d)(?=.*[aA-zZ@!¤&/()_?,.-]).*$/m); if(regex.test(this.value)) { pwok.style.visibility = 'visible'; } else { pwok.style.visibility = 'hidden'; }" style="width:200px;" /> <img id="pwok" src="ok.png"
alt="R" style="visibility: hidden;" />
提交表单后的php:
foreach($_POST as $key => $value) {
$data[$key] = filter($value);
}
$pw_new = $data["new_password"];
if(isset($pw_new)) {
echo "LOL";
}
即使我没有在该领域写任何东西,它回应了LOL,为什么会这样?
答案 0 :(得分:3)
因为输入在那里,即使表单是空的,表单仍然会发送它。所以即使它是空的,它仍然是设置,因为它仍然存在于$_POST
中,所以它仍然会延续到$data
。
您应该使用!empty()
(意思是“不为空”)代替:
if(!empty($pw_new)) {
}
答案 1 :(得分:2)
即使您什么都不写,您也会设置$data["new_password"]
,然后设置$pw_new
,您可能需要检查值而不是isset
if ($pw_new != '') {
echo 'LOL';
}