reply.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: reply.php,v $
  15. // | $Date: 2004/02/10 01:34:25 $
  16. // | $Revision: 1.26 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - Ticket reply pages.
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL & ~E_NOTICE);
  22. require_once('./global.php');
  23. //Nullify WTN-WDYL Team
  24. // default do
  25. $_REQUEST['do'] = trim($_REQUEST['do']);
  26. if (!isset($_REQUEST['do']) or $_REQUEST['do'] == "") {
  27. $_REQUEST['do'] = "view";
  28. }
  29. // globalise variables
  30. $global = array (
  31. array('ticketref')
  32. );
  33. rg($global);
  34. ############################### PERMISSIONS AND VALIDATION ###############################
  35. // check ticket ref
  36. if (!$ticketref) {
  37. error("error_noticket");
  38. }
  39. check_user();
  40. $ticket = $db->query_return("
  41. SELECT ticket.*, ticket_cat.name AS category, ticket_pri.name AS priority
  42. FROM ticket
  43. LEFT JOIN ticket_cat ON (ticket.category = ticket_cat.id)
  44. LEFT JOIN ticket_pri ON (ticket.priority = ticket_pri.id)
  45. WHERE ticket.ref = '" . addslashes($ticketref) . "' AND
  46. ticket.userid = '$session[userid]'
  47. ");
  48. if (!$db->num_rows()) {
  49. $ticket = $db->query_return("SELECT * FROM ticket_merge WHERE old_ref = '" . addslashes($ticketref) . "'");
  50. if ($ticket['new_id']) {
  51. $ticket = $db->query_return("
  52. SELECT ticket.*, ticket_cat.name AS category, ticket_pri.name AS priority
  53. FROM ticket
  54. LEFT JOIN ticket_cat ON (ticket.category = ticket_cat.id)
  55. LEFT JOIN ticket_pri ON (ticket.priority = ticket_pri.id)
  56. WHERE ticket.ref = '$ticket[new_ref]' AND
  57. ticket.userid = '$session[userid]'
  58. ");
  59. } else {
  60. error('error_noticket');
  61. }
  62. }
  63. if ($ticket[is_open] == "0" AND !$settings[user_reopen]) {
  64. error("error_ticket_closed");
  65. }
  66. // check that the post box is not too large (should be preveented by js validation)
  67. if (strlen($_REQUEST[reply]) > $settings[max_size]) {
  68. error("NEW_message_large");
  69. }
  70. if (trim($_REQUEST[reply]) == "") {
  71. jump("view.php?ticketref=$ticketref", 'redirect_empty');
  72. }
  73. // check not double post in last 5 minutes
  74. $time = mktime() - 60 * 5;
  75. $db->query("SELECT message FROM ticket_message WHERE ticketid = '$ticket[id]' AND date > '$time'");
  76. while ($result = $db->row_array()) {
  77. if ($result[message] == $_REQUEST[reply]) {
  78. jump("view.php?ticketref=$ticketref", "redirect_reply_ticket");
  79. }
  80. }
  81. ############################### ADD / UPDATE TO DATABASE ###############################
  82. $db->query("
  83. INSERT into ticket_message SET
  84. message = '".mysql_escape_string($_REQUEST[reply])."',
  85. ticketid = '$ticket[id]',
  86. userid = '$session[userid]',
  87. date = '" . mktime() . "',
  88. ipaddress = '" . mysql_escape_string($ipaddress) . "'
  89. ");
  90. $ticket['respid'] = $db->last_id();
  91. $db->query("
  92. UPDATE ticket SET
  93. awaiting_tech = '1',
  94. date_awaiting_toggled = '" . mktime() . "',
  95. is_open = 1,
  96. date_lastreply = '" . mktime() . "'
  97. WHERE id = '$ticket[id]'
  98. ");
  99. ticketlog($ticket[id], 'user_replied');
  100. ############################### ATTACHMENT ###############################
  101. // attachment during this upload
  102. $attachment = validate_attachment($attachment_error);
  103. // attachment error type
  104. if ($attachmenterror) {
  105. if ($error == 1) {
  106. $attachment_no_big = 1;
  107. } elseif ($attachment_error == 2) {
  108. $attachment_no_filetype = 1;
  109. } else {
  110. $attachment_no = 1;
  111. }
  112. }
  113. // add attachment
  114. if ($attachment) {
  115. $attach = add_attachment();
  116. $db->query("INSERT INTO ticket_attachments SET
  117. blobid = '$attach[blobid]',
  118. filename = '" . mysql_escape_string($attach[name]) . "',
  119. filesize = '" . mysql_escape_string($attach[size]) . "',
  120. extension = '" . mysql_escape_string($attach[extension]) . "',
  121. ticketid = '" . mysql_escape_string($ticket[id]) . "',
  122. timestamp = '" . mktime() . "'" .
  123. iff($user['id'], ", userid = '$user[id]'")
  124. );
  125. $id = $db->last_id();
  126. $attach['id'] = $id; // to link to an attachment for those techs that don't want to download it
  127. $email_attachment[] = $attach;
  128. }
  129. ############################### SEND EMAILS ###############################
  130. notify_user('reply_user', $ticket, $user, $_REQUEST[reply], $email_attachment);
  131. notify_technicians('reply', $ticket, $user, $_REQUEST[reply], $email_attachment);
  132. ############################### REDIRECT ###############################
  133. jump("view.php?ticketref=$ticketref", "redirect_reply_ticket");