【问题标题】:How to redirected to current page after processing the code and its result on other page?在其他页面上处理代码及其结果后如何重定向到当前页面?
【发布时间】:2010-09-24 19:58:29
【问题描述】:

我在通用页脚文件中有电子邮件通讯,它显示在整个网站上,我在页脚中有电子邮件通讯部分。

现在我希望处理时事通讯输入电子邮件并返回订阅时事通讯的同一页面。另外我没有权限将表单重定向到footer.php。

请提出一些想法来实现它

【问题讨论】:

  • 您能否尝试重新表述您的问题,以便更清楚地了解您想要实现的目标?

标签: php redirect


【解决方案1】:

如果我理解正确,您在每个页面上都有一个带有如下链接的页脚:(如果我错了,请纠正我)

<div id="footer">
    <a href="/newsletter/subscribe.php">Subscribe to newsletter</a>
</div>

假设你在一个带有 url 的页面上

/article/20100924

并且您想在处理完 /newsletter/subscribe.php 后返回该页面

像往常一样,这个问题有几个可能的答案。

如果配置正确,服务器数组中应该有一个 $_SERVER['HTTP_REFERER'] 变量指向点击发起的页面,您可以使用它,在处理完表单后只需放入

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

在/newsletter/subscribe.php 的末尾

如果您不相信 $_SERVER['HTTP_REFERER'] 是正确的,您可以将原始页面放入链接 url,如下所示:

<a href="/newsletter/subscribe.php?backurl=%2Farticle%sF20100924">
    Subscribe to newsletter
</a>

【讨论】:

  • grt 我使用了第二个想法.. :)
  • 你为什么要信任 $backurl?
  • @sathia 你真的不应该,因为任何脚本小子都可以将 backurl 变量更改为任何值。所以至少一个url参数应该是非常严格的testet。
【解决方案2】:
$prev_page = $_SERVER['HTTP_REFERER']; header("位置:$prev_page"); 出口;

【讨论】:

  • 感谢 Sathia 兄弟,我已经尝试过这个......并且它有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-01
  • 2012-03-16
  • 2015-02-23
  • 2018-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多