【问题标题】:PHP - Redirect back to previous page, without any form [closed]PHP - 重定向回上一页,没有任何形式[关闭]
【发布时间】:2024-01-20 09:09:01
【问题描述】:

在我的网站上,我为访问者提供 4 种语言。我在网站的右上角有一个下拉列表,他们可以在其中选择他们的语言。当您按下下拉列表中的某个项目时,您会被发送到 /en、/pl、/pt、/se(取决于您选择的语言)。

例如在 /pl (polish) 文件夹中,我放了这个:

<?php
session_start();
$_SESSION['lang'] = "pl";
header('Location: ../');
exit;
?>

然后我将它们重定向到首页,在那里我检查 lang 是否为 pl,然后使用波兰文本。

但现在我希望它在按下下拉菜单中的项目之前将他们重定向到他们所在的特定页面。

如果他们正在浏览 /news 页面,我希望他们被重定向到那里而不是首页。

我似乎无法做到这一点。这甚至可能吗?

我知道我可以使用表单来完成,并插入隐藏的输入。但这没有表格!

这是我的下拉菜单:

<!-- Language Settings -->
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><?php echo menu8; ?> <span class="caret"></span></a>
    <ul class="dropdown-menu" role="menu">
        <li><a href="en">English</a></li>
        <li><a href="pt">Portugu&ecirc;s</a></li>
        <li><a href="pl">Polski</a></li>
        <li><a href="se">Svenska</a></li>
    </ul>
</li>
</ul>
<!-- End Language Settings -->

【问题讨论】:

  • 我该怎么做?有代码示例吗?
  • 是的,我知道如何翻译网站,我已经做到了。我的问题是它不会重定向回上一页。我检查了你的链接,没有看到任何关于重定向到上一页的信息

标签: php html redirect header web


【解决方案1】:

使用$_SERVER 超级全局。 $_SERVER['HTTP_REFERER']。这将是用户来自的页面的地址。

【讨论】:

  • 所以我应该把它放在我网站每个页面的顶部吗? $_SERVER['HTTP_REFERER'] 然后在 PHP 文件中,它会是什么样子?对不起,如果这是一个愚蠢的问题
  • 用它来设置你的标题。 header('Location:' . $_SERVER['HTTP_REFERER']);
  • 我有点困惑。我是否只是将$_SERVER['HTTP_REFERER'] 放在 /news 页面中的 session_start() 下方。没有其他的?然后是我的 /pl 文件中的header('Location:' . $_SERVER['HTTP_REFERER']);?还是我将它分配给某个变量。喜欢$currentpage = $_SERVER['HTTP_REFERER'];然后重定向到$currentpage?
  • 当我输入header('Location:' . $_SERVER['HTTP_REFERER']); 时出现此错误Parse error: syntax error, unexpected 'HTTP_REFERER' (T_STRING) in C:\xampp\htdocs\index\pt\index.php on line 6
  • 您无需将其分配给变量即可使用它。将其放在您的 session_start()$_SESSION['lang'] = 'pl' 调用之后,否则将不会保存数据
最近更新 更多