From 6e9f94b4af41932ed758042aec006b51aa4ed8cd Mon Sep 17 00:00:00 2001 From: e107steved Date: Mon, 2 Jan 2012 22:23:43 +0000 Subject: [PATCH] Update in line with iphandler.php --- e107_admin/banlist_export.php | 153 ++++++++++++++++++---------------- 1 file changed, 80 insertions(+), 73 deletions(-) diff --git a/e107_admin/banlist_export.php b/e107_admin/banlist_export.php index 3cc6fa0b3..42c82e5fd 100644 --- a/e107_admin/banlist_export.php +++ b/e107_admin/banlist_export.php @@ -2,23 +2,29 @@ /* * e107 website system * - * Copyright (C) 2008-2009 e107 Inc (e107.org) + * Copyright (C) 2008-2012 e107 Inc (e107.org) * Released under the terms and conditions of the * GNU General Public License (http://www.gnu.org/licenses/gpl.txt) * * Banlist export * - * $Source: /cvs_backup/e107_0.8/e107_admin/banlist_export.php,v $ - * $Revision$ - * $Date$ - * $Author$ + * $URL$ + * $Id$ */ -require_once("../class2.php"); -if (!getperms("4")) +/** + * e107 Banlist administration + * + * @package e107 + * @subpackage admin + * @version $Id$; + */ + +require_once('../class2.php'); +if (!getperms('4')) { - header("location:../index.php"); - exit; + header('location:../index.php'); + exit; } /* @@ -28,7 +34,9 @@ Selection data: $_POST['ban_separator'] - 1 or 2 $_POST['ban_quote'] - 1,2,3 */ +require_once(e_HANDLER.'iphandler_class.php'); // This is probably already loaded in class2.php +// Uncomment what's going on to get debug data //define('CSV_DEBUG',TRUE); $separator_char = array(1 => ',', 2 => '|'); @@ -51,16 +59,17 @@ $use_quote = varset($quote_char[intval($_POST['ban_quote'])],$quote_char[2]); $type_list = ''; if (is_array($_POST['ban_types'])) { - $spacer = ''; - foreach($_POST['ban_types'] as $b) - { - $b = trim($b); - if (is_numeric($b) && ($b >= 0) && ($b <= 10)) + $validBanTypes = banlistManager::getValidReasonList(); + $spacer = ''; + foreach($_POST['ban_types'] as $b) { - $type_list .= $spacer.($b); - $spacer = ','; + $b = trim($b); + if (is_numeric($b) && in_array($b, $validBanTypes)) + { + $type_list .= $spacer.($b); + $spacer = ','; + } } - } } $filename = 'banlist_'.strftime("%Y%m%d_%H%M%S").'.csv'; @@ -68,77 +77,75 @@ $filename = 'banlist_'.strftime("%Y%m%d_%H%M%S").'.csv'; if ($error_string = do_export($filename, $type_list, $format_array, $use_separator, $use_quote)) { // Need to report an error here - echo "Error report: {$error_string}
"; + echo "Error report: {$error_string}
"; } -banlist_adminlog('06',"File: ".$filename.'
'.$error_string); +banlist_adminlog('06','File: '.$filename.'
'.$error_string); function do_export($filename, $type_list='',$format_array, $sep = ',', $quot = '"') { - global $sql; - $export_text = ''; - $qry = "SELECT * FROM `#banlist` "; - if ($type_list != '') $qry .= " WHERE`banlist_bantype` IN ({$type_list})"; - if (!$sql->db_Select_gen($qry)) return "No data: ".$qry; - while ($row = $sql->db_Fetch()) - { - $line = ''; - $spacer = ''; - foreach ($format_array as $f => $v) + $sql = e107::getDb(); + $export_text = ''; + $qry = "SELECT * FROM `#banlist` "; + if ($type_list != '') $qry .= " WHERE`banlist_bantype` IN ({$type_list})"; + if (!$sql->db_Select_gen($qry)) return 'No data: '.$qry; + while ($row = $sql->db_Fetch()) { - switch ($f) - { - case 'banlist_ip' : - case 'banlist_bantype' : - case 'banlist_reason' : - case 'banlist_notes' : - $line .= $spacer.$quot.$row[$f].$quot; - break; - case 'banlist_datestamp' : - case 'banlist_banexpires' : - if ($row[$f]) $line .= $spacer.$quot.strftime($v,$row[$f]).$quot; else $line .= $spacer.$quot.'0'.$quot; - break; - } - $spacer = $sep; - } - $export_text .= $line."\n"; - } - - if (defined('CSV_DEBUG')) - { - $export_text .= "Summary data:
"; - $export_text .= 'File: '.$filename.'
'; - $export_text .= 'Types: '.$type_list.'
'; - $export_text .= 'Query: '.$qry.'
'; - echo str_replace("\n","
",$export_text); - } - else - { - if(headers_sent()) - { - return "Cannot output file - some data already sent

"; + $line = ''; + $spacer = ''; + foreach ($format_array as $f => $v) + { + switch ($f) + { + case 'banlist_ip' : + case 'banlist_bantype' : + case 'banlist_reason' : + case 'banlist_notes' : + $line .= $spacer.$quot.$row[$f].$quot; + break; + case 'banlist_datestamp' : + case 'banlist_banexpires' : + if ($row[$f]) $line .= $spacer.$quot.strftime($v,$row[$f]).$quot; else $line .= $spacer.$quot.'0'.$quot; + break; + } + $spacer = $sep; + } + $export_text .= $line."\n"; } - //Secure https check - if (isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT']=='contype') header('Pragma: public'); - if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')) - header('Content-Type: application/force-download'); + if (defined('CSV_DEBUG')) + { + $export_text .= 'Summary data:
'; + $export_text .= 'File: '.$filename.'
'; + $export_text .= 'Types: '.$type_list.'
'; + $export_text .= 'Query: '.$qry.'
'; + echo str_replace("\n","
",$export_text); + } else - header('Content-Type: application/octet-stream'); - header('Content-Length: '.strlen($export_text)); - header('Content-disposition: attachment; filename="'.$filename.'"'); - echo $export_text; - } + { + if(headers_sent()) + { + return "Cannot output file - some data already sent

"; + } + //Secure https check + if (isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT']=='contype') header('Pragma: public'); + if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')) + header('Content-Type: application/force-download'); + else + header('Content-Type: application/octet-stream'); + header('Content-Length: '.strlen($export_text)); + header('Content-disposition: attachment; filename="'.$filename.'"'); + echo $export_text; + } } + + // Log event to admin log function banlist_adminlog($msg_num='00', $woffle='') { - global $pref, $admin_log; -// if (!varset($pref['admin_log_log']['admin_banlist'],0)) return; -// $admin_log->log_event($title,$woffle,E_LOG_INFORMATIVE,'BANLIST_'.$msg_num); - $admin_log->log_event('BANLIST_'.$msg_num,$woffle,E_LOG_INFORMATIVE,''); + e107::getAdminLog()->log_event('BANLIST_'.$msg_num, $woffle, E_LOG_INFORMATIVE, ''); }