欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

:PHP代码排错

程序员文章站 2022-06-15 16:49:04
...
为什么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();
}

相关标签: :PHP代码排错