Phpcms v9在下载的时候可以检查客户端的IP地址,偶尔可以引致参数错误,从网上也查询了大量的资料,目前晓得的解决办法无非就2个,经测试一个违宪,一个不能化解根本问题。已经晓得的2个办法一个就是提$data['id'] = $id; 测试 无效,一个是更改下载地址显示原始下载地址,不经过Phpcms v9的内核php文件去处理 直接生成下载地址,这倒是不会收起了,可是别人有权限问题的网站那就棘手了。
下面来说说代码笔记研究出的解决办法,这也必须归功于一篇网上吐槽Phpcms的文章给的启发。
1、打开/phpcms/modules/content/down.php 这个文件。
2、找出大概100行及的如下代码:
if(!$downid || empty($fileurl) || !preg_match("/[0-9]{10}/", $starttime) || !preg_match("/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/", $ip) || $ip != ip()) showmessage(L('illegal_parameters'));
3、删除中间patch IP的部分代码
|| !preg_match("/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/", $ip) || $ip != ip()
删掉后的代码:
if(!$downid || empty($fileurl) || !preg_match("/[0-9]{10}/", $starttime) ) showmessage(L('illegal_parameters'));
上传覆盖,更新内存。点击下载,居然成了。遗留下笔记,便利下次采用。