返回上一页

IT技术 php javascript
2021-03-03 12:47:15

我正在使用一个表格来“评价”一个页面。此表单将数据“发布”到别处的 php 脚本。我只是想在处理表单后显示一个链接,这将使用户返回上一页。我可以在我的 php 脚本中使用 javascript 来做到这一点吗?

GF

6个回答

您可以使用链接history.go(-1)在 Javascript 中调用,这本质上等同于单击“后退”按钮。然而,理想情况下,最好只创建一个指向 URL 的链接,从那里将用户发布到表单 - 这样就可以保留正确的历史“流程”,并且用户不会想知道为什么他们有一些东西单击“转发”实际上只是再次提交表单。

如何使用链接来调用那段 javascript?
2021-04-24 12:47:15
<a href="javascript:history.go(-1)">此处的链接文本...</a> 当用户通过清除缓存删除历史记录时将不起作用...
2021-04-26 12:47:15
@user1400915 然后不要删除历史记录或清除缓存。
2021-04-30 12:47:15
有没有办法发布上一页的标题?
2021-05-07 12:47:15
<a href="javascript:history.go(-1)">link text here...</a>
2021-05-11 12:47:15

试试这个:

$previous = "javascript:history.go(-1)";
if(isset($_SERVER['HTTP_REFERER'])) {
    $previous = $_SERVER['HTTP_REFERER'];
}

在 html 中:

<a href="<?= $previous ?>">Back</a>

JavaScript 代码被初始化为HTTP_REFERER变量的后备有时不起作用。

取决于你试图用什么来做。你可以使用这样的东西:

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

这是最简单的选择。另一张海报关于拥有适当的历史流程是正确的,但这是你的一个例子。

刚刚编辑,原始版本没有缩进,看起来什么都没有。;)

您特别要求 JS 解决方案,但如果有人在禁用 JS 的情况下访问您的表单,PHP 备份总是很好的:

当表单加载时,通过类似的方式获取上一页地址$previous = $_SERVER['HTTP_REFERER'];,然后<input type="hidden" value="$previous" />在表单中将其设置为 a 当您使用脚本处理表单时,您可以获取该值并将其粘贴在header("Location:___")或将地址直接粘贴到链接中以将它们发送回它们的来源

没有 JS,非常简单,您可以对其进行结构化,以便仅在客户端未启用 JS 时才处理它。

HTTP_REFERRER 不是容易受到注入攻击吗?好像会的。我喜欢它不依赖 JS,但寻找有效的 URL 似乎很麻烦。JS 版本对我来说看起来更安全。
2021-05-01 12:47:15

像这样:

<?php

    if (isset($_SERVER["HTTP_REFERER"])) {
        header("Location: " . $_SERVER["HTTP_REFERER"]);
    }

?>