【问题标题】:going back 1 page using php使用 php 返回 1 页
【发布时间】:2014-06-10 22:30:35
【问题描述】:

在我的页脚中

header("Location: galleries.php");

是否可以使用 php 代码(或其他东西)只返回 1 页而不是使用特定页面,如 galleries.php

使用history.go(-1) 之类的东西将不起作用,因为header("Location: galleries.php"); 在PHP 中。

【问题讨论】:

  • 尝试使用$_SERVER['HTTP_REFERER']。我想你可以用它完成某种返回功能。
  • 试试这个标头("location:javascript://history.go(-1)");或 header('Location: ' . $_SERVER['HTTP_REFERER']);
  • @Mehul header("location:javascript://history.go(-1)");不工作
  • @Mehul @Y U NO WORK 代码:header('Location: ' . $_SERVER['HTTP_REFERER']);只需刷新页面,不会返回上一页。还有其他建议吗?
  • 我希望这是有用的 echo " ";

标签: php back browser-history


【解决方案1】:

试试这个去上一页,

header('Location: ' . $_SERVER['HTTP_REFERER']);

【讨论】:

  • 哈!知道。只是太害怕会出错。 :D
  • @YUNOWORK 是的。它可能有效,也可能无效,因为它取决于userAgent。但是这些家伙,没兴趣跟JS
  • @Ranjith 代码: header('Location: ' . $_SERVER['HTTP_REFERER']);只需刷新页面,不会返回上一页。还有其他建议吗?
  • @GernerChristensen 雅。到时候就不行了。实现此目的的方法是将上一页 URI 存储到一个 Session 变量中。例如,$_SESSION['previous_page'] = $_SERVER['HTTP_REFERER']);。在分配之前,您需要检查 $_SESSION['previous_page']$_SERVER['HTTP_REFERER']) 是否不相等。
  • @Ranjith hmmm 我尝试添加: header("Location: ".$_SESSION['previous_page'] = $_SERVER['HTTP_REFERER']);但页面仍然会重新加载。这是应该发生的情况:我从 A 页面到 B 页面。在 B 页面上,我填写了一个表格并单击更新。然后我应该回到页面 A。我不能只在该位置提供 URL 的原因是因为有许多不同的页面链接到该表单。所以我有页面 A、C、D、E,所有链接都指向页面 B,当您单击页面 B 上的更新时,您应该返回到您来自的页面(A、C、D、E)
【解决方案2】:

简而言之 - 并非如此。 PHP 不是客户端(如 JavaScript)语言,而是服务器端语言,header("Location: ..."); 用于此目的 - 重定向到另一个位置。请记住,重定向必须在任何输出之前完成,否则您将收到类型为

的错误/警告

Warning: Cannot modify header information - headers already sent (output started at...).

但是,使用$_SERVER['HTTP_REFERER'] 并不是一个可靠的选择。

HTTP_REFERER 的含义是将用户代理指向当前页面的页面地址(如果有)。这是由用户代理设置的。不是所有的用户代理都会设置这个,有些提供修改HTTP_REFERER 的功能。 简而言之,它不能真正被信任,因为它可能会丢失。

阅读here了解更多详情。

【讨论】:

    【解决方案3】:

    您可以通过 2 种方式做到这一点: 选项一是使用JS,

    echo "<a href=\"javascript:history.go(-1)\">back</a>";
    

    选项2是通过检查用户来自哪里来获取上一个链接

    [HTTP_REFERER]
    

    http://www.php.net/manual/en/reserved.variables.server.php 然后通过 header("location: ..") 将他发送到那里,

    但请记住,如果用户直接链接到该页面,这两种方式都没有用。

    【讨论】:

      【解决方案4】:

      你可以用这个

      <a href="#" onClick="javascript:history.back();">Go back</a>
      

      【讨论】:

        猜你喜欢
        • 2014-04-03
        • 2021-09-20
        • 1970-01-01
        • 2014-11-12
        • 1970-01-01
        • 2017-01-26
        • 1970-01-01
        • 1970-01-01
        • 2021-07-03
        相关资源
        最近更新 更多