如何删除会话相关数据

发布于 2024-09-18 09:39:15 字数 178 浏览 4 评论 0原文

假设我将一些与会话 ID 关联的数据存储在数据库中。当php中的会话超时时,如何删除数据(我不想用所有垃圾数据填充我的文件服务器。)?

php 中有没有回调函数可以调用?

say i store some data associated with a session id in a database . how do i delete the data when the session is timeout in php(i do not want to fill my file sever with all junk data.)?

is there any call back function to call in php ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

陌上芳菲 2024-09-25 09:39:15

您可以编写 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
    });
});

You can write php script

<?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();
?>

and access this script with ajax on uload event with JQuery

$(window).unload(function() {
    $.get('destroy_session.php', null, function(data, status) {
       // ignore result
    });
});
深海夜未眠 2024-09-25 09:39:15

让具有会话的用户在每次发出请求时返回到您的数据库。 (不是新行,而是更新他的行,这样你就不会填充你的数据库)。

然后使用 cronjob 或类似的工具清理最后报告时间戳早于会话超时值的所有会话。

Have the user with the session report back to your database every time he makes a request. (not a new row but update his row so you wont fill your db).

Then have a cronjob or something similar clean up all sessions that have a last report timestamp older than your session timeout value.

一袭白衣梦中忆 2024-09-25 09:39:15

我不知道这本身是否符合回调资格,但也许您可以利用销毁处理程序在显式会话终止时删除过时的数据库信息?

http://php.net/manual/en/function。会话集保存处理程序.php

I don't know if this qualifies as a callback per se, but maybe you could leverage the destroy handler to remove the stale database information upon explicit session termination?

http://php.net/manual/en/function.session-set-save-handler.php

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文