我正在创建一个评论脚本,我遇到了一个问题。我不得不在同一页面上使用$ _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新手,可能不会实现超级难的解决方案。我必须把它放在我的网站上。
我希望这很清楚
答案 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请求可能包含Form
和QueryString
数据。就像robertbasic所说,你可以通过相应的阵列访问它们。
答案 5 :(得分:0)
使用带有隐藏输入(<input type="hidden" name="verseid" value="..." />
)的表单可能是最干净的方式。
除了$_GET
和$_POST
之外,PHP还定义了$_REQUEST
全局数组。通常,您应该使用 $_GET
或$_POST
,但在这种情况下,为两个方法传递verseid
,使用{{}可能更方便1}}。这样您就不必关心脚本上使用的HTTP方法了。