源代码 dl_func.php
-------------------------------------------------------
function dl_dbconnect(){
$dl_in=0;
//打开 mysql 服务器连接
$dl_in=mysql_connect(localhost:3306,a1006191543,密码没错);
//选择一个数据库
mysql_select_db(a1006191543,$dl_in);
return $dl_in;
}
?>
-------------------------------------------------------
源代码 filedown.php
-------------------------------------------------------
require_once(dl_func.php);
$dl_in=dl_dbconnect();
$strquery=select url from dl_file where id='$id'; //定义查询规则
$dl_res=mysql_query($strquery,$dl_in); //返回id送到$dl_res
$arrfile=mysql_fetch_array($dl_res); //根据id返回数组到$arrfile
$arr_temp=split(/,$arrfile[url]); //将字符串依指定的规则分开
$filename=$arr_temp[sizeof($arr_temp)-1]; //sizeof: 获知数组的大小
$strquery=update dl_file set count=count+1 where id='$id';
mysql_query($strquery,$dl_in);
header(content-type: application/file);
header(content-disposition: attachment; filename=$filename);
header(location:$arrfile[url]);
mysql_close($dl_in);
?>
-------------------------------------------------------
数据库表dl_file结构:
create table dl_file (
id varchar(6),
name varchar(50),
url varchar(200),
count bigint(10)
);
id name url count
-------------------------------------------------------
a001 stellax http://www.last.com/stella.rar 0
a002 z26 http://www.mey.com/z26.zip 0
a003 飞机空战 http://www.piogame.com/river.bin 0
b012 滑板 http://www.computer.com/skate.bin 0
b013 蓝精灵 http://www.computer.com/catle.bin 0
d064 史努比 http://www.akuter.com/snoopy.bin 0
早先在购买的空间里,运行正常。
为何在现在的空间里,也是这2个程序(换了数据库用户名、密码),报错?
调用形式:http://www.******.com/filedown.php?id=a001
ie报错信息:
“此错误(http 403 禁止)意味着 internet explorer 可以连接到该网站,但是没有查看该网页的权限。”
回复讨论(解决方案) 先把header注释掉。echo url看看是否正确
已找到故障点: filedown.php
$strquery=select url from dl_file where id= '$id'; //定义查询规则
改为固定参数后:
$strquery=select url from dl_file where id= 'a001'; //定义查询规则
外链正常
但是,如何改正带参运行?带参调用形式如下:
http://www.*****.com/down/filedown.php?id=a001
$id = isset($_get['id']) ? $_get['id'] : 'a001';
$strquery=select url from dl_file where id='$id';
$id如果为空,你没有加处理吧。
if(!$id){
exit();
}
