0

我一直在使用数据库实现来限制我的服务器上一次只能下载一次。这很容易出错并且存在已知问题,因此我考虑尝试使用会话变量来代替。唯一的问题是我在开始发送文件之前使用了以下命令,以便用户在下载时仍然可以浏览该站点:

session_write_close();

我想检查会话中的变量是否存在,如果不添加,则关闭会话,然后重新打开同一会话并删除我添加的旧变量。这可能吗?或者有没有更简单的方法来解决这个问题?或者我应该坚持使用 db 实现。

谢谢

4

2 回答 2

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

?>
于 2012-08-22T02:36:51.073 回答
0

最后我找不到稳定的会话解决方案,因为它导致会话损坏,所以我最终只坚持我的数据库实现现在。抱歉,这个问题对以后的搜索没有帮助:(

于 2012-08-23T15:12:40.280 回答