emlog MVC解构--控制器Controller之Comment_Controller
  • 内容
  • 评论
  • 相关

Comment_Controller只有一个方法:发表评论。

function addComment($params) {
    // 获取提交的评论名,删除前后的空格,特殊字符添加反斜杠
    $name = isset($_POST['comname']) ? addslashes(trim($_POST['comname'])) : '';
    // 获取提交的评论内容,删除前后的空格,特殊字符添加反斜杠
    $content = isset($_POST['comment']) ? addslashes(trim($_POST['comment'])) : '';
    // 获取提交的评论者邮箱,删除前后的空格,特殊字符添加反斜杠
    $mail = isset($_POST['commail']) ? addslashes(trim($_POST['commail'])) : '';
    // 获取提交的评论者个人网站网址,删除前后的空格,特殊字符添加反斜杠
    $url = isset($_POST['comurl']) ? addslashes(trim($_POST['comurl'])) : '';
    // 获取提交的验证码,转换为大写,删除前后的空格,特殊字符添加反斜杠
    $imgcode = isset($_POST['imgcode']) ? addslashes(trim(strtoupper($_POST['imgcode']))) : '';
    // 获取提交的评论的日志ID
    $blogId = isset($_POST['gid']) ? intval($_POST['gid']) : -1;
    // 获取提交的评论的父评论ID
    $pid = isset($_POST['pid']) ? intval($_POST['pid']) : 0;
    
    // 注册用户且登录
    if (ISLOGIN === true) {
        // 建立缓存对象
        $CACHE = Cache::getInstance();
        // 获取用户缓存信息数组
        $user_cache = $CACHE->readCache('user');
        // 通过缓存获取用户名,特殊字符添加反斜杠
        $name = addslashes($user_cache[UID]['name_orig']);
        // 通过缓存获取用户邮箱,特殊字符添加反斜杠
        $mail = addslashes($user_cache[UID]['mail']);
        // 将本站地址设为个人网站网站,特殊字符添加反斜杠
        $url = addslashes(BLOG_URL);
    }
    
    // $url变量非空,且不管大小写$url的前四个字符不是http,则在$url前面添加http://
    if ($url && strncasecmp($url,'http',4)) {
        $url = 'http://'.$url;
    }
    
    // 执行挂载在'comment_post'钩子上的函数
    // 'comment_post':发表评论扩展点(写入评论前),可用于垃圾评论防范
    doAction('comment_post');
    
    // 建立评论模型
    $Comment_Model = new Comment_Model();
    // 把获取的评论者信息写入cookie
    $Comment_Model->setCommentCookie($name,$mail,$url);
    // 判断评论,输出错误信息
    if($Comment_Model->isLogCanComment($blogId) === false) {
        emMsg('评论失败:该文章已关闭评论');
    } elseif ($Comment_Model->isCommentExist($blogId, $name, $content) === true) {
        emMsg('评论失败:已存在相同内容评论');
    } elseif (ROLE == ROLE_VISITOR && $Comment_Model->isCommentTooFast() === true) {
        emMsg('评论失败:您提交评论的速度太快了,请稍后再发表评论');
    } elseif (empty($name)) {
        emMsg('评论失败:请填写姓名');
    } elseif (strlen($name) > 20) {
        emMsg('评论失败:姓名不符合规范');
    } elseif ($mail != '' && !checkMail($mail)) {
        emMsg('评论失败:邮件地址不符合规范');
    } elseif (ISLOGIN == false && $Comment_Model->isNameAndMailValid($name, $mail) === false) {
        emMsg('评论失败:禁止使用管理员昵称或邮箱评论');
    } elseif (!empty($url) && preg_match("/^(http|https)\:\/\/[^<>'\"]*$/", $url) == false) {
        emMsg('评论失败:主页地址不符合规范','javascript:history.back(-1);');
    } elseif (empty($content)) {
        emMsg('评论失败:请填写评论内容');
    } elseif (strlen($content) > 8000) {
        emMsg('评论失败:内容不符合规范');
    } elseif (ROLE == ROLE_VISITOR && Option::get('comment_needchinese') == 'y' && !preg_match('/[\x{4e00}-\x{9fa5}]/iu', $content)) {
        emMsg('评论失败:评论内容需包含中文');
    } elseif (ISLOGIN == false && Option::get('comment_code') == 'y' && session_start() && $imgcode != $_SESSION['code']) {
        emMsg('评论失败:验证码错误');
    } else { // 评论信息输入正确
        // 清空验证码信息
        $_SESSION['code'] = null;
        // 添加评论
        $Comment_Model->addComment($name, $content, $mail, $url, $imgcode, $blogId, $pid);
    }
}
点赞
X
赞助一下:
    支付宝    微信    QQ红包

打开支付宝扫一扫
emlog MVC解构--控制器Controller之Comment_Controller
本文标签:
版权声明:若无特殊注明,本文皆为“懒人的小窝”原创,转载请保留文章出处。
本文链接:http://suppore.cn/153.html   百度未收录

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论

1条评论
    00:00 / 00:00
    顺序播放