请问如何实现下载文件之前检查权限的功能? 开发环境:PHP,Apache要做一个小的文件系统,里面有些ppt文件,这些文件只对会员开放,会员登录后可以自由下载,如一个文件的地址:http://www.test.com/files/example.ppt但这个地址拿出去让匿名用户看到是无法下载的,也就是下载之前有个权限验证的功能,请问怎么实现?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 网上找找 防盗链啊 百度 Rewrite防盗链 有多个方法 比如在显示页面先检查有没有登陆 有登陆才显示对应文件路径的链接2下载地址不要直接对应着文件路径 如 download.php?id=3数据库表 downfile 有如下记录id filename1 example.ppt在 download.php页面检查有没有登陆 有 header到文件的路径 没有提示登陆 两位朋友好!在防盗链没有经验,会员下载的时候用迅雷,那势必就能知道下载地址了,如果他把地址直接给别人,那别人不就也可以下载了?请求http://www.test.com/files/example.ppt时,就需要有个验证的过程,因为数据库不是MySQL,MySQL与Apache结合,mod-auth-mysql这个模块似乎倒是很好。所以,再请教下,能否给个详细点的方法,非常感激! 那就我说的第二方法 download.php?id=1 这样他根本不知道他要下载的是什么文件 路径在那大概代码如下<?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;}?> 用if(!isset($_SESSION[username])) 来判断当前活跃是否登录 最简单的办法是使用http域验证。//发送http验证头header('WWW-Authenticate:Basic'); header('HTTP/1.0 401 Unauthorized'); 然后用$_SERVER['PHP_AUTH_USER']和$_SERVER['PHP_AUTH_PW']去数据库里检测是否存在,如果存在,就开始下载。否则发送403错误神马的随你便。不过这个界面不太友好。 怎样理解DISCUZ代码? 怎么整合2个网站 关于动态生成表格的问题!急! insert into 错误怎么回事,请教 网站的网页出现空白问题. 如何从mysql数据库中获取一个表的表结构? 用PHP如何显示数据库中某一值的前十个字符?? 这个规则该怎么写?[^\"'>string]也就是说,不具有"'>的任何一个,同时不具有string这个字串。 fsockopen()怎么使用? PHP微信扫码支付成功后,微信一直发送通知,怎么能只让发送一次通知 smarty二级菜单输出的问题,困绕我几个星期了 form表单上传求教
在显示页面先检查有没有登陆 有登陆才显示对应文件路径的链接
2
下载地址不要直接对应着文件路径 如 download.php?id=3
数据库表 downfile 有如下记录
id filename
1 example.ppt
在 download.php页面检查有没有登陆 有 header到文件的路径 没有提示登陆
MySQL与Apache结合,mod-auth-mysql这个模块似乎倒是很好。所以,再请教下,能否给个详细点的方法,非常感激!
大概代码如下
<?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;
}
?>
header('WWW-Authenticate:Basic');
header('HTTP/1.0 401 Unauthorized'); 然后用$_SERVER['PHP_AUTH_USER']和$_SERVER['PHP_AUTH_PW']去数据库里检测是否存在,如果存在,就开始下载。否则发送403错误神马的随你便。不过这个界面不太友好。