Discuz教程网

[代码修改] 不允许回复纯数字、纯字母、纯表情,须回复中文,中文字数可设置

[复制链接]
原创
authicon 诸葛晓明 发表于 2011-4-18 14:58:55 | 显示全部楼层 |阅读模式
本帖最后由 诸葛晓明 于 2011-4-18 15:12 编辑

截图257.jpg

截图256.jpg

截图255.jpg


备注:修改前记得备份文件

三个代码修改依次如下:

一、打开 static/js 下的 forum_post.js
查找:
  1. if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") {
  2. showDialog('请完成标题或内容栏');
  3. return false;
  4. } else if(mb_strlen(theform.subject.value) > 80) {
  5. showDialog('您的标题超过 80 个字符的限制');
  6. return false;
  7. }
复制代码
或其中的部分字符(大概在62-69行之间)
然后在下面添加:
  1. var chinese = message.match(/[\u4e00-\u9fff\uf900-\ufaff]/g);
  2. var chineseLength = !chinese?0:chinese.length;
  3. if(chineseLength < 3){
  4. showDialog('<b><font color=red>不允许使用纯数字、纯字母、纯表情,请珍惜你的ID,恶意灌水者会被禁ID封IP,请输入至少3个中文。</font></b>');
  5. return false;
  6. }
复制代码

二、
打开 source\include\post 下的 post_newreply.php
查找:
  1. if(trim($subject) == '' && trim($message) == '' && $thread['special'] != 2) {
  2. showmessage('post_sm_isnull');
  3. } elseif($thread['closed'] && !$_G['forum']['ismoderator'] && !$thread['isgroup']) {
  4. showmessage('post_thread_closed');
  5. } elseif(!$thread['isgroup'] && $post_autoclose = checkautoclose($thread)) {
  6. showmessage($post_autoclose, '', array('autoclose' => $_G['forum']['autoclose']));
  7. } elseif($post_invalid = checkpost($subject, $message, $special == 2 && $_G['group']['allowposttrade'])) {
  8. showmessage($post_invalid, '', array('minpostsize' => $_G['setting']['minpostsize'], 'maxpostsize' => $_G['setting']['maxpostsize']));
  9. } elseif(checkflood()) {
  10. showmessage('post_flood_ctrl', '', array('floodctrl' => $_G['setting']['floodctrl']));
  11. } elseif(checkmaxpostsperhour()) {
  12. showmessage('post_flood_ctrl_posts_per_hour', '', array('posts_per_hour' => $_G['group']['maxpostsperhour']));
  13. }
复制代码
或其中的部分字符(大概在269-281行之间)
然后在下面添加:
  1. if(preg_match_all("/[\xB0-\xF7][\xA1-\xFE]/",$message,$regs) < 3) showmessage(" <b><font color=red>不允许回复纯数字、纯字母、纯表情,请珍惜你的ID,恶意灌水者会被禁ID封IP,为了尊重楼主的贡献,请输入至少3个中文</font></b>");
复制代码

三、
还是二中的文件,查找:
  1. $message = preg_replace('/\[attachimg\](\d+)\[\/attachimg\]/is', '[attach]\1[/attach]', $message);
复制代码
大概在 331 行。
然后在下面添加:
  1. if(preg_match_all("/[\xB0-\xF7][\xA1-\xFE]/",$message,$regs) < 3) showmessage(" <b><font color=red>不允许回复纯数字、纯字母、纯表情,请珍惜你的ID,恶意灌水者会被禁ID封IP,为了尊重楼主的贡献,请输入至少3个中文</font></b>");
复制代码










上一篇:js统计中文字符个数的函数
下一篇:js判断数字,字母,中文
authicon njy1239 发表于 2011-4-18 20:32:47 | 显示全部楼层
很实用,加油
authicon queechou 发表于 2011-4-19 11:17:15 | 显示全部楼层
这个插件太好了!!!
authicon vipnian 发表于 2011-4-19 22:48:15 | 显示全部楼层
想要,喜欢啊
authicon a137580399 发表于 2011-4-29 10:04:38 | 显示全部楼层

这个插件太好了
authicon 蓝天blue 发表于 2011-5-11 07:59:46 | 显示全部楼层
顶啦,不错吧
authicon lilac_yao 发表于 2011-5-12 19:59:31 | 显示全部楼层
前来看看那
authicon 婷婷爱牛牛 发表于 2011-5-18 05:59:35 | 显示全部楼层
不错,谢谢分享
authicon 咫尺天 发表于 2011-5-20 05:59:42 | 显示全部楼层
好辛苦才找到啊
authicon YY大兔子 发表于 2011-5-23 12:59:36 | 显示全部楼层
好辛苦才找到啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 03:05

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表