4 * File: EditHeader.Admin.class.php
5 * This is the Edit HTTP Header Module for the Geeklog Spam-X plugin
7 * Copyright (C) 2005-2009 by the following authors:
8 * Author Dirk Haun <dirk AT haun-online DOT de>
10 * based on the works of Tom Willett <tomw AT pigstye DOT net>
12 * Licensed under GNU General Public License
18 if (strpos(strtolower($_SERVER['PHP_SELF']), 'editheader.admin.class.php') !== false) {
19 die('This file can not be used on its own!');
23 * Include Abstract Base Class
25 require_once $_CONF['path'] . 'plugins/spamx/BaseAdmin.class.php';
33 class EditHeader extends BaseAdmin {
39 global $_CONF, $_TABLES, $LANG_SX00;
42 if (isset($_GET['action'])) {
43 $action = $_GET['action'];
44 } elseif (isset($_POST['paction'])) {
45 $action = $_POST['paction'];
48 if (($action == 'delete') && SEC_checkToken()) {
49 $entry = $_GET['entry'];
51 $dbentry = addslashes($entry);
52 DB_delete($_TABLES['spamx'], array('name', 'value'),
53 array('HTTPHeader', $dbentry));
55 } elseif (($action == $LANG_SX00['addentry']) && SEC_checkToken()) {
57 $name = COM_applyFilter($_REQUEST['header-name']);
58 $n = explode(':', $name);
60 $value = $_REQUEST['header-value'];
62 if (!empty($name) && !empty($value)) {
63 $entry = $name . ': ' . $value;
66 $dbentry = addslashes($entry);
68 $result = DB_query("INSERT INTO {$_TABLES['spamx']} VALUES ('HTTPHeader','$dbentry')");
72 $token = SEC_createToken();
73 $display = '<hr' . XHTML . '>' . LB . '<p><b>';
74 $display .= $LANG_SX00['headerblack'];
75 $display .= '</b></p>' . LB . '<ul>' . LB;
76 $result = DB_query("SELECT value FROM {$_TABLES['spamx']} WHERE name='HTTPHeader' ORDER BY value");
77 $nrows = DB_numRows($result);
78 for ($i = 0; $i < $nrows; $i++) {
79 list($e) = DB_fetchArray($result);
81 $display .= '<li>'. COM_createLink(htmlspecialchars($e),
82 $_CONF['site_admin_url']
83 . '/plugins/spamx/index.php?command=EditHeader&action=delete&entry=' . urlencode($e) . '&' . CSRF_TOKEN . '=' . $token) . '</li>' . LB;
85 $display .= '</ul>' . LB . '<p>' . $LANG_SX00['e1'] . '</p>' . LB;
86 $display .= '<p>' . $LANG_SX00['e2'] . '</p>' . LB;
88 $display .= '<form method="post" action="' . $_CONF['site_admin_url']
89 . '/plugins/spamx/index.php?command=EditHeader">' . LB;
90 $display .= '<table border="0" width="100%">' . LB;
91 $display .= '<tr><td align="right"><b>Header:</b></td>' . LB;
92 $display .= '<td><input type="text" size="40" name="header-name"'
93 . XHTML . '> e.g. <tt>User-Agent</tt></td></tr>' . LB;
94 $display .= '<tr><td align="right"><b>Content:</b></td>' . LB;
95 $display .= '<td><input type="text" size="40" name="header-value"'
96 . XHTML . '> e.g. <tt>Mozilla</tt></td></tr>' . LB;
97 $display .= '</table>' . LB;
98 $display .= '<p><input type="submit" name="paction" value="'
99 . $LANG_SX00['addentry'] . '"' . XHTML . '></p>';
100 $display .= '<input type="hidden" name="' . CSRF_TOKEN
101 . "\" value=\"{$token}\"" . XHTML . '>' . LB;
102 $display .= '</form>' . LB;
109 return "Edit HTTP Header Blacklist";