如果isset $ _POST
我有一个表单提交到另一个页面。 在那里,它检查input的邮件是否被填充。 如果是这样,那么做一些事情,如果没有填充,做一些其他的事情。 我不明白为什么它总是说,它是设置,即使我发送一个空的表格。 什么是缺失或错误?
step2.php:
<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:
if (isset($_POST["mail"])) { echo "Yes, mail is set"; }else{ echo "N0, mail is not set"; }
将其更改为:
if (isset($_POST["mail"]) && !empty($_POST["mail"])) { echo "Yes, mail is set"; }else{ echo "N0, mail is not set"; }
所以$ _POST总是被设置,但是它的内容可能是空的。
由于!empty()已经检查是否设置了该值,所以也可以使用这个版本:
if (!empty($_POST["mail"])) { echo "Yes, mail is set"; }else{ echo "N0, mail is not set"; }
使用!empty
而不是isset
。 isset对于$_POST
返回true,因为$_POST
数组是超全局的并且总是存在(set)。
或者更好地使用$_SERVER['REQUEST_METHOD'] == 'POST'
从php.net ,isset
如果var存在并且具有非NULL值,则返回TRUE;否则返回FALSE。
空的空间被认为是集合。 你需要使用empty()来检查所有的null选项。
如果您发送表单为空,$ _POST ['邮件']仍将被发送,但值为空。 要检查字段是否为空,您需要检查
if(isset($_POST["mail"]) && trim($_POST["mail"]) != "") { .. }
将以下属性添加到input文本表单中: required="required"
。 如果表格未填写,则不允许用户提交表格。
您的新代码将是:
<form name="new user" method="post" action="step2_check.php"> <input type="text" name="mail" required="required"/> <br /> <input type="password" name="password" required="required"/><br /> <input type="submit" value="continue"/>
if (isset($_POST["mail"])) { echo "Yes, mail is set"; }
也许你可以试试这个:
if (isset($_POST['mail']) && ($_POST['mail'] !=0)) { echo "Yes, mail is set"; } else { echo "No, mail is not set"; }
使用!empty()
而不是isset()
。 因为isset()
将总是在你的情况下返回true。
if (!empty($_POST["mail"])) { echo "Yes, mail is entered"; } else { echo "No, mail is not entered"; }
要回答发布的问题:isset和空一起给出三个条件。 Javascript也可以使用ajax命令来使用它。
$errMess="Didn't test"; // This message should not show if(isset($_POST["foo"])){ // does it exist or not $foo = $_POST["foo"]; // save $foo from POST made by HTTP request if(empty($foo)){ // exist but it's null $errMess="Empty"; // #1 Nothing in $foo it's emtpy } else { // exist and has data $errMess="None"; // #2 Something in $foo use it now } } else { // couldn't find ?foo=dataHere $errMess="Missing"; // #3 There's no foo in request data } echo "Was there a problem: ".$errMess."!";
你可以简单地使用:
if($_POST['username'] and $_POST['password']){ $username = $_POST['username']; $password = $_POST['password']; }
另外,使用空()
if(!empty($_POST['username']) and !empty($_POST['password'])){ $username = $_POST['username']; $password = $_POST['password']; }
你可以试试这个:
if (isset($_POST["mail"]) !== false) { echo "Yes, mail is set"; }else{ echo "N0, mail is not set"; }
<form name="new user" method="post" action="step2_check.php"> <input type="text" name="mail" required="required"/> <br /> <input type="password" name="password" required="required"/><br /> <input type="submit" value="continue"/> </form> <?php if (!empty($_POST["mail"])) { echo "Yes, mail is set"; }else{ echo "N0, mail is not set"; } ?>
你可以试试,
<?php if (isset($_POST["mail"])) { echo "Yes, mail is set"; }else{ echo "N0, mail is not set"; } ?>
<?php if(isset($_POST['mail']) && $_POST['mail']!='') { echo "Yes, mail is set"; }else{ echo "N0, mail is not set"; } ?>