【发布时间】:2016-04-10 14:44:30
【问题描述】:
我有两个 PHP 脚本,似乎第二个脚本没有正确处理 $_POST。
一个.php
重要部分:
echo "<form action='b.php' method='post'>";
echo "<input type='submit' name='add' value='Add new items'>";
echo "</form>";
b.php
重要部分:
$error_variable1="";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["something1"])) {
$error_variable1="not correct";
}
}
echo '<form action="'.htmlspecialchars($_SERVER["PHP_SELF"]).'" method="post">';
echo '<textarea name="something1" rows="1" cols="10"></textarea>';
echo $error_variable1;
echo '<input type="submit" name="evaluate" value="Checking inputs">';
echo " </form>";
不幸的是,即使在第一次启动 b.php 时,它也会将 $error_variable1 的值显示/赋予“不正确”。
但是为什么会这样呢?用户尚未按下提交按钮。当按下“评估”提交按钮时,我想给这个变量一个“不正确”的值。
编辑:
我怀疑来自 a.php 的 POST(提交)可能会弄乱我的 b.php。我想要的是显示一个带有提交按钮的文本表单。当按下提交按钮 ($POST) 并且 textarea 为空时,我想向用户显示一条错误消息(不正确)并再次显示表单。
【问题讨论】:
-
最好使用
isset(...)而不是empty(...),并确保在两者前面都放置NOT (!)。 -
如果 b.php 的内容是完整的,那么它缺少右大括号
}。但是,很难确切地知道您想在这里做什么。 -
b.php处理a.php发布的值。所以你必须修改你的条件来区分a和b检查。如果您无法检查来自a.php的请求,请将a.php表单替换为链接(或将POST方法替换为GET) -
再说一次,我不知道你想在这里做什么。我看到
Add new items的输入,这告诉我您可能正在使用一些 JS 来添加项目并试图将它们传递到第二页。我将不得不传递这个。我只会“看”;-)
标签: php