Завершение сеанса при выходе из папки или определенных URL - PullRequest
0 голосов
/ 05 апреля 2019

Есть ли способ отменить или завершить сеанс, когда я оставляю папку на веб-сайте, например / 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();


?>

Заканчивает сеансы, как только я покидаю страницу или нажимаю на ввод.

1 Ответ

1 голос
/ 05 апреля 2019

Вероятно, согласно вашему требованию, я думаю, что вы можете написать функцию unset_maps_session (), которая имеет все требования для отмены сеанса / maps / folder.

Напишите общую функцию, например, 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();
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...