PHP表单条目0返回NULL

时间:2015-08-14 01:26:47

标签: php

// removed from original post
//        if (!empty($_POST['user_inputA2'])) {

function formA2 () {

   function test_input_A2($data) {
      $data = trim($data);
      $data = stripslashes($data);
      $data = htmlspecialchars($data);
      return $data;
   }

?>

<form id="questionA2" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
    <input type="text" name="user_inputA2" value="<?php if(isset($_POST['user_inputA2'])) { echo htmlentities ($_POST['user_inputA2']); }?>"/><br>
    <input type="submit" name="user_inputA2Submit" style="position: absolute; left: -9999px"/>
</form>

<?php



if (!empty($_POST['user_inputA2']) && $_POST['user_inputA2'] !=="0") {
$user_inputA2 = test_input_A2($_POST["user_inputA2"]);
// more variables here, per line -- and add them to the ="" above.

return $user_inputA2;
}

}

更新 - 以下代码最终正在运作

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    if ($_POST['user_inputA2'] !="") {
     $user_inputA2 = test_input_A2($_POST["user_inputA2"]);
     // more variables here, per line -- and add them to the ="" above.

    return $user_inputA2;

    }
}

}

如果我输入除0之外的任何内容,我的PHP代码为!empty执行。我已经尝试了isset的替代方法,!== NULL,甚至是(... ===“0”|| ... === 0){$ user_inputA2 =“0”}的替代IF语句。仍然返回null并且页面响应,就像在表单中没有输入任何内容一样。

如果表单条目为0(事实上是isset或!为空),如何才能执行其余的代码?

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

<?php

// No need for this line
// if ($_SERVER["REQUEST_METHOD"] == "POST")

if(isset($_POST['user_inputA2']) && $_POST['user_inputA2'] !== '') {
    $user_inputA2 = test_input_A2($_POST['user_inputA2']);
    return $user_inputA2;
}

答案 1 :(得分:0)

我在接收方找到了修复方法。上面的代码确实返回0的字符串,但是为了实现,我问的是比较,例如empty,!empty,isset。我改变了那些,如果比较==&#34;&#34;或!=&#34;&#34;,然后将0的返回值视为实际值等。

很抱歉,解决方案最终成为我发布的代码的下游代码。再次感谢大家。