phpcms v9 会员投稿功能,编辑文章以后,siteid字段丢失
现象:
会员投稿的内容,进行二次编辑以后,从已投稿列表里消失,后来发现是siteid参数丢失
bug定位
member/content.php 211行
[php]$this->content_db->edit_content($_POST[‘info’],$id);[/php]
content_model.class.php
[php]
//更新审核列表
$this->content_check_db = pc_base::load_model(‘content_check_model’);
$check_data = array(
‘catid’=>$systeminfo[‘catid’],
‘siteid’=>$this->siteid,
‘title’=>$systeminfo[‘title’],
‘status’=>$systeminfo[‘status’],
);
[/php]
再看
[php]$this->siteid = get_siteid();[/php]
[php]
/**
* 获取当前的站点ID
*/
function get_siteid() {
static $siteid;
if (!empty($siteid)) return $siteid;
if (defined(‘IN_ADMIN’)) {
if ($d = param::get_cookie(‘siteid’)) {
$siteid = $d;
} else {
return ”;
}
} else {
$data = getcache(‘sitelist’, ‘commons’);
if(!is_array($data)) return ‘1’;
$site_url = SITE_PROTOCOL.SITE_URL;
foreach ($data as $v) {
if ($v[‘url’] == $site_url.’/’) $siteid = $v[‘siteid’];
}
}
if (empty($siteid)) $siteid = 1;
return $siteid;
}[/php]
可以看出,siteid在模块间传递时出现了丢失。
解决办法是在编辑文章之间对siteid进行更新
[php]
/*
* fix by vus520会员编辑文章以后,消失的bug
* www.4wei.cn
* */
$this->content_db->siteid = $siteid;
$this->content_db->edit_content($_POST[‘info’],$id);
[/php]