[RC1] Extended ban manager && [BETA] Ban Suite
Forumregels
Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
-
- Berichten: 314
- Lid geworden op: 16 dec 2004, 18:43
- Locatie: Alphen aan den Rijn
- Contacteer:
-
- Berichten: 314
- Lid geworden op: 16 dec 2004, 18:43
- Locatie: Alphen aan den Rijn
- Contacteer:
-
- Berichten: 314
- Lid geworden op: 16 dec 2004, 18:43
- Locatie: Alphen aan den Rijn
- Contacteer:
Code: Selecteer alles
#
#-----[ OPEN ]------------------------------------------------
#
admin/admin_user_ban.php
#
#-----[ FIND ]------------------------------------------------
#
message_die(GENERAL_ERROR, "Couldn't insert ban_userid
}
#
#-----[ AFTER, ADD ]-----------------------------------------
#
$sql = "UPDATE " . USERS_TABLE . "
SET user_warnings=".$board_config['max_user_bancard']."
WHERE user_id=".$user_list[$i];
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't update users warnings info".$sql, "", __LINE__, __FILE__, $sql);
}
#
#-----[ FIND ]------------------------------------------------
#
}
if ( isset($HTTP_POST_VARS['unban_ip']) )
#
#-----[ BEFORE, ADD ]-----------------------------------------
#
if (! empty($where_sql))
{
$sql = "SELECT ban_userid FROM ".BANLIST_TABLE."
WHERE ban_id IN ($where_sql)";
if ( !($result = $db->sql_query($sql) ))
{
message_die(GENERAL_ERROR, "Couldn't get user warnings info from database".$sql, "", __LINE__, __FILE__, $sql);
}
while ($user_id_list = $db->sql_fetchrow($result))
{
$where_user_sql .= ( ( $where_user_sql != '' ) ? ', ' : '' ) . $user_id_list['ban_userid'];
}
$sql = "UPDATE " . USERS_TABLE . "
SET user_warnings='0'
WHERE user_id IN ($where_user_sql)";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't update user warnings info from database".$sql, "", __LINE__, __FILE__, $sql);
}
}
-
- Berichten: 1496
- Lid geworden op: 25 mei 2005, 14:09
Nieuwe versie:
Hiervoor is allow_url_fopen nodig, omdat er een bestand vanaf mijn site wordt gedownload. Wanneer dit niet aanwezig is, werkt dat onderdeel niet.
Wanneer je wilt updaten:
Vervang de 2 bestanden, en zet het volgende in lang_admin.php erbij:De nederlandse vertaling die hierboven is gegevens, heeft deze nog niet. Ik zal morgen in de loop van de dag ook die updaten.
- Versie checker toegevoegd.
- Permanente ban toegevoegd.
- Bot support(Zie topic in disussie) toegevoegd.
- Pagination.
- Ban list(Voor users)
- Bruikbaar met modcp
- Multi ban delete
Hiervoor is allow_url_fopen nodig, omdat er een bestand vanaf mijn site wordt gedownload. Wanneer dit niet aanwezig is, werkt dat onderdeel niet.
Wanneer je wilt updaten:
Vervang de 2 bestanden, en zet het volgende in lang_admin.php erbij:
Code: Selecteer alles
$lang['not_checked_ban'] = 'The banmanager version is not checked. You use version %s. See also <a href="%s">this</a> thread.';
$lang['ok_check_ban'] = 'Your version(%s) is uptodate. <a href="%s">See also this thread!</a>';
$lang['not_ok_check_ban'] = 'Your version(%s) isNOT uptodate. The newest version is %s. <a href="%s">See also this thread!</a>';
$lang['ban_error_check'] = 'There has been a error while I trying to check your version(ERROR: %s)';
$lang['ban_bots'] = 'Add some bots that can spam at your site.';
$lang['ban_reason_bots'] = 'Auto bot ban, by paulscripts.nl';
$lang['bans_added'] = 'There are %s bans automaticly added.';
$lang['perm_ban'] = 'Ban this user permanent!';
Nieuwe versie:
NIEUW:
Deze mod vereist voor het bot deel allow_url_fopen. Dit omdat er een file vanaf mijn host dient gedownload te worden. (Dit wordt mogelijk in de volgende versie aangepast).
Tevens vereist het voor de browser van de admin dat deze javascript ondersteund, omdat een groot deel met javascript gebeurt.
Zijn er al vertalingen?
Nee, die zijn er momenteel nog niet. De lang_dutch die eerder was gepost, is niet meer te gebruiken vanaf versie 0.0.6. later deze week zal er een nieuwe lang_Dutch komen.
Wanneer komt er weer een nieuwe versie?
Wanneer ik zin heb, en wanneer er genoeg nieuwe dingen zijn, of zeer ernstige bugfixes.
Waar kan ik deze mod downloaden?
Dat kan hier: http://sourceforge.net/project/showfile ... _id=160312 (Versie 0.0.7).
EDIT:
Klein ding vergeten
Is het verplicht om de banlist ook erop te hebben?
Nee, dit is NIET verplicht, en is een los bestand. Je kan dit bestand gewoon weglaten.
NIEUW:
- Banlist
- Multi delete bans
- Pagination
- Bugfix voor version checker
- Lang nu eigen file.
- Ban rank(Spambot manier )
- Apart overicht voor elke ban, zodat de tabel kleiner wordt.
Deze mod vereist voor het bot deel allow_url_fopen. Dit omdat er een file vanaf mijn host dient gedownload te worden. (Dit wordt mogelijk in de volgende versie aangepast).
Tevens vereist het voor de browser van de admin dat deze javascript ondersteund, omdat een groot deel met javascript gebeurt.
Zijn er al vertalingen?
Nee, die zijn er momenteel nog niet. De lang_dutch die eerder was gepost, is niet meer te gebruiken vanaf versie 0.0.6. later deze week zal er een nieuwe lang_Dutch komen.
Wanneer komt er weer een nieuwe versie?
Wanneer ik zin heb, en wanneer er genoeg nieuwe dingen zijn, of zeer ernstige bugfixes.
Waar kan ik deze mod downloaden?
Dat kan hier: http://sourceforge.net/project/showfile ... _id=160312 (Versie 0.0.7).
EDIT:
Klein ding vergeten
Is het verplicht om de banlist ook erop te hebben?
Nee, dit is NIET verplicht, en is een los bestand. Je kan dit bestand gewoon weglaten.
-
- Berichten: 1496
- Lid geworden op: 25 mei 2005, 14:09
Warning: file(): URL file-access is disabled in the server configuration in /home/wereldcenter.nl/forum/admin/admin_user_ban.php on line 167
Warning: file(http://www.paulscripts.nl/bots/bots.txt): failed to open stream: no suitable wrapper could be found in /home/wereldcenter.nl/forum/admin/admin_user_ban.php on line 167
Warning: Invalid argument supplied for foreach() in /home/wereldcenter.nl/forum/admin/admin_user_ban.php on line 169
Warning: file(http://www.paulscripts.nl/bots/bots.txt): failed to open stream: no suitable wrapper could be found in /home/wereldcenter.nl/forum/admin/admin_user_ban.php on line 167
Warning: Invalid argument supplied for foreach() in /home/wereldcenter.nl/forum/admin/admin_user_ban.php on line 169
Code: Selecteer alles
//
// Start program
//
if(isset($HTTP_GET_VARS['act']) || isset($HTTP_POST_VARS['delmulti']))
{
if(isset($HTTP_GET_VARS['act'])){
$mode = $HTTP_GET_VARS['act'];
}else{
$mode = 'delmulti';
}
switch($HTTP_GET_VARS['act']){
case 'delmulti':
$list = $HTTP_POST_VARS['deletelist'];
$where_sql = '';
for($i=0;$i<count($list);$i++){
$where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . $list[$i];
}
$sql = "DELETE FROM " . BANLIST_TABLE . " WHERE ban_id IN ($where_sql)";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not delete old ban.', '', __LINE__, __FILE__, $sql);
}
$message = $lang['Ban_update_sucessful'] . '<br /><br />' . sprintf($lang['Click_return_banadmin'], '<a href="' . append_sid("admin_user_ban.$phpEx",true) . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right",true) . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
break;
case 'bots':
set_time_limit(180);
$ip_list = file('http://www.paulscripts.nl/bots/bots.txt');
$tot = 0;
foreach($ip_list as $ip)
{
$ip = encode_ip($ip);
$sql = "SELECT * FROM ".BANLIST_TABLE." WHERE ban_ip = '$ip'";
$r = $db->sql_query($sql);
if(!$r)
{
message_die(GENERAL_ERROR,"Could not get IP.","",__LINE__,__FILE__,$sql);
}
if(!$db->sql_numrows($r))
{
$tot++;
$sql = "INSERT INTO " . BANLIST_TABLE . " (ban_ip,reason,reason_private,time,by_id,ban_cookie)
VALUES ('" . $ip . "','".$lang['ban_reason_bots']."','".$lang['ban_reason_bots']."',0,".$userdata['user_id'].",1)";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR,"Could not insert IP.","",__LINE__,__FILE__,$sql);
}
}
}
message_die(GENERAL_ERROR,sprintf($lang['bans_added'],$tot));
break;
case 'view':
$id = htmlspecialchars($HTTP_GET_VARS['id']);
$sql = "SELECT b.ban_ip,b.ban_email,b.ban_userid,u.username,b.reason,b.time
FROM " . BANLIST_TABLE . " b, ".USERS_TABLE." u
WHERE ban_id = $id AND
IF (b.ban_userid <> 0, u.user_id = b.ban_userid,u.user_id = -1)";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query view ban.', '', __LINE__, __FILE__, $sql);
}
$ban = $db->sql_fetchrow($result);
$ban['ban_ip'] = decode_ip($ban['ban_ip']);
$bans = $lang['You_been_banned']."<br />";
if(!empty($ban['ban_ip']) && $ban['ban_ip'] != '0.0.0.0'){
$bans .= sprintf($lang['banned_ip'],$ban['ban_ip'])."<br />";
}
if(!empty($ban['ban_userid'])){
$bans .= sprintf($lang['banned_user'],$ban['username'])."<br />";
}
if(!empty($ban['ban_email'])){
$bans .= sprintf($lang['banned_email'],$ban['ban_email'])."<br />";
}
if(!empty($ban['reason'])){
$bans .= sprintf($lang['ban_reason'],nl2br($ban['reason']))."<br />";
}
if($ban['time'] == 0){
$bans .= $lang['perma_ban'];
}else{
$bans .= sprintf($lang['ban_untill'],create_date($board_config['default_dateformat'], $ban['time'], $board_config['board_timezone']));
}
$bans .= "<br />";
message_die(CRITICAL_MESSAGE,$bans);
break;
case 'delete':
$id = htmlspecialchars($HTTP_GET_VARS['id']);
$sql = "DELETE FROM " . BANLIST_TABLE . " WHERE ban_id = '$id' LIMIT 1";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not delete old ban.', '', __LINE__, __FILE__, $sql);
}
$message = $lang['Ban_update_sucessful'] . '<br /><br />' . sprintf($lang['Click_return_banadmin'], '<a href="' . append_sid("admin_user_ban.$phpEx",true) . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right",true) . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
break;
case 'edit':
$id = htmlspecialchars($HTTP_GET_VARS['id']);
//I delete this, and Insert it new.
$sql = "DELETE FROM " . BANLIST_TABLE . " WHERE ban_id = '$id' LIMIT 1";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not delete old ban.', '', __LINE__, __FILE__, $sql);
}
//No break, because we post a new ban!
case 'new':
//This part is from the orignal admin_user_ban.$phpEx, and modified!
//The delete section is deleted, because we have a own functie for it!
$user_bansql = '';
$email_bansql = '';
$ip_bansql = '';
$user_list = array();
if ( !empty($HTTP_POST_VARS['username']) )
{
//It is possible that there is no , I will check it.
if(eregi(",",$HTTP_POST_VARS['username'])){
$row = explode(",",$HTTP_POST_VARS['username']);
}else{
$row = array();
$row[] = $HTTP_POST_VARS['username'];
}
for($i = 0;$i<count($row);$i++){
$this_userdata = get_userdata($row[$i], true);
if( !$this_userdata )
{
message_die(GENERAL_MESSAGE, $lang['No_user_id_specified'] );
}
$user_list[] = $this_userdata['user_id'];
}
}
$ip_list = array();
if ( isset($HTTP_POST_VARS['ban_ip']) )
{
$ip_list_temp = explode(',', $HTTP_POST_VARS['ban_ip']);
for($i = 0; $i < count($ip_list_temp); $i++)
{
if ( preg_match('/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})[ ]*\-[ ]*([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/', trim($ip_list_temp[$i]), $ip_range_explode) )
{
//
// Don't ask about all this, just don't ask ... !
//
$ip_1_counter = $ip_range_explode[1];
$ip_1_end = $ip_range_explode[5];
while ( $ip_1_counter <= $ip_1_end )
{
$ip_2_counter = ( $ip_1_counter == $ip_range_explode[1] ) ? $ip_range_explode[2] : 0;
$ip_2_end = ( $ip_1_counter < $ip_1_end ) ? 254 : $ip_range_explode[6];
if ( $ip_2_counter == 0 && $ip_2_end == 254 )
{
$ip_2_counter = 255;
$ip_2_fragment = 255;
$ip_list[] = encode_ip("$ip_1_counter.255.255.255");
}
while ( $ip_2_counter <= $ip_2_end )
{
$ip_3_counter = ( $ip_2_counter == $ip_range_explode[2] && $ip_1_counter == $ip_range_explode[1] ) ? $ip_range_explode[3] : 0;
$ip_3_end = ( $ip_2_counter < $ip_2_end || $ip_1_counter < $ip_1_end ) ? 254 : $ip_range_explode[7];
if ( $ip_3_counter == 0 && $ip_3_end == 254 )
{
$ip_3_counter = 255;
$ip_3_fragment = 255;
$ip_list[] = encode_ip("$ip_1_counter.$ip_2_counter.255.255");
}
while ( $ip_3_counter <= $ip_3_end )
{
$ip_4_counter = ( $ip_3_counter == $ip_range_explode[3] && $ip_2_counter == $ip_range_explode[2] && $ip_1_counter == $ip_range_explode[1] ) ? $ip_range_explode[4] : 0;
$ip_4_end = ( $ip_3_counter < $ip_3_end || $ip_2_counter < $ip_2_end ) ? 254 : $ip_range_explode[8];
if ( $ip_4_counter == 0 && $ip_4_end == 254 )
{
$ip_4_counter = 255;
$ip_4_fragment = 255;
$ip_list[] = encode_ip("$ip_1_counter.$ip_2_counter.$ip_3_counter.255");
}
while ( $ip_4_counter <= $ip_4_end )
{
$ip_list[] = encode_ip("$ip_1_counter.$ip_2_counter.$ip_3_counter.$ip_4_counter");
$ip_4_counter++;
}
$ip_3_counter++;
}
$ip_2_counter++;
}
$ip_1_counter++;
}
}