关于设置Emlog评论人邮件必填的操作方法

使用Emlog博客的朋友应该都知道Emlog评论人邮件不是必填的,下面说下修把Emlog评论人邮件改为必填的方法,本方法思路来源于EM论坛,经测试(测试版本5.3.1)修改后可以正常使用

找到根目录下include/controller/comment_controller.php这个文件中的

代码语言:javascript
复制
elseif ($mail != '' && !checkMail($mail)) {
            emMsg('评论失败:邮件地址不符合规范');

替换成

代码语言:javascript
复制
elseif (empty($mail) || !checkMail($mail)){
emMsg('提交失败:邮件地址不规范,请输入正确的E-mail地址', 'javascript:history.back(-1);');

这个就可以实现Emlog评论人邮件必填,需要的朋友动手试试吧,如有疑问,可在下面留言。网址必填的方法也一样,只需要把

代码语言:javascript
复制
elseif (!empty($url) && preg_match("/^(http|https)://[^<>'"]*$/", $url) == false) {
            emMsg('评论失败:主页地址不符合规范','javascript:history.back(-1);');

用下面代码替换即可

代码语言:javascript
复制
elseif (empty($url) || preg_match("/^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]’:+!]*([^<>"])*$/", $url) == false) {
            emMsg('评论失败:网址不符合规范,请使用正确的网址','javascript:history.back(-1);');

以上方法需要修改emlog内核,下面讲下不修改的内核实现的方法(其实就是js判断实现,需要在module.php文件评论表单的form中加入name="sheli"):代码如下

代码语言:javascript
复制
<script language=JavaScript>
function CheckForm(){
    if(document.sheli.comname.value.length == 0) {
        alert("请输入昵称");
        document.sheli.comname.focus();
        return false;
    }
    if(document.sheli.commail.value.length == 0) {
        alert("请输入邮箱地址");
        document.sheli.commail.focus();
        return false;
    }
    var reg = /^([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+.[a-zA-Z]{2,3}$/;
    if(!reg.test(document.sheli.commail.value))
    {
        alert("邮箱地址错误,请输入正确的邮箱地址");
        document.sheli.commail.focus();
        return false;
    }
var reg = /^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&amp;_~`@[]’:+!]*([^&lt;&gt;&#34;])*$/;
if(!reg.test(document.sheli.comurl.value) &amp;&amp; (document.sheli.comurl.value))
{
    alert(&#34;请输入正确的网站地址,加http://或不填写&#34;);
    document.sheli.comurl.focus();
    return false;
}

if(document.sheli.comment.value.length == 0) {
    alert(&#34;请填写评论内容且评论内容需包含中文&#34;);
    document.sheli.comment.focus();
    return false;
}

}
</script>

把上面代码放入有留言本的页面最下方即可