织梦的留言板功能默认是开启的,但为了防止垃圾信息,默认情况下所有留言都需要后台审核才能在前台显示,这正是你需要的“审核”功能。
下面我将分为几个部分来详细说明:
- 默认审核机制工作原理
- 后台审核留言的详细步骤
- 如何修改审核规则(信任用户免审)
- 前台提交留言的调用代码
- 常见问题与解决方案
默认审核机制工作原理
理解这个原理能帮助你更好地管理:
- 数据表:织梦的留言信息存储在
dede_guestbook数据表中。 - 核心字段:这个表里有一个非常关键的字段叫
ischeck(或arcrank,在早期版本中,但ischeck更常见)。ischeck = 1:表示留言已审核,可以在前台正常显示。ischeck = 0:表示留言未审核,只存在于后台,前台不会调用。
- 流程:
- 访客在前台填写留言并提交。
- 数据被写入
dede_guestbook表,ischeck字段的值默认为 0。 - 管理员登录后台,找到未审核的留言,进行“审核”操作。
- 审核操作会将该条留言的
ischeck字段值从 0 修改为 1。 - 前台的留言调用标签
{dede:guestbook}只会查询ischeck = 1的留言,因此审核后的留言才会显示出来。
后台审核留言的详细步骤
这是最核心的操作,非常简单。
第一步:登录织梦后台
使用你的管理员账号和密码登录网站后台。
第二步:进入留言管理界面
在后台左侧的菜单栏中,找到并点击 “核心” -> “互动” -> “留言簿管理”。
(这是一个示意图,实际界面可能因版本略有不同)
第三步:查看未审核留言
进入留言管理页面后,你会看到所有提交的留言列表,默认情况下,系统会自动筛选出 “未审核” 的留言,并用醒目的颜色(如红色)或标记提示你。
- 状态列:这里会显示留言的审核状态,如“待审核”、“已审核”。
- 操作列:每条留言后面都有操作按钮。
第四步:审核留言
审核操作有两种方式:
- 单条审核:找到你想要审核的那条留言,点击其右侧的 “审核” 按钮。
- 批量审核:如果你勾选了页面中的多个留言,可以点击列表上方的 “审核” 按钮,实现一键批量审核。
第五步:查看已审核留言
审核完成后,你可以点击页面顶部的 “已审核” 标签页,查看所有已经通过审核并显示在前台的留言,你也可以在这里对已审核的留言进行 “删除” 或 “取消审核” 操作。
如何修改审核规则(信任用户免审)
你可能希望网站的注册用户可以直接留言免审,而匿名留言则需要审核,这需要修改一个核心文件。
目标:让已登录的用户提交的留言,ischeck 字段默认为 1(已审核)。
操作步骤:
-
找到文件:使用FTP工具或主机文件管理器,登录到你的网站服务器。
-
定位文件:进入织梦程序的根目录,找到并打开文件:
plus/guestbook.php -
修改代码: 在
guestbook.php文件中,找到处理表单提交的代码段,通常在文件末尾,类似这样的结构:// ... 其他代码 ... // 插入留言到数据库 $query = "INSERT INTO `dede_guestbook` (`arctitle`,`msg`,`userid`,`uname`,`email`,`ip`,`typeid`,`ischeck`,`dtime`) VALUES ('$arctitle','$msg','$uid','$username','$email','$ip','$typeid','$ischeck','$dtime')"; $dsql->ExecuteNoneQuery($query); // ... 其他代码 ...你需要找到
$ischeck这个变量被赋值的地方,默认情况下,它可能是$ischeck = 0;,你需要将它修改为根据用户登录状态来判断:// 在 guestbook.php 中找到类似下面这行代码 // $ischeck = 0; // 这是原来的默认值 // 修改为以下逻辑: if ($cfg_mbmessage == 'Y' && $uid != 0) { // 如果开启了会员留言功能,并且用户已登录($uid不为0),则直接审核通过 $ischeck = 1; } else { // 否则(匿名用户),设置为未审核,等待管理员审核 $ischeck = 0; }注意:
$cfg_mbmessage是织梦系统配置中关于“是否允许会员留言”的变量,$uid是当前登录用户的ID,如果为0则表示未登录,这样修改后,只有登录用户的留言才会被自动审核。 -
保存文件:保存修改后的
guestbook.php文件。
前台提交留言的调用代码
为了让网站前台能显示留言板,你需要使用两个织梦标签:一个用于显示留言表单,一个用于显示留言列表。
在需要显示留言板的页面(如 guestbook.htm 模板文件)中:
留言表单代码
<form name="form1" action="{dede:global.cfg_cmspath/}/plus/guestbook.php" method="post">
<input type="hidden" name="dopost" value="send" />
<input type="hidden" name="action" value="new" />
<input type="hidden" name="typeid" value="0" />
<div>
<label for="uname">昵称:</label>
<input type="text" name="uname" id="uname" size="30" />
</div>
<div>
<label for="email">邮箱:</label>
<input type="text" name="email" id="email" size="30" />
</div>
<div>
<label for="msg">留言内容:</label>
<textarea name="msg" id="msg" rows="5" cols="50"></textarea>
</div>
<div>
<input type="submit" name="submit" value="提交留言" />
</div>
</form>
留言列表代码
{dede:guestbook}
<div class="guest-item">
<div class="guest-info">
<span class="guest-name">【{dede:field.uname function='htmlspecialchars(@me)'/}】</span>
<span class="guest-time">{dede:field.ip function='htmlspecialchars(@me)'/} - {dede:function(strip_tags(@me), 'm-d H:i')}</span>
</div>
<div class="guest-content">
{dede:field.msg function='htmlspecialchars(@me)'/}
</div>
</div>
{/dede:guestbook}
注意:
{dede:guestbook}这个标签默认只调用已审核(ischeck=1)的留言。function='htmlspecialchars(@me)'用于防止XSS攻击,对特殊字符进行转义,强烈建议使用。
常见问题与解决方案
问题1:前台看不到任何留言,但后台有提交。
- 原因:99%的情况是管理员没有在后台审核留言。
- 解决:登录后台,进入“留言簿管理”,审核你需要的留言。
问题2:留言提交后,页面提示“发送失败”或出现空白。
- 原因:
- 服务器权限问题:
data目录(或plus目录)没有写入权限。 guestbook.php文件被修改过导致语法错误。- 数据库表
dede_guestbook不存在或已损坏。
- 服务器权限问题:
- 解决:
- 通过FTP检查
data和plus目录的权限,确保为 755 或 777(777有安全风险,建议先755)。 - 检查
guestbook.php代码,或用备份文件覆盖。 - 进入数据库管理,检查
dede_guestbook表是否存在。
- 通过FTP检查
问题3:想修改留言板的外观和样式。
- 解决:直接修改你模板文件中调用留言表单和列表的HTML代码,以及对应的CSS样式文件,织梦的模板系统非常灵活,你可以像修改普通HTML页面一样修改它。
希望这份详细的指南能帮助你完全掌握织梦留言板的审核功能!
