更改网址时如何记住POST值
答案 0 :(得分:3)
将$_POST["a1"]
的值传递到b.php?...
网址中的另一个参数,以便以后可以在b.php的$_GET
查找中访问它。
也许这是一个剪切和粘贴错误,但是这个:
href="b.php?id=".$row["url"]."" target="_self"
没有任何意义,你似乎试图在双引号字符串中使用双引号。此外,您忘记对输出进行HTML编码,这会导致XSS安全漏洞,您还需要对您放入URL参数的内容进行URL编码。
<?php
$url= 'b.php?id='.urlencode($row['url']).'&a1='.urlencode($_POST['a1']);
?>
<a href="<?php echo htmlspecialchars($url); ?>">
<?php echo htmlspecialchars($row['title']); ?>
</a>
然后
<li>
<?php echo htmlspecialchars($row['name']); ?>
(<?php echo htmlspecialchars($_GET['id']); ?>,
<?php echo htmlspecialchars($_GET['a1']); ?>)
</li>
(您可以使用较短的名称定义帮助函数,例如h()
,以避免必须输出echo htmlspecialchars()
这么多。)
答案 1 :(得分:1)
如果你想传递数据,你可以把它作为查询字符串放在链接中,然后用GET再次获取它或者把它放在SESSION或COOKIE中
答案 2 :(得分:1)
您可以使用隐藏的输入来传递a1
的值<input type="hidden" name="a1" value="$_POST['a1']" />
这会将a1传递给下一页
答案 3 :(得分:0)
你想要实现的目标似乎有些激动,我认为当你对如何解决你想要做的事情有更多的想法时,重新考虑你的解决方案是明智的。
我理解你的流程的方式是:(伪代码)
a.php posts form with field text(id=a1) to b.php
b.php processes the form and creates a link to b.php?id=<url>
when link is clicked b.php is run again, but without form this time only get.
所以b.php做了两件事:
在我看来,你把两者混合在一起并忘记它们是不同的请求。
有几种方法可以达到你想要的效果。这是一对夫妇的名单:
希望这有帮助。
答案 4 :(得分:-1)
只需将此值添加到链接的查询字符串即可 并将POST方法更改为GET