2011-05-05 35 views
0
<?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"; 
} 
?> 

在我的页面中,但是当我按下继续时,页面会在下一页,而字段为空。如何阻止我的PHP页面继续当字段为空

由于我在页面上看到“正在打印其他”,所以即使按b4,我仍然按下继续,以便在用户按下继续按钮时应该运行脚本。

+0

wat ...这是你应该使用['empty'](http://php.net/manual/en/function.empty.php)而不是'isset'的情况吗?我不知道。 – sdleihssirhc 2011-05-05 16:33:38

+0

你可以在你的表单域后面发布代码吗? – luckytaxi 2011-05-05 16:59:15

回答

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

这样,isset将仅在网页被通过POST命中实际请求检查。如果它通过GET或其他方法加载,那么这块代码根本就不会执行。

0

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

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

+0

操作是下一页,方法是后 – PUG 2011-05-05 16:38:41

+0

任何想法如何设置它的权利? – PUG 2011-05-05 16:39:16

+0

您在下一页中发布的代码是? – Zirak 2011-05-05 16:44:36

0

尝试用!empty()代替isset(),可能由于$_POST['submit']被设置而发生,但没有值。 empty()返回true的,正如名称所示,任何类型,它是空的,请参阅:http://php.net/manual/en/function.empty.php

所以基本上isset()将返回false仅当该变量是没有设置,但!empty()将返回false即使变量设置但被认为是空的(设置为FALSE,NULL,0 .etc)。试一试。

相关问题