新闻中心

phpcms版本升至V9.1.13(20120129)前台显示“栏目禁止投稿”的解决办法

作者 / 时间 2014-01-15 17:58:53

phpcms版本升至V9.1.13(20120129)前台显示“栏目禁止投稿”的解决办法 [caption id="attachment_13495" align="alignnone" width="150"]错误提示:栏目禁止投稿 错误提示:栏目禁止投稿[/caption] 最近无忧主机小编接待到一个客户的phpcms出现这样的报错:网站升级到phpcms 20120129的版本后,会员发稿出现栏目禁止投稿,报错截图如下图所示:   [caption id="attachment_13496" align="alignnone" width="150"]phpcms后台 phpcms后台[/caption] [caption id="attachment_13497" align="alignnone" width="150"]phpcms后台 phpcms后台[/caption] 客户过来寻求无忧小编的帮助。无忧主机小编最终帮他找到了解决方法,下面是小编的问题排查过程。   关于这个报错,无忧主机小编最先想到的是栏目的投稿权限没有开启,所以无忧小编去查看了一下是否栏目正常开启了投稿权限。这个主要是在程序后台查看。 在 后台——内容——管理栏目——修改 你要投稿的栏目——权限设置 下面的会员组 选上 允许投稿! 更新全站缓存应该就OK了!       不过这个方法对于这个客户并没有效果,他的网站主要是升级后才出现的失效,在PHPCMS官网论坛上也有一些客户遇到这样的问题。 原来,这个问题在官方的答复是一个程序bug,临时解决方法如下:

把phpcms/modules/member/content.php第114行至121行

foreach ($CATEGORYS as $catid=>$cat) {

if($cat['siteid']==$siteid && $cat['child']==0 && $cat['type']==0 && $priv_db->get_one(array('catid'=>$catid, 'roleid'=>$memberinfo['groupid'], 'is_admin'=>0, 'action'=>'add'))) break;

}

$catid = $_GET['catid'] ? intval($_GET['catid']) : $catid;

if (!$catid) showmessage(L('category').L('publish_deny'), APP_PATH.'index.php?m=member');

//判断本栏目是否允许投稿

if (!$priv_db->get_one(array('catid'=>$catid, 'roleid'=>$memberinfo['groupid'], 'is_admin'=>0, 'action'=>'add'))) showmessage(L('category').L('publish_deny'), APP_PATH.'index.php?m=member');
  上面一块替换成:
foreach ($CATEGORYS as $catid=>$cat) {

if($cat['siteid']==$siteid && $cat['child']==0 && $cat['type']==0 && (!$priv_db->get_one(array('catid'=>$catid, 'is_admin'=>0, 'action'=>'add')) || $priv_db->get_one(array('catid'=>$catid, 'roleid'=>$memberinfo['groupid'], 'is_admin'=>0, 'action'=>'add')))) break;

}

$catid = $_GET['catid'] ? intval($_GET['catid']) : $catid;

if (!$catid) showmessage(L('category').L('publish_deny'), APP_PATH.'index.php?m=member');
//判断本栏目是否允许投稿
if ($priv_db->get_one(array('catid'=>$catid, 'is_admin'=>0, 'action'=>'add')) && !$priv_db->get_one(array('catid'=>$catid, 'roleid'=>$memberinfo['groupid'], 'is_admin'=>0, 'action'=>'add'))) showmessage(L('category').L('publish_deny'), APP_PATH.'index.php?m=member');
  之后更新缓存即可。   相关文章推荐阅读: PHPCMS更换服务器后前台后台无法登录的解决方法 PHPCMSV9出现上传图片文件浏览器卡死状态解决方法 PHPCMS V9.42版本上传图片出现UNDEFINED解决办法

本文地址:https://www.51php.com/phpcms/13494.html

1
1
1
1
1
1
1