requireAdminLogin() ->setPageTitle(WT_I18N::translate('Manage sites')) ->pageHeader(); require_once WT_ROOT.'includes/functions/functions.php'; require_once WT_ROOT.'includes/functions/functions_edit.php'; require_once WT_ROOT.'includes/functions/functions_import.php'; $action = safe_GET('action'); if (empty($action)) $action = safe_POST('action'); $address = safe_GET('address'); if (empty($address)) $address = safe_POST('address'); $comment = safe_GET('comment'); if (empty($comment)) $comment = safe_POST('comment'); $comment = str_replace(array("\\", "\$", "\""), array("\\\\", "\\\$", "\\\""), $comment); $deleteBanned = safe_POST('deleteBanned'); if (!empty($deleteBanned)) { // A "remove banned IP" button was pushed $action = 'deleteBanned'; $address = $deleteBanned; } $deleteSearch = safe_POST('deleteSearch'); if (!empty($deleteSearch)) { // A "remove search engine IP" button was pushed $action = 'deleteSearch'; $address = $deleteSearch; } if (empty($action)) $action = 'showForm'; /* * Validate input string to be an IP address */ function validIP($address) { if (!preg_match('/^\d{1,3}\.(\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)$/', $address)) return false; $pieces = explode('.', $address); foreach ($pieces as $number) { if ($number!="*" && $number>255) return false; } return true; } if ($action=='addBanned' || $action=='addSearch' || $action=='deleteBanned' || $action=='deleteSearch') { if (validIP($address)) { // Even if we are adding a new record, we must delete the existing one first. WT_DB::prepare( "DELETE FROM `##ip_address` WHERE ip_address=?" )->execute(array($address)); if ($action=='addBanned') { WT_DB::prepare( "INSERT INTO `##ip_address` (ip_address, category, comment) VALUES (?, ?, ?)" )->execute(array($address, 'banned', $comment)); } if ($action=='addSearch') { WT_DB::prepare( "INSERT INTO `##ip_address` (ip_address, category, comment) VALUES (?, ?, ?)" )->execute(array($address, 'search-engine', $comment)); } } else { if ($action=='addBanned') { $errorBanned=WT_I18N::translate('Invalid IP address.'); } if ($action=='addSearch') { $errorSearch=WT_I18N::translate('Invalid IP address.'); } } $action='showForm'; } // Search Engine IP address table echo '', '
', '
', '', '', '', '
', WT_I18N::translate('Manually mark Search Engines by IP'). help_link('help_manual_search_engines'), '
', ''; $sql="SELECT ip_address, comment FROM `##ip_address` WHERE category='search-engine' ORDER BY INET_ATON(ip_address)"; $index=0; $search_engines=WT_DB::prepare($sql)->fetchAssoc(); foreach ($search_engines as $ip_address=>$ip_comment) { echo ''; echo ''; } echo ''; echo ''; if (!empty($errorSearch)) { echo ''; $errorSearch = ''; } echo '
'; echo ''; echo '
'; echo '
', WT_I18N::translate('You may enter a comment here.'), '
'; echo ''; echo '
'; echo $errorSearch; echo '
'; // Banned IP address table echo '', '
', '', '', '
', WT_I18N::translate('Ban Sites by IP').help_link('help_banning'), '
', ''; $sql="SELECT ip_address, comment FROM `##ip_address` WHERE category='banned' ORDER BY INET_ATON(ip_address)"; $banned=WT_DB::prepare($sql)->fetchAssoc(); foreach ($banned as $ip_address=>$ip_comment) { echo '', ''; } echo '', ''; if (!empty($errorBanned)) { echo ''; $errorBanned = ''; } echo '
', '', '
', '
', WT_I18N::translate('You may enter a comment here.'), '
', '', '
'; echo $errorBanned; echo '
';