15621857753

phpcmsV9怎么解决静态下载页提示参数错误

来源:齐鲁建站 栏目:开发教程 阅读: 日期:2021-04-28

本文介绍了phpcmsV9怎么解决静态下载页提示参数错误,解决方法:研究才发现,是程序里不小心遗漏了id参数,弄了好一会才发现是少了$data[ id ],具体处理方式看下教程吧。

phpcmsV9怎么解决静态下载页提示参数错误?以前小编介绍过下载出现参数错误的方法今天再来看看phpcms下载参数错误的方法。

1.在phpcms/modules/content/classes/html.class.php中第28行开始 

$id = $data['id']; 

if($array_merge) { 

$data = new_stripslashes($data); 

$data = array_merge($data['system'],$data['model']); 

//通过rs获取原始值 

$rs = $data; 

合并后的新$data数组中已经没有$data['id'];

2.在phpcms/modules/content/classes/html.class.php中第64开始调用缓存间content_output.class.php读取content_output类

require_once CACHE_MODEL_PATH.'content_output.class.php'; 

65行实例化后第66行

$output_data = $content_output->get($data); 

这里里传输的数组$data中如上所述已经没有$data['id'];

3.content_output.class.php中的get方法如下所示

function get($data) { 

$this->data = $data; 

$this->id = $data['id']; 

$info = array(); 

foreach($this->fields as $field=>$v) { 

if(!isset($data[$field])) continue; 

$func = $v['formtype']; 

$value = $data[$field]; 

$result = method_exists($this, $func) ? $this->$func($field, $data[$field]) : $data[$field]; 

if($result !== false) $info[$field] = $result; 

return $info; 

其中$this->id = $data['id']获取到是已经是空值。

在function downfiles($field, $value) 中生成的$a_k 就错了

$a_k = urlencode(sys_auth("i=$this->id&s=&m=1&f=$_v[fileurl]&d=$downloadtype&modelid=$this->modelid&catid=$this->catid", 'ENCODE', pc_base::load_config('system','auth_key'))); 

所以生成静态页的下载地址里的$a_k参数是错的。

修改方法在phpcms/modules/content/classes/html.class.php中

$rs = $data; 

上方加入

$data['id'] = $id; 

把还id还回$data数组即可。

也不明白$rs = $data;        //通过rs获取原始值  到底在哪里有用。

以上就是关于phpcms下载参数错误的所有内容希望可以帮到大家欢迎扫码加微信一起交流~

展开