这个问题的标题有点解释我的问题。如何使用header( "Location: URL of previous page" );
问问题
441051 次
7 回答
273
尝试:
header('Location: ' . $_SERVER['HTTP_REFERER']);
请注意,这可能不适用于安全页面 (HTTPS),总体而言这是一个非常糟糕的主意,因为标头可能被劫持,将用户发送到其他目的地。标头甚至可能不会由浏览器发送。
理想情况下,您需要:
- 将返回地址作为查询变量附加到请求中(例如 ?back=/list)
- 在您的代码中定义一个返回页面(即所有成功的表单提交都重定向到列表页面)
- 为用户提供他们下一步想去哪里的选项(例如,保存并继续编辑或只是保存)
于 2011-03-12T19:52:50.863 回答
26
这么简单就用这个
header("location:javascript://history.go(-1)");
它对我来说工作正常
于 2012-01-18T11:18:28.637 回答
17
您必须以某种方式保存该位置。
假设它是一个 POST 表单,只需将当前位置放在隐藏字段中,然后在header()
Location 中使用它。
于 2011-03-12T19:54:29.827 回答
16
只是一点点补充:我相信exit;
在 header 函数之后添加它是一个常见且已知的事情,以防我们不希望其余代码加载或执行......
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit;
于 2014-08-10T13:23:41.217 回答
5
只需在 Javascript 中尝试:
$previous = "javascript:history.go(-1)";
或者你可以在 PHP 中尝试:
if(isset($_SERVER['HTTP_REFERER'])) {
$previous = $_SERVER['HTTP_REFERER'];
}
于 2015-05-27T12:17:28.237 回答
3
将以前的 url 存储在会话变量中是不好的,因为用户可能会右键单击多个页面,然后返回并保存。
除非您将会话变量中的前一个 url 保存到表单中的隐藏字段中,并且在保存标头之后(“位置:保存调用页面的 URL”);
于 2012-02-06T07:40:59.790 回答
0
我知道这个问题专门针对标题,但如果有人想在按钮内进行操作,这就足够了。
<button type="button" class="btn btn-default" onclick="javascript:history.go(-1)">Back</button>
于 2021-06-21T11:09:06.187 回答