请问如何实现下载文件之前检查权限的功能?
时间:2011-11-14
来源:互联网
要做一个小的文件系统,里面有些ppt文件,这些文件只对会员开放,会员登录后可以自由下载,如一个文件的地址:http://www.test.com/files/example.ppt
但这个地址拿出去让匿名用户看到是无法下载的,也就是下载之前有个权限验证的功能,请问怎么实现?谢谢!
作者: sibad_sh20 发布时间: 2011-11-14
作者: qqmnme 发布时间: 2011-11-14
在显示页面先检查有没有登陆 有登陆才显示对应文件路径的链接
2
下载地址不要直接对应着文件路径 如 download.php?id=3
数据库表 downfile 有如下记录
id filename
1 example.ppt
在 download.php页面检查有没有登陆 有 header到文件的路径 没有提示登陆
作者: heyli 发布时间: 2011-11-14
在防盗链没有经验,会员下载的时候用迅雷,那势必就能知道下载地址了,如果他把地址直接给别人,那别人不就也可以下载了?
请求http://www.test.com/files/example.ppt时,就需要有个验证的过程,因为数据库不是MySQL,
MySQL与Apache结合,mod-auth-mysql这个模块似乎倒是很好。
所以,再请教下,能否给个详细点的方法,非常感激!
作者: sibad_sh20 发布时间: 2011-11-14
大概代码如下
<?php
session_start();
if($_SESSION[ "username "]) //有登陆
{
$id = $_GET[ "id "];
$query = mysql_query( "select * from table where id= ".$id);
$arr = mysql_fetch_array($query);
header( "location: ./path/$arr[ 'filename '] ");
}else
{
echo "请先登陆 ";
exit;
}
?>
作者: heyli 发布时间: 2011-11-14
该回复于2011-11-14 22:37:54被管理员删除
- 对我有用[0]
- 丢个板砖[0]
- 引用
- 举报
- 管理
- TOP
|
#6楼 得分:0回复于:2011-11-14 23:55:42
|
作者: b13272012771 发布时间: 2011-11-14
//发送http验证头
header('WWW-Authenticate:Basic');
header('HTTP/1.0 401 Unauthorized');
然后用$_SERVER['PHP_AUTH_USER']和$_SERVER['PHP_AUTH_PW']去数据库里检测是否存在,如果存在,就开始下载。否则发送403错误神马的随你便。
不过这个界面不太友好。
作者: belin520 发布时间: 2011-11-14
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28