$cms_content['filenum'] = $filenum; } // 如果缩略图为空,并且附件表有图片,开启自动缩略图,则将第一张图片设置为缩略图 if(empty($cms_content['pic']) && $imagenum && $auto_pic) { $cms_content['pic'] = $this->auto_pic($table, $uid, 0, $models); } //开启自动缩略图,匹配内容里面的图片(这里不生成缩略图小图,直接是完整的图片网址) if(empty($cms_content['pic']) && $auto_pic){ $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/"; preg_match_all($pattern, $contentstr, $match); if( isset($match[1]) && isset($match[1][0]) ){ $match_pic = $match[1][0]; if(substr($match_pic, 0, 2) == '..'){ $match_pic = substr($match_pic, 2); } $webdir_len = strlen($this->cfg['webdir']); if(substr($match_pic, 0, $webdir_len) == $this->cfg['webdir']){ $cms_content['pic'] = substr($match_pic, $webdir_len); }else{ $cms_content['pic'] = $match[1][0]; } } } //处理缩略图 end //标签处理 start $tagdatas = $tags = array(); if($tagstr){ $tags_arr = explode(',', $tagstr); $tags_arr = array_unique($tags_arr); //去重 $tags_arr = array_filter($tags_arr); //去掉空 $this->cms_content_tag->table = 'cms_'.$table.'_tag'; for($i = 0; isset($tags_arr[$i]) && $i < 8; $i++) { //只保留8个标签 $name = $this->cms_content_tag->_tagformat($tags_arr[$i]); if($name){ $tagdata = $this->cms_content_tag->find_fetch(array('name'=>$name), array(), 0, 1); //看看是否已经存在 if($tagdata) { $tagdata = current($tagdata); }else{ $tag_post = array('name'=>$name, 'count'=>0, 'content'=>''); $tagid = $this->cms_content_tag->create($tag_post); if(!$tagid){ DEBUG && log::le_log($tag_post, 'cms_content_xadd_error'); return array('err'=>1 ,'msg'=>lang('write_tag_table_failed')); } $tagdata = $this->cms_content_tag->get($tagid); } $tagdata['count']++; $tagdatas[] = $tagdata; if( _strlen(_json_encode($tags)) > 500){ //主表tags长度限制 break; } $tags[$tagdata['tagid']] = $tagdata['name']; } } } if($tags){ $cms_content['tags'] = _json_encode($tags); } //标签处理 end //print_r($cms_content);exit; //有无指定ID? 写入主表 if($id){ if(!$this->set($id, $cms_content)) {$id = 0;} }else{ $id = $this->create($cms_content); } if($id) { $cms_content['id'] = $id; //发布内容,数据是否写入附表分表 if($id > $this->cfg['le_data_table_count']){ $shuzi = ceil($id/$this->cfg['le_data_table_count']) - 1; $cms_data_table = 'cms_'.$table.'_data'.$shuzi; //创建附表分表 $this->create_data_table_split($shuzi, $table); $this->cms_content_data->table = $cms_data_table; }if( empty($cms_content['pic']) ){ $rand_pic_cid_dir = 'upload/pic/'.$cid.'/'; $pic_images_dir = ROOT_PATH.$rand_pic_cid_dir; //随机缩略图所在文件夹路径 if( is_dir($pic_images_dir) ) { $img_arr = _scandir($pic_images_dir); }else{ $rand_pic_cid_dir = 'upload/pic/0/'; //共用的随机缩略图所在文件夹路径 $pic_images_dir = ROOT_PATH.$rand_pic_cid_dir; if( is_dir($pic_images_dir) ) { $img_arr = _scandir($pic_images_dir); }else{ $img_arr = array(); } } foreach ($img_arr as $k=>$img){ if($img == '.' || $img == '..'){ unset($img_arr[$k]); } } if($img_arr){ $rand_key = array_rand($img_arr); $rand_pic = $rand_pic_cid_dir.$img_arr[$rand_key]; $rand_pic_path = $pic_images_dir.$img_arr[$rand_key]; if( is_file($rand_pic_path) ){ $this->update(array('id'=>$id, 'pic'=>$rand_pic)); if(isset($this->cfg['rand_pic_cid_write_content']) && $this->cfg['rand_pic_cid_write_content']){ $picstr = '

'.$title.'

'; switch ($this->cfg['rand_pic_cid_write_content']){ case 1: $cms_content_data['content'] = $picstr.$contentstr; break; case 2: $cms_content_data['content'] = $contentstr.$picstr; break; case 3: $content_arr = explode('

', $contentstr); $content_arr_count = count($content_arr); $key = array_rand($content_arr);//随机数组下标,插入位置 $content_arr_tmp=array(); foreach($content_arr as $k=>$value){ if($k==$key){ $value && $content_arr_tmp[] = $value.'

'; $content_arr_tmp[] = $picstr; }else{ $value && $content_arr_tmp[] = $value.'

'; } } $cms_content_data['content'] = implode('', $content_arr_tmp); unset($content_arr); unset($content_arr_tmp); break; } } } } unset($img_arr); } }else{ DEBUG && log::le_log($cms_content, 'cms_content_xadd_error'); return array('err'=>1 ,'msg'=>lang('write_content_table_failed')); } //附表数据 if($this->cms_content_data->set($id, $cms_content_data)) { }else{ DEBUG && log::le_log($cms_content_data, 'cms_content_xadd_error'); $this->delete($id); //删除主表数据 return array('err'=>1 ,'msg'=>lang('write_content_data_table_failed')); } // 写入查看数表 $cms_content_views = array( 'cid'=>$cid, 'views'=>isset($post['views']) ? (int)$post['views'] : 0, ); if(!$this->cms_content_views->set($id, $cms_content_views)) { $this->delete($id); //删除主表数据 $this->cms_content_data->delete($id); //删除附表数据 DEBUG && log::le_log($cms_content_views, 'cms_content_xadd_error'); return array('err'=>1 ,'msg'=>lang('write_content_views_table_failed')); } // 写入全站唯一别名表 if($alias && !$this->only_alias->create(array('alias'=> $alias ,'mid' => $mid, 'cid' => $cid, 'id' => $id))) { $this->update(array('id'=>$id, 'alias'=>'')); } //标签表和标签内容表对应 if($tagdatas){ $this->cms_content_tag_data->table = 'cms_'.$table.'_tag_data'; foreach($tagdatas as $tagdata) { $this->cms_content_tag->update($tagdata); $this->cms_content_tag_data->set(array($tagdata['tagid'], $id), array('id'=>$id)); } } // 写入内容属性标记表,set里面的data要完整,避免在开启缓存的时候写入数据不完整,导致读取不到完整数据 if($flags){ $this->cms_content_flag->table = 'cms_'.$table.'_flag'; Lecms 3.0.3 错误

错误信息

错误位置

基本信息

程序流程

SQL

$_GET

$_POST

$_COOKIE

包含文件

其他信息