Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅用于当前会话的公共文件_Php_Joomla_Permissions - Fatal编程技术网

Php 仅用于当前会话的公共文件

Php 仅用于当前会话的公共文件,php,joomla,permissions,Php,Joomla,Permissions,我有一个包含多个PDF文件的文件夹 每个会话的名称是创建的会话号 我想要的是,未经身份验证的用户可以下载与其会话对应的PDF文件,但不能访问其他文件,因为文件所在的文件夹是公用的。 我怎样才能解决这个问题? 注意:并非所有用户都经过身份验证首先,当您说对应于您的会话时,您是指他们的会话吗 首先要做的是防止目录列表,这显然是PDF所在的目录。这可以通过包含以下行的.htaccess文件轻松完成: 全盘否定 接下来,假设您正在谈论他们的会话,您可以编写一个简单的HTML链接来下载PDF,例如 Dow

我有一个包含多个PDF文件的文件夹 每个会话的名称是创建的会话号 我想要的是,未经身份验证的用户可以下载与其会话对应的PDF文件,但不能访问其他文件,因为文件所在的文件夹是公用的。 我怎样才能解决这个问题?
注意:并非所有用户都经过身份验证

首先,当您说对应于您的会话时,您是指他们的会话吗

首先要做的是防止目录列表,这显然是PDF所在的目录。这可以通过包含以下行的.htaccess文件轻松完成:

全盘否定

接下来,假设您正在谈论他们的会话,您可以编写一个简单的HTML链接来下载PDF,例如

Download your PDF <a href="/public/path/to/download.php">here</a>.
其中download.php只是一个服务器端代理服务脚本,例如

<?php
define('PDF_REPOSITORY', '/path/to/dir');

if (session_id() && file_exists(PDF_REPOSITORY . '/' . session_id() . ".pdf")) {
    readfile(PDF_REPOSITORY . '/' . session_id() . ".pdf");
}

?>
在这里,我们利用了这样一个事实,即服务器有权读取资源,尽管客户端无法读取,因为上面设置了拒绝所有限制


显然,这个代理服务是一个非常精简的示例,它的安全性可能远远不止于此。

就是这样!谢谢你的帮助。是的,这是他们的会议