php – 会话到期时运行一个函数?
会话在
PHP脚本上结束时是否可以运行函数?我的脚本会问几个问题,用户有30分钟的回答时间或会话过期.如果会话过期且用户尚未完成所有答案,我希望我的脚本将任何进度保存到.txt文件.我该怎么做呢?
我听说过register_shutdown_function(‘shutdown’);但我很困惑我会在我的脚本中将其称为何处. 我当前的脚本开头是这样的: ini_set('session.gc_maxlifetime',1800); ini_set('session.gc_probability',1); ini_set('session.gc_divisor',1); session_start(); if($_SESSION['loggedin'] !== 1) {//checks to see if user has logged in header('Location: login.php'); exit;} ...asks a bunch of questions.... session_destroy(); 谢谢你的帮助. 解决方法
你有两个选择:
>保存进度(每??次回答后)并保存信息是否已完成.即使浏览器已关闭(进度实时保存),此解决方案仍然有效. 您可以根据需要和应用程序的工作方式组合这两个选项. 如果页面在每个答案后重新加载(例如重新加载以显示下一个问题),那么您可以使用选项号. 1.如果所有问题都在一页上,请选择选项号. 2.如果您的应用程序是两者的组合,您可以选择这两个选项. 编辑: 根据您的代码判断,您正在混合: >在回答问题的时间方面 最好的想法是将两者分开.为PHP会话提供更大的时间限制,因为它需要一些其他的东西,比如实际显示进度甚至保存进度.相反,标记测试开始的时间并将其存储在PHP会话中.这样,在测试用完之后,您将能够确定并忽略之后回答的任何问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |