【问题标题】:Ending Session when leaving a folder or certain urls离开文件夹或某些 url 时结束会话
【发布时间】:2019-08-26 23:39:32
【问题描述】:

当我在网站上留下文件夹时,是否有取消或结束会话的方法,例如 /maps/ 或者当我不确定 URL 时只是结束它?

目前我正在使用:

<script>
$(window).on('unload', function() {

    var fd = new FormData();
    fd.append('ajax_data', 22);

    navigator.sendBeacon('resources/ajax/unload.php', fd);
});

</script>

调用此代码

<?php require_once("../config.php");
 ignore_user_abort(true);
 date_default_timezone_set("Asia/Tokyo");
 $time = date("H:i:s");
 $date = date("Y/m/d");
 $query = "uknown";
 $session_id = session_id();
 $session_prev = $_SESSION['prev'];
 $ip = $_SESSION['ip'];

 $sql = query("INSERT INTO navigated (navigated_from, navigated_to, 
 navigated_date, navigated_time, session_id, session_ip) VALUES ( 
 '$session_prev', '$query',  '$date', '$time', '$session_id', '$ip' 
  )");


 if (!isset($_SESSION['ended'])) {
 date_default_timezone_set("Asia/Tokyo");
 $_SESSION['ended'] = date("H:i:s");

 }

 $session_end = $_SESSION['ended'];
 $session_start = $_SESSION['started'];
 $session_date = $_SESSION['date'];
 $session_clicks = $_SESSION['clicks'];
 $sql2 = query("INSERT INTO session_time (session_id, 
 session_start, session_end, session_date, session_clicks, 
 session_navigated, session_ip) VALUES ('$session_id', '$session_start', '$session_end', '$session_date', '$session_clicks',  '$query', '$ip')");

unset($_SESSION['ended']);
unset($_SESSION['date']);
unset($_SESSION['started']);
unset($_SESSION['clicks']);
session_regenerate_id();


?>

当我离开页面或推送输入时结束会话。

【问题讨论】:

    标签: php jquery ajax session


    【解决方案1】:

    可能,根据您的要求,我认为您可以编写一个 unset_maps_session() 函数,该函数具有取消设置 /maps/ 文件夹会话的所有要求。

    编写一个通用函数,例如 common_tasks(),它将从项目中的每个文件中调用。 common_tasks() 函数的职责是识别要在该 url 上完成的任务。 因此,您可以对 url 进行正则表达式检查,以找出您需要执行的任务。

    function common_tasks() {
        // Carry out regular expression checks on the $_SERVER['URI'] parameter
        //Suppose maps_maps_url_not_found is a boolean variable that is true if the current URL
        //is not a maps URL. 
    
        if(matched_maps_url_not_found) {
            unset_maps_session();
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      • 2015-07-22
      相关资源
      最近更新 更多