我一直在使用数据库实现来限制我的服务器上一次只能下载一次。这很容易出错并且存在已知问题,因此我考虑尝试使用会话变量来代替。唯一的问题是我在开始发送文件之前使用了以下命令,以便用户在下载时仍然可以浏览该站点:
session_write_close();
我想检查会话中的变量是否存在,如果不添加,则关闭会话,然后重新打开同一会话并删除我添加的旧变量。这可能吗?或者有没有更简单的方法来解决这个问题?或者我应该坚持使用 db 实现。
谢谢
<?php
session_start();
if (isset($_SESSION['downloading']))
die("You already have a download in progress.");
$_SESSION['downloading'] = 1;
session_write_close();
//send the file
?>
最后我找不到稳定的会话解决方案,因为它导致会话损坏,所以我最终只坚持我的数据库实现现在。抱歉,这个问题对以后的搜索没有帮助:(