rate.php
上传用户:gzy2002
上传日期:2010-02-11
资源大小:1785k
文件大小:5k
源码类别:

电子政务应用

开发平台:

Java

  1. <?php
  2. // +-------------------------------------------------------------+
  3. // | DeskPRO v [2.0.1 Production]
  4. // | Copyright (C) 2001 - 2004 Headstart Solutions Limited
  5. // | Supplied by WTN-WDYL
  6. // | Nullified by WTN-WDYL
  7. // | Distribution via WebForum, ForumRU and associated file dumps
  8. // +-------------------------------------------------------------+
  9. // | DESKPRO IS NOT FREE SOFTWARE
  10. // +-------------------------------------------------------------+
  11. // | License ID : Full Enterprise License =) ...
  12. // | License Owner : WTN-WDYL Team
  13. // +-------------------------------------------------------------+
  14. // | $RCSfile: rate.php,v $
  15. // | $Date: 2004/02/10 01:34:25 $
  16. // | $Revision: 1.25 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - FAQ article comments/ratings handler.
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL & ~E_NOTICE);
  22. require_once('./global.php');
  23. //Nullify WTN-WDYL Team
  24. // globalise variables
  25. $global = array (
  26. array('article', 'number', '0')
  27. );
  28. rg($global);
  29. $template_cache = templatecache('FAQ_comment,HF_header_small');
  30. eval(makeeval('header', 'HF_header_small'));
  31. if ($settings[faq_restrict] AND !$session[userid]) {
  32. error('error_q_a_restrict');
  33. }
  34. // category permissions
  35. $db->query("SELECT catid FROM faq_permissions WHERE groupid = '$session[usergroup]'");
  36. while ($result = $db->row_array()) {
  37. $groups[] = $result[catid];
  38. }
  39. $article = $db->query_return("SELECT * FROM faq_articles WHERE id = '$article' AND category IN " . array2sql($groups));
  40. if (!$db->num_rows()) {
  41. error('error_q_a_restrict');
  42. }
  43. ############################### ADD COMMENT (1) ###############################
  44. if ($_REQUEST['do'] == "addcomment") {
  45. $showcomment = 1;
  46. }
  47. ############################### ADD COMMENT (1) ###############################
  48. if ($_REQUEST['do'] == "addcomment2") {
  49. $email = iff(validate_email($_REQUEST['email']), $_REQUEST['email']);
  50. if (trim($_REQUEST[comment]) != '') {
  51. $db->query("
  52. INSERT INTO faq_comments SET
  53. useremail = '" . mysql_escape_string($email) ."',
  54. articleid = '$article[id]',
  55. comments = '" . mysql_escape_string(htmlspecialchars_uni($_REQUEST[comment])) . "',
  56. userid = '$session[userid]',
  57. new = 1
  58. ");
  59. }
  60. if ($email) {
  61. // create $user array for consistancy in email
  62. $user_details['email'] = $email;
  63. $user_details = update_user_details($user_details);;
  64. eval(makeemaileval('message', 'BODY_comment_sent', $subject));
  65. dp_mail($user_details['email'], $subject, $message);
  66. }
  67. $message = 'comment_thanks';
  68. }
  69. ############################### ADD RATING ###############################
  70. if ($_REQUEST['do'] == "rate") {
  71. // minus one hour
  72. $time = mktime() - (60 * 60);
  73. // if logged in check userid / session
  74. if ($user[id]) {
  75. $result = $db->query_return("
  76. SELECT faqid
  77. FROM faq_rating
  78. WHERE faqid = '$article[id]'
  79. AND (session = '$session[id]' OR userid = '$user[id]')
  80. ");
  81. // if already there we need to update the rating
  82. if ($db->num_rows()) {
  83. $db->query("
  84. UPDATE faq_rating SET
  85. rating = '" . intval($_REQUEST[rating]) . "',
  86. timestamp = '" . mktime() . "',
  87. ipaddress = '" . addslashes($ipaddress) . "',
  88. session = '$session[id]'
  89. WHERE faqid = '$article[id]' 
  90. AND userid = '" . intval($session[userid]) . "
  91. '");
  92. $updated = 1;
  93. } else {
  94. $add_new = 1;
  95. }
  96. // not logged in check session or IP address
  97. } else {
  98. $result = $db->query_return("
  99. SELECT faqid AS total
  100. FROM faq_rating
  101. WHERE faqid = '$article[id]' AND
  102. ipaddress = '" . addslashes($ipaddress) . "' OR session = '$session[id]'
  103. ");
  104. if (!$db->num_rows()) {
  105. $add_new = 1;
  106. }
  107. }
  108. // no results so complete
  109. if ($add_new) {
  110. $db->query("
  111. INSERT INTO faq_rating SET
  112. faqid = '$article[id]',
  113. ipaddress = '" . addslashes($ipaddress) . "',
  114. timestamp = '" . mktime() . "',
  115. rating = '" . intval($_REQUEST[rating]) . "',
  116. userid = '" . intval($session[userid]) . "'
  117. ");
  118. } else {
  119. $guest_repeat = 1;
  120. }
  121. // updating rating (either for a new rating or an updated one
  122. $result = $db->query_return("
  123. SELECT AVG(rating) AS rating, COUNT(rating) AS votes 
  124. FROM faq_rating 
  125. WHERE faqid = '$article[id]'
  126. GROUP BY faqid
  127. ");
  128. $db->query("
  129. UPDATE faq_articles SET
  130. votes = '" . addslashes($result[votes]) . "',
  131. rating = '" . intval($result[rating]) . "'
  132. WHERE id = '$article[id]'
  133. ");
  134. if ($updated) {
  135. $message = 'rating_already';
  136. $showcommment = 1;
  137. } elseif ($guest_repeat) {
  138. $message = 'rating_failed';
  139. $showcomment = 1;
  140. } else {
  141. $message = 'rating_added';
  142. $showcomment = 1;
  143. }
  144. }
  145. ############################### DISPLAY FORM ###############################
  146. // no article error
  147. if (!$article) {
  148. $message = 'no_article';
  149. unset($showcomment);
  150. }
  151. eval(makeeval('echo', 'FAQ_comment'));
  152. ?>