当字段为空时,如何阻止我的php页面继续

时间:2011-05-05 16:30:45

标签: php scripting validation

<?php 
if(isset($_POST['submit'])){ 
echo "wht the heck"; 
$avail = new CheckEmptyFields(); 
$avail->availtime=$_POST['available_time']; 
echo $avail->chkFieldAvailableTime(); 
} 
else { 
print "<font color='red'>*</font>Printing else"; 
} 
?>

在我的页面中,但是当我按下继续时,页面会在下一页上显示,而字段为空。

因为我在页面上看到“打印其他”,即使是b4我按下继续,所以当用户按下继续按钮时脚本应该运行之前运行。

3 个答案:

答案 0 :(得分:2)

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   if (isset($_POST['submit'])) {
      ... yada yada yada ...
   } else {
      echo '<font yada yada yada';
   }
}

这样,只有在通过POST命中实际请求页面时才会检查isset。如果它是通过GET或任何其他方法加载的,那么这段代码根本就不会执行。

答案 1 :(得分:0)

如果未设置else,则执行$_POST['submit']语句。在页面加载时(在用户点击提交之前),就是这种情况。

编辑:现在我想到了,你把两个放在不同的页面上了吗?什么是action属性的形式?

答案 2 :(得分:0)

尝试将isset()替换为!empty(),由于$_POST['submit']被设置,但可能会发生这种情况,但没有价值。 empty()返回true,如名称所述,任何为空的类型,请参阅:http://php.net/manual/en/function.empty.php

所以基本上isset()只有在变量未设置时才会返回false,但!empty()将返回false,即使变量已设置但被视为空(设置为FALSE) ,NULL,0 .etc)。试一试。