ok thnx. But can you make Ban & modfunction Mod compatible.
In Sources/Security.pl I have this:
sub banning {
# IP BANNING
my( $ban_user, $ban_time, $ban_date, $i, $ban_yes, $ban_total, $ban_left, $ban_reason, $ban_type );
unless (-f "$vardir/ban_mute.txt") {
&ipbanupdate;
}
$remote_ip = $ENV{'REMOTE_ADDR'};
fopen(BAN, "$vardir/ban.txt" );
@entries = <BAN>;
fclose(BAN);
fopen(BAN, ">$vardir/ban.txt", 1);
for( $i = 0; $i < @entries; $i++ ) {
$ban_ip = $entries[$i];
chomp($ban_ip);
($ban_user, $ban_time, $ban_date, $ban_reason, $ban_type) = split(/\|/,$ban_ip);
if( $ban_time != 0 ) {
$date1 = $ban_date;
$date2 = $date;
&calcdifference;
if( $result >= $ban_time ) { next; }
}
$str_len = length($ban_user);
$comp_ip = substr($remote_ip,0,$str_len);
if ($comp_ip eq $ban_user) {
fopen(LOG, ">$vardir/ban_log.txt" );
print LOG "$remote_ip\n";
fclose(LOG);
$username = "Guest";
$ban_total = $ban_time;
if( $ban_time != 0 ) { $ban_left = $ban_total-$result; }
$bann_reason = "$ban_reason";
$ban_yes = 1;
}
print BAN "$ban_ip\n";
}
fclose(BAN);
# EMAIL BANNING
if ($username ne 'Guest') {
$remote_ip = "$ENV{'REMOTE_ADDR'}";
fopen(BAN, "$vardir/ban_email.txt" );
@entries_email = <BAN>;
fclose(BAN);
fopen(BAN, ">$vardir/ban_email.txt", 1);
for( $i = 0; $i < @entries_email; $i++ ) {
$ban_email = $entries_email[$i];
chomp($ban_email);
($ban_user, $ban_time, $ban_date, $ban_reason, $ban_type) = split(/\|/,$ban_email);
if( $ban_time != 0 ) {
$date1 = $ban_date;
$date2 = $date;
&calcdifference;
if( $result >= $ban_time ) { next; }
}
if (lc $ban_user eq lc ${$uid.$username}{'email'}) {
fopen(LOG, ">$vardir/ban_log.txt" );
print LOG "$ban_email ($remote_ip)\n";
fclose(LOG);
$username = "Guest";
$ban_total = $ban_time;
if( $ban_time != 0 ) { $ban_left = $ban_total-$result; }
$bann_reason = "$ban_reason";
$ban_yes = 1;
}
print BAN "$ban_email\n";
}
fclose(BAN);
}
# USERNAME BANNING
if ($username ne 'Guest') {
fopen(BAN, "$vardir/ban_memname.txt" );
@entries = <BAN>;
fclose(BAN);
fopen(BAN, ">$vardir/ban_memname.txt", 1);
foreach $ban_memname (@entries) {
chomp $ban_memname;
($ban_user, $ban_time, $ban_date, $ban_reason, $ban_type) = split(/\|/,$ban_memname);
if( $ban_time != 0 ) {
$date1 = $ban_date;
$date2 = $date;
&calcdifference;
if( $result >= $ban_time ) { next; }
}
if ($ban_user eq $username) {
fopen(LOG, ">$vardir/ban_log.txt" );
print LOG "$ban_memname ($remote_ip)\n";
fclose(LOG);
$username = "Guest";
$ban_total = $ban_time;
if( $ban_time != 0 ) { $ban_left = $ban_total-$result; }
$bann_reason = "$ban_reason";
$ban_yes = 1;
}
print BAN "$ban_memname\n";
}
fclose(BAN);
}
if( $ban_yes == 1 ) {
if( $ban_total == 0 ) {
&UpdateCookie("delete", $username);
$username = "Guest";
</b> $bann_reason");
&redirectinternal;
} else {
&fatal_error("$security_txt{'678'}$tempban{'1'} $ban_total $tempban{'2'} $ban_left $tempban{'3'}<br><br><b>$tempban{'4'}:</b> $bann_reason"); }
&redirectinternal;
}
}
sub ipbanupdate {
my( @banlist, $line, $tmp, @ipban, @emailban, @userban, $dummy, $eban, $iban, $uban, @i_ban, @e_ban, @u_ban);
fopen(FILE, "$vardir/ban.txt");
@banlist = <FILE>;
fclose(FILE);
foreach $line (@banlist){
chomp $line;
($dummy,$tmp) = split (/\|/, $line);
if ($dummy eq "I"){$iban = $tmp;}
if ($dummy eq "E"){$eban = $tmp;}
if ($dummy eq "U"){$uban = $tmp;}
}
fopen(IPFILE, ">$vardir/ban.txt");
(@i_ban) = split (/\,/, $iban);
foreach $line (@i_ban){
chomp $line;
print IPFILE "$line|0|N/A|N/A|1\n";
}
fclose(IPFILE);
fopen(EMAILFILE, ">$vardir/ban_email.txt");
(@e_ban) = split (/\,/, $eban);
foreach $line (@e_ban){
chomp $line;
print EMAILFILE "$line|0|N/A|N/A|2\n";
}
fclose(EMAILFILE);
fopen(MEMFILE, ">$vardir/ban_memname.txt");
(@u_ban) = split (/\,/, $uban);
foreach $line (@u_ban){
chomp $line;
print MEMFILE "$line|0|N/A|N/A|3\n";
}
fclose(MEMFILE);
fopen(FILE, ">$vardir/ban_mute.txt");
print FILE "";
fclose(FILE);
}