首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >If isset $_POST

If isset $_POST
EN

Stack Overflow用户
提问于 2012-10-24 16:16:57
回答 12查看 808.2K关注 0票数 109

我在一个页面上有一个表单,该表单提交到另一个页面。在那里,它检查输入mail是否已填充。如果是这样,那么做一些事情,如果它没有填满,做一些其他的事情。我不明白为什么它总是说设置好了,即使我发送了一个空的表单。丢失或错误的是什么?

step2.php

代码语言:javascript
复制
<form name="new user" method="post" action="step2_check.php"> 
    <input type="text" name="mail"/> <br />
    <input type="password" name="password"/><br />
    <input type="submit"  value="continue"/>
</form>

step2_check.php

代码语言:javascript
复制
if (isset($_POST["mail"])) {
    echo "Yes, mail is set";    
} else {    
    echo "N0, mail is not set";
}
EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2012-10-24 16:19:23

大多数表单输入总是被设置的,即使没有填满,所以你也必须检查是否为空。

由于!empty()已经对这两种情况都进行了检查,因此可以使用以下命令:

代码语言:javascript
复制
if (!empty($_POST["mail"])) {
    echo "Yes, mail is set";    
} else {  
    echo "No, mail is not set";
}
票数 230
EN

Stack Overflow用户

发布于 2012-10-24 16:18:43

使用!empty而不是isset。对于$_POST,isset返回true,因为$_POST数组是超全局数组,且始终存在(set)。

或者更好地使用$_SERVER['REQUEST_METHOD'] == 'POST'

票数 25
EN

Stack Overflow用户

发布于 2012-10-24 16:19:21

如果发送的表单为空,则仍将发送$_POST['mail'],但值为空。要检查该字段是否为空,您需要检查

代码语言:javascript
复制
if(isset($_POST["mail"]) && trim($_POST["mail"]) != "") { .. }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13045279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档