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