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

电子政务应用

开发平台:

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: spam.php,v $
  15. // | $Date: 2004/02/10 01:34:25 $
  16. // | $Revision: 1.17 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - Spam filter maintenance (administration interface)
  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('id', 'number')
  32. );
  33. rg($global);
  34. ############################### DELETE SPAM FILTER ###############################
  35. if ($_REQUEST['do'] == "delete") {
  36. $db->query("DELETE from gateway_spam WHERE id='$id'");
  37. jump('spam.php?do=view', 'Spam filter deleted');
  38. }
  39. ############################### CREATE SPAM FILTER ###############################
  40. if (($_REQUEST['do'] == "edit") OR ($_REQUEST['do'] == "add")) {
  41. if ($_REQUEST['do']  == 'add') {
  42. admin_header('Email Gateway', 'Add Spam Filter');
  43. } else {
  44. admin_header('Email Gateway', 'Edit Spam Filter');
  45. }
  46. if ($_REQUEST['do'] == "edit") {
  47. $db->query("SELECT * from gateway_spam WHERE id = '$id'");
  48. $spam = $db->row_array();
  49. }
  50. $type = array(
  51. 0 => 'Subject Match',
  52. 1 => 'Body Match',
  53. );
  54. $bit = form_select('type', $type, '', $spam[type]);
  55. $table[] = array('<b>Match type</b><br />Choose from a match against the email body or email subject', $bit);
  56. $bit = form_radio_yn('regex', '', $spam[regex]);
  57. $table[] = array('<b>Regex?</b><br />If you are using a regex instead of just a match on some text select yes.', $bit);
  58. $bit =  form_textarea('textmatch', '40', '6', $spam[textmatch]);
  59. $table[] = array('<b>Words/Regex to match</b><br />The words or the regex you are using to match', $bit);
  60. $bit = form_radio_yn('is_delete', '', $spam[is_delete]);
  61. $table[] = array('<b>Delete?</b><br />If set to yes a message that is marked as spam will be deleted. If set to <b>No</b> the message will be stored in a type of recycle bin allowing you to ocassionaly check there are no messages improperly assigned as spam.', $bit);
  62. $width = array('60%', '40%');
  63. if ($_REQUEST['do'] == "edit") {
  64. table_header('Edit Spam Filter', 'spam.php', array('do' => 'edit2', 'id' => $id));
  65. } else {
  66. table_header('Create Spam Filter', 'spam.php', array('do' => 'add2'));
  67. }
  68. table_content('', $table, '', '', '', '', $width);
  69. if ($_REQUEST['do'] == "edit") {
  70. table_footer('Edit Filter');
  71. } else {
  72. table_footer('Create Filter');
  73. }
  74. unset($table, $width);
  75. }
  76. ############################### ADD/EDIT SPAM FILTER (PROCESS) ###############################
  77. if ($_REQUEST['do'] == "edit2") {
  78. if ($_REQUEST['regex']) {
  79. $match = @preg_match($_REQUEST['textmatch'], '');
  80. if (!is_int($match)) { // It's invalid unless $match is an integer
  81. mistake('The regular expression you specified is invalid. Refer to
  82. PHP's manual 
  83. for current information about PHP's implementation of Perl-compatible 
  84. Regular Expressions. This may assist you in building a valid regular
  85. expression. Please go back and correct the regular expression.');
  86. }
  87. }
  88. $db->query("UPDATE gateway_spam SET
  89. type = '" . mysql_escape_string($_REQUEST[type]) . "',
  90. regex = " . intval($_REQUEST[regex]) . ",
  91. textmatch = '" . mysql_escape_string($_REQUEST[textmatch]) . "',
  92. is_delete = " . intval($_REQUEST[is_delete]) . "
  93. WHERE id='$id'
  94. ");
  95. jump('spam.php?do=view', 'Spam Filter Updated');
  96. }
  97. ############################### ADD (2) SPAM ###############################
  98. if ($_REQUEST['do'] == "add2") {
  99. $db->query("INSERT into gateway_spam SET
  100. type = '" . mysql_escape_string($_REQUEST[type]) . "',
  101. regex = " . intval($_REQUEST[regex]) . ",
  102. textmatch = '" . mysql_escape_string($_REQUEST[textmatch]) . "',
  103. is_delete = " . intval($_REQUEST[is_delete]) . "
  104. ");
  105. jump('spam.php?do=view', 'New Spam Filter Created');
  106. }
  107. ############################### VIEW SPAM FILTERS ###############################
  108. if ($_REQUEST['do'] == "view") {
  109. admin_header('Email Gateway', 'View Spam Filters');
  110. $type = array(
  111. 0 => 'Subject Match',
  112. 1 => 'Body Match',
  113. );
  114. $db->query("SELECT * from gateway_spam");
  115. while ($spam = $db->row_array()) {
  116. $table[] = array(
  117. $type[$spam[type]],
  118. $spam[textmatch],
  119. ifynb($spam[regex]),
  120. ifynb($spam[is_delete]),
  121. jprompt('Please confirm you wish to delete this spam filter', "spam.php?do=delete&id=$spam[id]", 'Delete'),
  122. "<a href="spam.php?do=edit&id=$spam[id]">Edit</a>"
  123. );
  124. }
  125. $cols = array('Match Type', 'Match Text', 'Is Regex?', 'Delete?', 'Delete', 'Edit');
  126. table_header('Spam Filters');
  127. table_content($cols, $table);
  128. table_footer();
  129. unset($table);
  130. }
  131. ##############################################################
  132. admin_footer();
  133. php?>