PHP - 允许根据 $_SESSION 变量访问文件

PHP - Allowing access to a file according to a $_SESSION variable

我是 运行 一个 Apache / PHP 服务器,我在上面有一个视频文件。

有什么方法可以允许访问此文件,前提是某些 $_SESSION 变量具有特定值?

当然可以。

首先,您必须避免直接访问视频文件。这可以通过将其放在包含带有 "Deny from all".

的 .htaccess 文件的文件夹中来实现

其次,您编写一个php脚本,其中包含检查$_SESSION 的代码,如果正常,则间接访问该文件。此脚本可以用作文件的源而不是自然 link。

要间接访问文件,可以使用header()发送mime类型,然后使用readfile()输出文件内容。

另一种方法是创建文件的临时副本,使用哈希名称,仅供访问它的用户使用。

首先将视频放在单独的文件夹中 使用以下代码将 .htaccess 文件添加到文件夹中

Order deny,allow
Deny from all

这将阻止从服务器外部直接访问该文件,但由于您的 php 服务器享有本地文件权限,因此可以 link 访问它

现在您可以使用 like if 语句来检查会话是否已设置,并相应地提供访问权限,例如

if(isset($_SESSION) && $_SESSION['some_var'] == 'some_particular_value'){
    // show video
}