// 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或!为空),如何才能执行其余的代码?
答案 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的返回值视为实际值等。
很抱歉,解决方案最终成为我发布的代码的下游代码。再次感谢大家。