站长学院
CMS建站教程 SEO优化攻略
来源:齐鲁建站 栏目:开发教程 阅读: 日期: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下载参数错误的所有内容,希望可以帮到大家,欢迎扫码加微信一起交流~