在同一页面上获取和发布信息?

时间:2010-06-13 19:30:31

标签: php post redirect get

编辑:找到答案!非常感谢大家,很多答案都有效,我选择了最简单的隐藏答案:D

我正在创建一个评论脚本,我遇到了一个问题。我不得不在同一页面上使用$ _POST和$ _GET,我认为这是不合理的。

我是php的新手,我正在训练自己。

我有一个名为viewVerses.php的页面 - 这里有一个经文列表。当有人关注回复链接时,

echo '<br /><a href="reply.php?verseid='.$verseid.'">Reply</a>';

我将这首诗歌(评论圣经经文)传递给了reply.php,以便可以用该诗句进行查询。 (这样,用户仍然可以看到他/她正在评论的经文)。

现在,reply.php中有一个用于发布回复的表单。表格转到postReply.php

这是在postReply.php

$title = $_POST['title'];
$body = $_POST['body'];
$verseid = $_GET[verseid];

我可以从网址和POST中获取同一页面中表格中的值吗?

如果没有,有没有办法可以做得更好?记住,我是php新手,可能不会实现超级难的解决方案。我必须把它放在我的网站上。

我希望这很清楚

6 个答案:

答案 0 :(得分:7)

我会在评论表单中添加隐藏的输入:

<input type="hidden" name="verseid" value="
<?php echo $_GET['verseid']; ?>
" />

这样,在postReply.php中,您可以使用$_POST['verseid']访问它。

答案 1 :(得分:4)

是的,你可以。表单的方法(在html页面中)可以是POST,操作URL可以包含类似process.php?vid=1001的“GET”参数。因此,在process.php中,您将{_ 1}设置为$ _GET,将表单中的其余数据设置为$ _POST。

答案 2 :(得分:1)

当然你可以,只需在用户提交回复时将表单的动作设置为postReply.php?verseid = id_of_the_verse,在POST数组中将是回复相关数据,在GET中将该符号的id设置为

答案 3 :(得分:0)

是的,可以将GET和POST值与一个请求混合使用。您遇到的问题可能是您将GET值传递给reply.php,然后将POST值传递给postReply.php。所以,除非你告诉reply.php发送那个GET值,否则它会丢失。

您可以通过在action标记的form参数中指定GET值来执行此操作,或者您甚至可以通过添加<input type="hidden" name="verseid" value="<?php echo $verseid; ?>" />切换到POST值形式。

答案 4 :(得分:0)

虽然看起来可能违反直觉,但HTTP请求可能包含FormQueryString数据。就像robertbasic所说,你可以通过相应的阵列访问它们。

答案 5 :(得分:0)

使用带有隐藏输入(<input type="hidden" name="verseid" value="..." />)的表单可能是最干净的方式。

除了$_GET$_POST之外,PHP还定义了$_REQUEST全局数组。通常,您应该使用 $_GET$_POST,但在这种情况下,为两个方法传递verseid,使用{{}可能更方便1}}。这样您就不必关心脚本上使用的HTTP方法了。