phpcms v9 下载模块参数错误的真正好用解决办法

代码笔记   2014-01-27 17:33:59

             phpcms在下载的时候会检查客户端的IP地址,从网上也查询了大量的资料,目前知道的解决办法无非就2个,经测试一个无效,一个不能解决根本问题。已经知道的2个办法一个是加$data['id'] = $id; 测试 无效,一个是更改下载地址 显示原始下载地址,不经过phpcms的内核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'));
上传,覆盖 更新缓存。点击下载,居然成了。留下笔记 方便下次使用。
打赏