Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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_Session - Fatal编程技术网

PHP-阻止用户访问其他用户的文件-请告诉我步骤是什么?

PHP-阻止用户访问其他用户的文件-请告诉我步骤是什么?,php,session,Php,Session,我一直在寻找这个问题,却找不到答案。 我正在用PHP开发一个软件 在这个软件中,用户登录并上传文件。之后,他们可以注销。我的问题是: 如何防止其他用户访问其他用户的文件? 我为登录用户使用会话 例如: 用户a登录。php设置此用户的会话。用户a上传文件,PHP将文件移动到特定文件夹。用户a注销 用户b登录。php为该用户设置会话。用户b无法访问用户a上载的文件 如何编写php代码来实现这一点? 谢谢使用uploader列为上传的文件创建一个表,如下所示 CREATE TABLE IF NOT E

我一直在寻找这个问题,却找不到答案。 我正在用PHP开发一个软件

在这个软件中,用户登录并上传文件。之后,他们可以注销。我的问题是:

如何防止其他用户访问其他用户的文件?

我为登录用户使用会话

例如: 用户a登录。php设置此用户的会话。用户a上传文件,PHP将文件移动到特定文件夹。用户a注销

用户b登录。php为该用户设置会话。用户b无法访问用户a上载的文件

如何编写php代码来实现这一点?


谢谢

使用uploader列为上传的文件创建一个表,如下所示

CREATE TABLE IF NOT EXISTS files (
    filename VARCHAR(30) NOT NULL,
    uploader VARCHAR(30) NOT NULL
)
用户登录后,您将从
$\u会话中获得用户名
使用以下命令查询数据库

SELECT * FROM files WHERE uploader = $username

与将文件存储在公共区域(如http:\\www.domain.com\somefolder\afile.jpg)不同,您必须将文件保存在只有服务器才能读取的受保护位置,然后向任何客户端显示文件,您需要一个验证用户、获取请求的文件名和用户会话的门,然后给他们一份带有临时地址的文件副本。

你也在使用数据库吗?将文件名和上载程序存储在数据库中,然后搜索文件的所有者。谢谢。是的,我使用数据库。问题:如果浏览器中的用户类型为http:\\www.domain.com\somefolder\afile.jpg,则可以不经许可访问此文件。正确的?我怎样才能避免这种情况?谢谢。问题:如果chrome中的用户类型:http:\\www.domain.com\somefolder\afile.jpg可以不经许可访问此文件。正确的?我怎样才能避免这种情况?谢谢。如果在我的软件为文件使用临时地址时使用此方法,则每个人都可以通过在地址栏中键入此临时地址来访问此文件,这是不安全的。我想使用一种安全的方法。谢谢。我现在找到解决办法了。我可以使用sample.php来代替img文件的源代码,也可以通过php设置头来下载文件。谢谢@payam sbr的答案在其他答案之间是好的,所以我勾选它。