#php #jquery #ajax #session
#php #jquery #ajax #сеанс
Вопрос:
Есть ли способ отменить или завершить сеанс, когда я покидаю папку на веб-сайте, например /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:
Вероятно, в соответствии с вашим требованием, я думаю, вы можете написать функцию 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();
}
}