说我在数据库中存储了一些与会话ID相关的数据。如何在会话超时 php (我不想用所有垃圾数据填充我的文件服务器。)时删除数据?
是否有任何回调函数可以在 php 中调用?
答案 0 :(得分:1)
每次发出请求时,让会话报告的用户返回到您的数据库。 (不是新行但是更新他的行,所以你不会填满你的数据库)。
然后使用cronjob或类似方法清理所有会话,这些会话的上次报告时间戳早于会话超时值。
答案 1 :(得分:1)
你可以写php脚本
<?php
session_start();
$query = "DELETE FROM session_data WHERE session_id = '{$_SESSION['session_id']}'";
// in case you want to read this from ajax as json response
echo mysq_query($query) ? "true" : "false";
session_destroy();
?>
使用JQuery
在uload事件上使用ajax访问此脚本$(window).unload(function() {
$.get('destroy_session.php', null, function(data, status) {
// ignore result
});
});
答案 2 :(得分:0)
我不知道这是否有资格作为回调本身,但也许您可以利用销毁处理程序在显式会话终止时删除陈旧的数据库信息?
http://php.net/manual/en/function.session-set-save-handler.php