当前位置:Gxlcms > PHP教程 > :PHP代码排错

:PHP代码排错

时间:2021-07-01 10:21:17 帮助过:20人阅读

为什么PHP代码(数据库+外链)不能下载?


源代码 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();
}

人气教程排行