PHP:即使没有设置,仍然可以工作

时间:2010-09-04 20:14:52

标签: php

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@!¤&amp;/()_?,.-]).*$/m); if(regex.test(this.value)) { pwok.style.visibility = 'visible'; } else { pwok.style.visibility = 'hidden'; }" style="width:200px;" />&nbsp;<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,为什么会这样?

2 个答案:

答案 0 :(得分:3)

因为输入在那里,即使表单是空的,表单仍然会发送它。所以即使它是空的,它仍然是设置,因为它仍然存在于$_POST中,所以它仍然会延续到$data

您应该使用!empty()(意思是“不为空”)代替:

if(!empty($pw_new)) {
}

答案 1 :(得分:2)

即使您什么都不写,您也会设置$data["new_password"],然后设置$pw_new,您可能需要检查值而不是isset

if ($pw_new != '') {
echo 'LOL';
}