它链接到自己的-6ren">
gpt4 book ai didi

php - 如何通过链接将 POST 变量传递到自己的页面?

转载 作者:可可西里 更新时间:2023-11-01 13:51:12 25 4
gpt4 key购买 nike

您好,我想通过指向自身页面的链接获取变量 $_POST。示例:

<?PHP
$var = 'PIG';
echo "<a href='test.php?var=$var'>link</a>";

if (isset($_POST['var']))
{
echo $_POST['var']);
}


?>

它链接到自己的页面。 (测试.php)它不起作用,请谁能帮助我。谢谢

最佳答案

链接不能POST数据,只有 GET .

In contrast to the GET request method where only a URL and headers are sent to the server, POST requests also include a message body. This allows for arbitrary length data of any type to be sent to the server.

基本上,一个 POST需要两个请求,1)服务器收到“正常”请求,带有一个额外的 header 值,表示需要发送更多数据。在这一点上,服务器发送确认和 2) 客户端发送 POST body 。仅通过链接无法实现此行为。

但是,有一些解决方案,我看到了一些技术,其中包括输出 form。自动提交,比如

<form name="frm" method="post" action="http://your.domain.com/path/to/page.php?param1=1&param2=2">
<input type="hidden" name="foo" value="bar" />
</form>
<script type="text/javascript">
document.forms["frm"].submit();
</script>

这将导致调用 page.php有了这些论点

$_GET = array('param1' => '1', 'param2' => '2');
$_POST = array('foo' => 'bar');

请注意,这是一个简单的“重定向”方法,但您可以创建 <a>元素实际触发一些隐藏的形式,而不是使用标准链接。 (未经测试的代码)

<a href="http://your.domain.com/path/to/page.php?param1=1&param2=2" onclick="return dopost(this.href, {foo:'bar'});">A simple link</a>
<script type="text/javascript">
function dopost(url, params) {
var pe = '';
for (var param : params) {
pe += '<input type="hidden" name="'+param+'" value="'+params[param]+'" />';
}
var frmName = "frm" + new Date().getTime();
var form = '<form name="'+frmName+'" method="post" action="'+url'">'+pe+'</form>';
var wrapper = document.createElement("div");
wrapper.innerHTML = form;
document.body.appendChild(wrapper);
document.forms[frmName].submit();
}
</script>

这可能正是您真正需要的。

关于php - 如何通过链接将 POST 变量传递到自己的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6887080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com