没有单击任何内容-php
我有这样一个表格:没有单击任何内容-php,php,forms,Php,Forms,我有这样一个表格: <form method="post" action="user/?action=reply"> <!--blah --> <input type="submit" name="action" value="Reply"> </form> 输出为未单击任何内容 错误报告(E_全部);不返回任何内容 编辑: print\r($\u GET)返回:数组([action]=>reply) print\r($\u P
<form method="post" action="user/?action=reply">
<!--blah -->
<input type="submit" name="action" value="Reply">
</form>
输出为未单击任何内容
错误报告(E_全部);不返回任何内容
编辑:
print\r($\u GET)返回:数组([action]=>reply)
print\r($\u POST)返回一个空数组您正在
switch
语句中检查$\u GET
,但表单设置为POST
。将其更改为method=“get”
或改用$\u POST
由于HTTP服务器只能发送一种类型的请求(GET或POST),因此表单将发送POST请求。我记得,根据浏览器和您的PHP配置,在使用POST请求时可能会忽略GET变量
考虑改用隐藏的表单字段
记住,GET请求用于检索,POST请求用于创建。在你的情况下,似乎一篇帖子更合适(回复)。我不知道你为什么要使用两个值,但是……) 您应该从表单操作中删除参数,并将其转换为表单中的隐藏字段。我不太确定在执行请求时可以同时使用get和post参数 像这样:
<form method="post" action="user">
<!--blah -->
<input type="hidden" name="target_action" value="reply" />
<input type="submit" name="action" value="Reply" />
</form>
尝试添加:
print\r($\u POST)在开关
语句之前,code>和打印($\u GET)
,并将输出添加到问题中。您有两个名为操作
的请求参数;一个用于POST
,一个用于GET
。只需重命名其中一个。表单数据通过post发送。。。我将gets用于操作,但您的提交按钮也被命名为操作
,其值为回复
。你不能用它来代替,把GET零件报废吗?
<form method="post" action="user">
<!--blah -->
<input type="hidden" name="target_action" value="reply" />
<input type="submit" name="action" value="Reply" />
</form>
switch ($_POST['target_action'])
{
case 'reply':
if (isset($_POST['action']) && $_POST['action'] == 'Reply' )
{
require_once USER_ROOT . 'thread_reply.php';
}
else
{
echo "Nothing was clicked";
}