colorful模板的私密评论问题解决办法
正常情况下在评论内容为空时 ,不输入内容是无法进行评论 的,会提示“评论失败:请填写评论内容”;
如果用户勾选“私密评论” 后,评论框里会有“
[私密评论]
” 标识字符,这样即便不输入评论内容, 也能进行评论了;还有就是在评论框中多个或连续输入“[私密评论] ”没有实际内容也会,通过私密评论。
所以 要确保 私密评论填写了实际的内容,检查 $content
是否包含特定的私密评论标识符,并且该标识符后面有实际的内容。
还要要限制用户反复输入“[私密评论]”或连续输入多个“[私密评论]”以绕过私密评论的限制。
在根目录/include/controller/comment_controller.php 中合适位置中添加:
elseif ($content === '[私密评论]') {
emMsg('评论失败:私密评论需要填写评论内容');
}
elseif (preg_match('/^\[私密评论\](?:\s*\[私密评论\])*$/', $content)) {
emMsg('评论失败:不是有效的私密评论 ');
}
在这段代码中,有两个 elseif
语句,它们都是用来检查评论内容 $content
是否满足特定的条件,并在条件满足时通过 emMsg
函数发送一个错误消息
第一个 elseif
语句:
这个条件检查 $content
是否严格等于字符串 '[私密评论]'
(即 $content
中没有多余的空格或其他字符)。如果条件满足,这意味着用户只输入了私密评论的标记而没有添加任何实际的评论内容。因此,系统通过 emMsg
函数发送一个错误消息,告诉用户“私密评论需要填写评论内容”。
第二个 elseif
语句:
这个条件使用了一个正则表达式来检查 $content
是否满足特定的模式。这个正则表达式会匹配任何只包含单个或重复的“[私密评论]”标记的字符串,可能中间夹杂着空白字符。如果条件满足,这意味着用户可能尝试通过重复输入私密评论标记来绕过私密评论的限制。因此,系统通过 emMsg
函数发送一个错误消息,告诉用户“不是有效的私密评论”。
这两个条件检查 确保了用户提交的评论内容既不是仅仅是“[私密评论]” 标记而没有实际内容,也不是仅由重复“[私密评论]” 重标记组成的无效评论,则系统会通知用户评论失败,因为这不是一个有效的私密评论格式。
元字符:
元字符 | 描述 |
---|---|
. | 匹配除换行符以外的任意字符 |
\d | 匹配数字, 等价于字符组[0-9] |
\w | 匹配字母, 数字, 下划线或汉字 |
\s | 匹配任意的空白符(包括制表符,空格,换行等) |
\b | 匹配单词开始或结束的位置 |
^ | 匹配行首 |
$ | 匹配行尾 |
反义元字符:
元字符 | 描述 |
---|---|
\D | 匹配非数字的任意字符, 等价于[^0-9] |
\W | 匹配除字母,数字,下划线或汉字之外的任意字符 |
\S | 匹配非空白的任意字符 |
\B | 匹配非单词开始或结束的位置 |
[^x] | 匹配除x以外的任意字符 |
重复限定符:
限定符共有6个, 假设重复次数为x次, 那么将有如下规则:
限定符 | 描述 |
---|---|
* | x>=0 |
+ | x>=1 |
? | x=0 or x=1 |
{n} | x=n |
{n,} | x>=n |
{n,m} | n<=x<=m |
发表吐槽
你肿么看?
既然没有吐槽,那就赶紧抢沙发吧!