【问题标题】:call php function when browser back button clicked单击浏览器后退按钮时调用 php 函数
【发布时间】:2014-10-22 10:15:47
【问题描述】:

Browser Back button 被点击或right click 然后点击BACK 项然后阻止页面重定向到login page 时,我如何调用PHP Function 用户仍然是logged-in。 p>

我发现这个(Pressing back button redirects the logged user to log out?) 是为了防止页面在用户单击browser back button 并且用户仍然登录时重定向到其他页面,但我不知道将这些代码放在哪里以及如何放置调用该函数。

有人可以彻底解释这一点以解决我的问题或提供一些DEMO(JSFiddle) 以便更好地理解吗?

【问题讨论】:

  • 没有可靠的方法来做你想做的事。
  • 您是否只需要在某个页面上或在按下后退按钮或在浏览器中触发后退事件时使用它?
  • @AresDraguna 仅特定页面(仅一页)。

标签: javascript php jquery


【解决方案1】:

您可以在登录页面上使用标头重定向来检查用户是否已登录,但这必须在发送任何页面数据之前调用:

if(isset($_SESSION['username'])){
    header("Location: home.php");
}

【讨论】:

  • 我想他正在处理索引页面上的登录,这就是为什么他在回击时看到“页面已过期”消息的原因。但使用单独的登录页面和重定向是更好的方法 +1
【解决方案2】:

你可以试试这个:

jQuery(document).ready(function($) {

  if (window.history && window.history.pushState) {

    window.history.pushState('forward', null, './#forward');

    $(window).on('popstate', function() {
      alert('Back button was pressed.'); //here you know that the back button is pressed
    });

  }
});

你可以找到答案Here

这是做什么的,它会检查 JS 是否按下了后退按钮,如果是,您可以执行任何您想要的操作。如果您需要重定向,请使用 window.location = "http://www.yoururl.com";window.navigate("http://www.yoururl.com"); //works only with IE

或者,您可以在那里放置一个 jquery ajax 调用,将发布的请求发送回某个页面,您可以像这样检查它们:

if(isset($_POST['ajax_response_from_js_script'])  {
    //call PHP function
}

希望对您有所帮助!
继续编码!
战神。

【讨论】:

  • 我试过你的代码,它适用于不同的浏览器,但 Safari Windows(v5.1.7) 除外
猜你喜欢
  • 2023-04-09
  • 2014-10-30
  • 2015-02-21
  • 2012-11-08
  • 1970-01-01
  • 1970-01-01
  • 2013-08-11
  • 1970-01-01
  • 2016-12-25
相关资源
最近更新 更多