为什么这个信息跳不出来?

2016-07-07 15:04 来源:www.chinab4c.com 作者:ecshop专家

我在languages/zh_cn/common.php里面加入了$_LANG['comment_out']='对不起,您已经评论过了!';这句话。
我在根目录comment.php里面发现有这add_comment($cmt)这个函数.我现在想做的是。一个用户账户只能对指定的一个文章分类下面的所有文章评论一次,也就是对其中某个文章评论过一次了。就不能对这个文章和指定文章分类下面的其他文章进行评论了,给出相应的信息。“对不起,您已经评论过了!'”。如下代码。红色部分是我自己加入的。我是想在comment表中有一个user_name字段。在添加评论之前,对这个进行搜索。如果有了,就不入库了,给出相应的信息。但是$result['message'] = $_LANG['comment_out'];好像就是不显现出来。虽然一个新的账户,在添加一个评论之后,再次添加的评论不会入库也不会显示出来。但是就是跳不出“您已经评论过这个信息了” 这个是为啥?


  1. function add_comment($cmt)
  2. {
  3. /* 评论是否需要审核 */
  4. $status = 1 - $GLOBALS['_CFG']['comment_check'];
  5. $user_id = empty($_SESSION['user_id']) ? 0 : $_SESSION['user_id'];
  6. $email = empty($cmt->email) ? $_SESSION['email'] : trim($cmt->email);
  7. $user_name = empty($cmt->username) ? $_SESSION['user_name'] : trim($cmt->username);
  8. $email = htmlspecialchars($email);
  9. $user_name = htmlspecialchars($user_name);
  10. /* 统计当前登录用户对指定文章分类名下文章的评论总数 */
  11. $total=$GLOBALS['db']->getOne('SELECT count(*) FROM '.$GLOBALS['ecs']->table('comment') .' AS a LEFT JOIN '. $GLOBALS['ecs']->table('article').' AS b ON a.id_value = b.article_id LEFT JOIN '. $GLOBALS['ecs']->table('article_cat')." AS c ON c.cat_id = b.cat_id WHERE c.cat_name = '站内快讯' and a.user_name='$user_name'");
  12. if($total>=1)
  13. {
  14. $result['error']= 1;
  15. $result['message'] = $_LANG['comment_out'];
  16. }
  17. else{
  18. /* 保存评论内容 */
  19. $sql = "INSERT INTO " .$GLOBALS['ecs']->table('comment') .
  20. "(comment_type, id_value, email, user_name, content, comment_rank, add_time, ip_address, status, parent_id, user_id) VALUES " .
  21. "('" .$cmt->type. "', '" .$cmt->id. "', '$email', '$user_name', '" .$cmt->content."', '".$cmt->rank."', ".gmtime().", '".real_ip()."', '$status', '0', '$user_id')";
  22. $result = $GLOBALS['db']->query($sql);
  23. clear_cache_files('comments_list.lbi');
  24. /*if ($status > 0)
  25. {
  26. add_feed($GLOBALS['db']->insert_id(), COMMENT_GOODS);
  27. }*/
  28. return $result;
  29. }
  30. }
复制代码

回答:
if($total>=1)

{

$result['error']= 1;

$result['message'] = $_LANG['comment_out'];

}

请检查你的程序
1:没有初始化json
2:没有执行任何die($result) 的返回输出 .AJAX肯定接受不到任何信息.

还是没有搞定啊。再次求助。

你应该确认2个问题
第一 你的sql是否正确
第二 你的评论是否成功

sql正确。我放在 phpmyadmin里面执行过。评论的话,我的效果就是一个usernmae只能在制定文章分类下面的文章评论一次。再次评论的话,就不入库,给出$result['message'] = $_LANG['comment_out'];对不起,您已经评论过了!';这句话。