【问题标题】:using php and mysql, insert timestamp on user logout使用 php 和 mysql,在用户注销时插入时间戳
【发布时间】:2023-04-06 05:46:01
【问题描述】:

使用 PHP 和 MySQL

当用户登录时,我可以在使用会话和使用函数时将他们的登录时间戳插入 MySQL。该函数会更新数据库并且运行良好。

现在,当用户点击“注销”以及注销将在哪里运行session_destroy()时,是否可以获得时间戳并将其记录到 MySQL 中?

我正在寻找的只是用户单击注销时的时间戳,以便我知道他们已经注销。我不担心他们是否只是关闭浏览器然后走开了。

我尝试过类似 session_destroy(something);并将其用作功能。我得到的只是运行时错误。这有可能做到吗?

【问题讨论】:

标签: php mysql


【解决方案1】:

当用户单击注销时记录注销时间应该没有问题(当然如果浏览器关闭,这将不起作用)。只需在调用 session_destroy() 之前获取用户 ID 并在数据库中更新该用户。

例如:

注销.php

$query = "update user set logoutDate=CURRENT_TIMESTAMP where user={$_SESSION['userID']}";
mysql_query($query);

session_destroy();

【讨论】:

  • 正确,但您应该转义您的输入或使用准备好的语句。此外,mysql_ 函数已开始弃用过程。 (无论如何都赞成。)
  • 谢谢我使用了:一个调用我的数据库的包含语句。然后我做了一个 session_start(); mysql_query("更新users SET logout = NOW() WHERE user_id = '$_SESSION[user_id]'"); session_destroy();并做了一个头文件。我已将其放在注销页面中。希望这是一种正确的做法。
  • 感谢 Adam 为我指明了正确的方向。
【解决方案2】:

这样试试

//code for inserting logout time in database of user
session_destroy();

并发布您的代码。

【讨论】:

    【解决方案3】:

    您可以编写一个类似于 login() 的名为 logout() 的函数,不同之处在于它存储注销时间戳,然后调用 session_destroy()。

    【讨论】:

    • 我喜欢这个主意,它通过使用注销功能使我的页面更加整洁。这样我就可以将所有功能集中在一个地方。谢谢
    猜你喜欢
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 2013-09-10
    相关资源
    最近更新 更多