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下载参数错误的所有内容,希望可以帮到大家,欢迎扫码加微信一起交流~

公众号二维码

展开