| Current File : //usr/tmp/par-6c6566/cache-9ab9fe47781b3f807c8b3ee838b58c73318324f4/inc/script/index.pl |
#!/usr/local/bin/perl
#use strict; # to avoid scope variables errors: useful for developers
$|=1; # to avoid output buffering
#close STDERR; # to avoid DBI error output on html with some web servers
&verify_license;
$userid=(getpwuid($>));
%DATABASES=(
1 => {
host =>"localhost",
port =>"3306",
database=>"wcp4",
user =>"wcpread",
password=>"NEidk3"
},
);
eval "require DBI::DBD";
@characters_not_allowed=qw(
"
'
@
.
&
%
!
?
/
\
);
use FileHandle;
use Quota;
use File::Find;
use Fcntl ':flock';
use Expect;
use MIME::Words qw(:all);
use POSIX;
use Config::Crontab;
#$Expect::Debug =1;
use Sys::Hostname;
$hostname = hostname;
$version =4.0;
$passwd_ftp= "/usr/local/etc/.extraftp";
#$passwd_ftp = "/var/wcp/admin/.passwd_ftp";
$subdomain_dir="/usr/local/apache/conf/vhost";
chop($os = `uname -rs 2>/dev/null`);
#if($os =~ /^SunOS 5/) { }
#elsif($os =~ /^Linux 2/) { }
#elsif($os =~ /^BSD\/OS 2/ || $os =~ /^FreeBSD/ || $os =~ /^NetBSD/ || $os =~ /^OpenBSD/) { }
#===============================================
# HTTP , CGI , DBI , USER subroutines
#===============================================
#require "/usr/local/lib/perl5/site_perl/5.8.0/i86pc-solaris/DBI/DBD.pm";
#require "/var/backend/wcp/data.cgi";
# MAIN #
&input_from_CGI;
&db_connection;
&userinfo($userid);
&env_lang;
&put_HTTP_header;
if ($CGI_INPUT{'help'}) {
&put_HTML_header_help;
$subpage="help_".$help;
&$subpage();
&put_HTML_footer_help;
} else {
&put_HTML_header;
$subpage="page_".$p;
&$subpage();
&put_HTML_footer;
}
sub verify_license {
$auth_hostname="zeus";
$auth_hostid="008b5058";
$cur_hostname=`/usr/bin/hostname`;
$cur_hostid=`/usr/bin/hostid`;
$cur_hostname=~ s/\n//g;
$cur_hostid=~ s/\n//g;
if (($auth_hostname eq $cur_hostname) && ($auth_hostid eq $cur_hostid)){} else {
print "Content-Type: text/html\n\n";
print qq|
<html>
<head>
<title>Please purchase the WCP license from CommuniLink.Net</title>
</head>
<body bgcolor="#D6D6D6">
<br><br><center>Please purchase the WCP license from CommuniLink.Net<p>
<a href="http://www.communilink.net/"><img src="http://www.hit.cx/welcome/logo.gif" alt="" width="96" height="24" border="0"></a>
</center>
</body>
</html>
|;
exit;
}
}
################## data.cgi ###############
sub input_from_CGI {
my ($name, $value, $elem, @pair, $request);
if ($ENV{REQUEST_METHOD} eq "GET") {
$request=$ENV{QUERY_STRING};
} else {
read( STDIN, $request, $ENV{CONTENT_LENGTH} );
}
@pair = split( '&', $request );
foreach $elem ( @pair ) {
( $name, $value ) = split( '=', $elem );
$value =~ tr/+/ /;
$name =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack('c',hex($1))/ge;
$value =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack('c',hex($1))/ge;
$CGI_INPUT{$name} = $value;
}
}
sub db_connection {
$dsn = "DBI:mysql:database=$DATABASES{'1'}{'database'};host=$DATABASES{'1'}{'host'}";
$dbh = DBI->connect($dsn, $DATABASES{'1'}{'user'}, $DATABASES{'1'}{'password'}) || error('db_connect',$DBI::errstr);
}
sub userinfo {
my $user=$_[0];
my $statement = qq~SELECT * FROM users WHERE usr_cod="$user"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
$user_domain = $row->{'usr_domain'};
$user_lang = $row->{'usr_lang'};
$user_firstpage = $row->{'usr_firstpage'};
$user_mysql = $row->{'usr_mysql'};
$user_mysqlspace= $row->{'usr_mysqlspace'};
$user_extraftp = $row->{'usr_extraftp'};
$user_bandwidth = $row->{'usr_bandwidth'};
$user_shutdown = $row->{'usr_shutdown'};
$user_subdomain = $row->{'usr_subdomain'};
$user_reseller = $row->{'CK_res_cod'};
$user_aliasdomain = $row->{'usr_aliasdomain'};
}
$sth->finish;
my $statement = qq~SELECT * FROM preference WHERE CK_usr_cod="$user"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
$user_lang = $row->{'usr_lang'};
$user_firstpage = $row->{'usr_firstpage'};
$user_shutdown = $row->{'usr_shutdown'};
$user_empd = $row->{'usr_empd'};
$user_mypd = $row->{'usr_mypd'};
$usr_webvirus = $row->{'usr_webvirus'};
$usr_email = $row->{'usr_email'};
$usr_sitebox = $row->{'usr_sitebox'};
}
$sth->finish;
}
sub resellerinfo {
if (&check_res_cod($user_reseller) eq "true") {} else {$user_reseller=1;}
my $statement = qq~SELECT * FROM reseller_conf WHERE res_cod="$user_reseller"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
$res_url_com = $row->{'res_url_com'};
$res_url_news = $row->{'res_url_news'};
$res_url_policy = $row->{'res_url_policy'};
$res_url_help = $row->{'res_url_help'};
$res_url_contact = $row->{'res_url_contact'};
$res_info_com = $row->{'res_info_com'};
$res_info_coms = $row->{'res_info_coms'};
$res_info_email = $row->{'res_info_email'};
$res_txt_impturl_en = $row->{'res_txt_impturl_en'};
$res_txt_impturl_big5=$row->{'res_txt_impturl_big5'};
$res_txt_impturl_gb = $row->{'res_txt_impturl_gb'};
}
$sth->finish;
}
sub env_lang {
if ($CGI_INPUT{'lang'} eq "big5") {
$lang="big5";
} elsif ($CGI_INPUT{'lang'} eq "gb") {
$lang="gb";
} elsif ($CGI_INPUT{'lang'} eq "en") {
$lang="en";
} else {
if ($user_lang) {
$lang=$user_lang;
} else {
$lang="en";
}
}
}
sub put_HTTP_header {
print "Content-Type: text/html\n\n";
&resellerinfo;
if ($CGI_INPUT{'help'} eq "") {
if ($CGI_INPUT{'p'}) {
if (&verifyp($CGI_INPUT{'p'})) {
$p=$CGI_INPUT{'p'};
} else {
$p=100;
}
} else {
if ($user_firstpage) {
$p=$user_firstpage;
} else {
$p=1;
}
}
$help=1;
} else {
$help=$CGI_INPUT{'help'};
}
}
sub put_HTML_header {
$lang6=&lang(6);
$lang7=&lang(7);
my $lang128=&lang(128);
## get the menu list from the database
if ($lang eq "big5") {
$charset="big5";
} elsif ($lang eq "gb") {
$charset="gb2312";
} else {
$charset="iso-8859-1";
}
##
&page2vars($p);
$menucode = &page2menu($p);
if(($menucode < 1) or ($menucode > 7)) {
$menucode = 1;
}
$styles_id = $menucode - 1;
print qq{
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<title>WCP5</title>
<meta http-equiv="Content-Type" content="text/html; charset=$charset">
<script src="js/functions.js" type="text/javascript"></script>
<link rel=stylesheet href="css/styles.css" type="text/css" title="CommuniLink Internet">
};
print qq{
</head>
<body class="content">
<table width="995" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td>
<div class="shadow_mid">
<div class="shadow_topmid">
<div class="shadow_dnmid">
<div class="shadow_lefttop">
<div class="shadow_leftdn">
<div class="shadow_righttop">
<div class="shadow_rightdn">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td align="left" valign="middle">
<div class="upper">
<!--Banner-->
<div class="banner$styles_id">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td width="160" height="62"><a href="/?p=1&lang=$lang"><img src="images/spaces.gif" width="160" height="62" border="0" /></a></td>
<td align="right" valign="bottom">
<script>
<!--
function confirmLogOut(theLink)
{
var is_confirmed = confirm("$lang128");
if (is_confirmed) {
window.close();
} else {
return false;
}
return false;
} // end of the 'confirmLink()' function
//-->
</script>
<div class="btn_logout"><a href="#" onclick="javascript:confirmLogOut();"><img src="images/logout.gif" border="0" alt="$lang6"/></a></div>
<span class="domainname">$user_domain</span></td>
</tr></table>
</div><!--Banner End-->
<!--TopMenu-->
<div class="bg_topmenu">
<div class="topmenu_left"> </div>
<div class="parti_topmenu"><img src="images/parti.jpg" /></div>
};
$statement = qq~SELECT * FROM menu ORDER BY menu_page~;
$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
while ($row = $sth->fetchrow_hashref) {
if ($menucode eq "$row->{'menu_cod'}") {
$menu_color_selected="topmenu$styles_id";
if ($lang eq "big5") {
$cur_smenu_item=$row->{'menu_big5'};
} elsif ($lang eq "gb") {
$cur_smenu_item=$row->{'menu_gb'};
} else {
$cur_smenu_item=$row->{'menu_eng'};
}
} else {
$menu_color_selected="topmenu";
}
if ($lang eq "big5") {
$menu_item=$row->{'menu_big5'};
} elsif ($lang eq "gb") {
$menu_item=$row->{'menu_gb'};
} else {
$menu_item=$row->{'menu_en'};
}
print qq!<div class="$menu_color_selected"><a href="/?p=$row->{'menu_page'}&lang=$lang">$menu_item</a></div><div class="parti_topmenu"><img src="images/parti.jpg" /></div>\n!;
}
$sth->finish;
print qq{
</div><!--TopMenu End-->
};
$act=$CGI_INPUT{'act'};
if(($p eq "304") && ($act ne "Overview")) {
print "";
} else {
print qq{
<table style="clear:both;" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td width="169" align="left" valign="top" class="bg_leftmenu">
<!--LeftMenu-->
<div class="leftmenu_top"> </div>
};
if($p eq "1") {
my $lang_txt1=&lang_txt(1);
&checkquota_zfs($>); # provide: $DiskQuota, $DiskUsage
&checkemailoption($user_domain);
if ($eop_option eq "B") {
$eop_limit=$eop_limit;
$eop_used=$eop_used;
} else {
$eop_limit="N/A";
$eop_used="N/A";
}
&checkemailaccount($user_domain);
###### prepare the year-month
($sec,$min,$hour,$day,$month,$year,$day2) = (localtime(time))[0,1,2,3,4,5,6];
$year += 1900;
my $mon = $month + 1; if ($mon < 10) { $mon = "0$mon"; };
my @ban_data1=&checkbandwidth("$year-$mon","CURRENT");
($ban1_used, $ban1_limit, $ban1_date) = @ban_data1;
$ban1_limit = sprintf("%d",$ban1_limit * 1.024);
$ban1_used = sprintf("%d",$ban1_used / 1000 / 1.024);
$lang_txt1 =~ s/\$web_allow/$DiskQuota/g;
$lang_txt1 =~ s/\$web_used/$DiskUsage/g;
$lang_txt1 =~ s/\$band_allow/$user_bandwidth/g;
$lang_txt1 =~ s/\$band_used/$ban1_used/g;
$lang_txt1 =~ s/\$email_acct_allow/$ema_maxpop/g;
$lang_txt1 =~ s/\$email_acct_used/$ema_pop/g;
$lang_txt1 =~ s/\$email_space_allow/$eop_limit/g;
$lang_txt1 =~ s/\$email_space_used/$eop_used/g;
$lang_txt1 =~ s/\$lang/$lang/;
print "$lang_txt1";
} elsif($p eq "101") {
print "";
} else {
my $value_add_page = 'p407p408p409p410p504p505p506p507p700p701p702p703p704p705p706p707p';
my $value_add_pic = "";
$menucode=&page2menu($p);
$smenucode=&page2smenu($p);
$statement = qq~SELECT * FROM submenu WHERE CK_menu_cod=$menucode ORDER BY smenu_order ASC ~;
$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
while ($row = $sth->fetchrow_hashref) {
my $temp_str = "p" . $row->{'smenu_page'} . "p";
if($value_add_page =~ /$temp_str/) {
$value_add_pic = '<span class="extra"><img src="images/extra.gif" border="0"/></span>';
} else {
$value_add_pic = "";
}
if ($smenucode eq "$row->{'smenu_cod'}") {
$smenu_color_selected='leftmenu_s';
if ($lang eq "big5") {
$cur_smenu_item=$row->{'smenu_big5'};
} elsif ($lang eq "gb") {
$cur_smenu_item=$row->{'smenu_gb'};
} else {
$cur_smenu_item=$row->{'smenu_en'};
}
} else {
$smenu_color_selected='leftmenu';
}
if ($lang eq "big5") {
$smenu_item=$row->{'smenu_big5'};
} elsif ($lang eq "gb") {
$smenu_item=$row->{'smenu_gb'};
} else {
$smenu_item=$row->{'smenu_en'};
}
if ($row->{'smenu_page'} >= 700) {
if($user_reseller eq "1"){
print qq!<div class="$smenu_color_selected"><a href="/?p=$row->{'smenu_page'}&lang=$lang" class="leftmenu_txt">$smenu_item</a>$value_add_pic</div>\n!;
} else {
if (($row->{'smenu_page'} eq 700) || ($row->{'smenu_page'} eq 701)) {
print qq!<div class="$smenu_color_selected"><a href="/?p=$row->{'smenu_page'}&lang=$lang" class="leftmenu_txt">$smenu_item</a>$value_add_pic</div>\n!;
}
}
} elsif ($row->{'smenu_page'} eq "505") {
if($user_reseller eq "1"){
print qq!<div class="$smenu_color_selected"><a href="/?p=$row->{'smenu_page'}&lang=$lang" class="leftmenu_txt">$smenu_item</a>$value_add_pic</div>\n!;
}
} else {
print qq!<div class="$smenu_color_selected"><a href="/?p=$row->{'smenu_page'}&lang=$lang" class="leftmenu_txt">$smenu_item</a>$value_add_pic</div>\n!;
}
}
$sth->finish;
}
if(($p ne "1") && ($p =~ /^1/)) {
$cur_smenu_item="";
}
print qq{
<!--LeftMenu End-->
};
if($user_reseller eq "1"){
print qq{ <!--Banner Ad--> <div class="ad"> };
open (AD, "</var/backend/wcp/wcpbanner.html");
my @db_lines= <AD>;
close AD;
LINE: foreach $db_line (@db_lines) {
print $db_line;
}
print qq { </div> };
}
print qq{
<!--Extra-->
<div class="extrameaning"><img src="images/extra.gif" /> $lang7</div>
</td>
<td width="787" align="left" valign="top">
<div class="content_mid$styles_id"><div class="content_left$styles_id"><div class="content_right$styles_id">
<div>
<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr>
<!--Page Title-->
<td width="39%" valign="top" class="pagetitle">$cur_smenu_item</td>
<!--Date & Time-->
<td width="42%" align="right" valign="bottom" class="datetime">};&print_date;print qq{ HKT</td>
<!--Lan-->
};
&lang_button;
print qq{
</tr></table>
</div>
<div class="contentLayout content$styles_id">
<!--Content Start-->
}
}
}
sub put_HTML_footer {
my $year = (localtime(time))[5];
$year += "1900";
$lang1=&lang(1);
$lang2=&lang(2);
$lang3=&lang(3);
$lang4=&lang(4);
$lang5=&lang(5);
$act=$CGI_INPUT{'act'};
if(($p eq "304") && ($act ne "Overview")) {
print "";
} else {
print qq{
<!--Content End-->
</div>
</div></div></div>
};
}
print qq{
</td></tr></table>
</div><!--upper End-->
</td></tr>
<tr><td>
<!--Footer-->
<div class="footer$styles_id footer">
<div class="bottomlinks">
};
print qq!<a href="$res_url_com" target="new">$lang1</a><span class="parti">|</span> !;
if ($res_url_news) {print qq!<a href="$res_url_news" target="new">$lang2</a><span class="parti">|</span> !;}
if ($res_url_policy){print qq!<a href="$res_url_policy" target="new">$lang3</a><span class="parti">|</span> !;}
if ($res_url_help) {print qq!<a href="$res_url_help" target="new">$lang4</a><span class="parti">|</span> !;}
print qq!<a href="$res_url_contact" target="new">$lang5</a>!;
print qq{
</div>
<div class="copyright$styles_id copyright">Copyright 1998-$year $res_info_com. All rights reserved.</div>
</div><!--Footer End-->
</td></tr>
</table>
</div></div></div></div></div></div></div>
</td></tr></table>
</body>
</html>
};
$dbh->disconnect if $dbh;
}
sub verifyp {
my $page=$_[0];
my $statement = qq~SELECT * FROM page WHERE page_cod="$page"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
my $row_number=$sth->rows;
if ($row_number == 0) {
$sth->finish;
return 0;
} else {
$sth->finish;
return 1;
}
}
sub page2vars {
my $pagecode=$_[0];
my $menucode=&page2menu($pagecode);
$statement = qq~SELECT * FROM menu WHERE menu_cod='$menucode'~;
$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
my $menucode=$row->{'CK_menu'};
$menu_logo = $row->{'menu_logo'};
$menu_color1= $row->{'menu_color1'};
$menu_color2= $row->{'menu_color2'};
$menu_color3= $row->{'menu_color3'};
if ($lang eq "big5") {
$menu_title = $row->{'menu_big5'};
} elsif ($lang eq "gb") {
$menu_title = $row->{'menu_gb'};
} else {
$menu_title = $row->{'menu_eng'};
}
}
$sth->finish;
}
sub page2menu {
my $pagecode=$_[0];
my $menucode="";
my $statement = qq~SELECT * FROM page WHERE page_cod="$pagecode"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
$menucode=$row->{'CK_menu'};
}
$sth->finish;
return $menucode;
}
sub page2smenu {
my $pagecode=$_[0];
my $menucode="";
my $statement = qq~SELECT * FROM page WHERE page_cod="$pagecode"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
$menucode=$row->{'CK_smenu'};
}
$sth->finish;
return $menucode;
}
sub lang {
my $txtcode=$_[0];
my $statement = qq~SELECT * FROM lang WHERE lang_cod="$txtcode"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
if ($lang eq "big5") {
$txt= $row->{'lang_big5'};
} elsif ($lang eq "gb") {
$txt= $row->{'lang_gb'};
} else {
$txt= $row->{'lang_en'};
}
}
$sth->finish;
return $txt;
}
sub lang_txt {
my $txtcode=$_[0];
my $statement = qq~SELECT * FROM lang_txt WHERE txt_cod="$txtcode"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
if ($lang eq "big5") {
$txt= $row->{'txt_big5'};
} elsif ($lang eq "gb") {
$txt= $row->{'txt_gb'};
} else {
$txt= $row->{'txt_en'};
}
}
$sth->finish;
return $txt;
}
sub lang_button {
my ($get_var, $name, $value, $elem, @pair, $request);
if ($ENV{REQUEST_METHOD} eq "GET") {
$request=$ENV{QUERY_STRING};
} else {
read( STDIN, $request, $ENV{CONTENT_LENGTH} );
}
@pair = split( '&', $request );
foreach $elem ( @pair ) {
( $name, $value ) = split( '=', $elem );
$value =~ tr/+/ /;
$name =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack('c',hex($1))/ge;
$value =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack('c',hex($1))/ge;
#$CGI_INPUT{$name} = $value;
if (($name ne "lang") && ($name ne "") && ($name ne "&")) {
$get_var .= "&$name=$value";
}
}
$link_big5 ="?lang=big5" . $get_var;
$link_gb ="?lang=gb" . $get_var;
$link_en ="?lang=en" . $get_var;
$button_big5="lan_big5.gif";
$button_gb="lan_gb.gif";
$button_en="lan_en.gif";
if ($lang eq "big5") {
$button_big5="lan_big5_s.gif";
} elsif ($lang eq "gb") {
$button_gb="lan_gb_s.gif";
} else {
$button_en="lan_en_s.gif";
}
print qq{
<td width="19%" valign="middle">
<a href="$link_en"><img src="images/$button_en" border="0" class="lan"/></a>
<a href="$link_gb"><img src="images/$button_gb" border="0" class="lan"/></a>
<a href="$link_big5"><img src="images/$button_big5" border="0" class="lan"/></a>
</span></td>
}
}
sub check_res_cod {
my $res_cod=$_[0];
my $statement = qq~SELECT * FROM reseller_conf WHERE res_cod="$res_cod"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
$rc=$sth->rows;
if ($rc > 0) {
return "true";
} else {
return "false";
}
}
sub print_date {
# If you want the date displayed in the format of December 11, 1998, leave the
# next variable as a 1. If you want it displayed as 12/11/1998, change the
# next variable to a 2. If you don't want it displayed at all, change the
# next variable to a 0.
$dateformat = 1;
# If you don't want the day of the week displayed, change the next variable to
# a 0.
$weekday = 1;
# If you want the time displayed as 10:15:08 P.M., leave the next variable as
# a 1. If you want it displayed as 22:15:08, change the next variable to a 2.
# If you don't want it displayed at all, change the next variable to a 0.
$timeformat = 1;
# If you want the date before the time, leave the next variable as a 0. If
# you want the time before the date, change the next variable to a 1.
$order = 0;
# Change the next variable to whatever you want between the date and time.
$divider = ", ";
##############################################################################
# Congratulations! You've finished defining the variables. If you want to, #
# you can continue screwing with the script, but it isn't necessary. #
##############################################################################
@months = ('January','February','March','April','May','June','July','August','September','October','November','December');
@days = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
($sec,$min,$hour,$day,$month,$year,$day2) = (localtime(time))[0,1,2,3,4,5,6];
if ($sec < 10) { $sec = "0$sec"; }
if ($min < 10) { $min = "0$min"; }
if ($hour < 10) { $hour = "0$hour"; }
if ($day < 10) { $day = "0$day"; }
$year += "1900";
if ($order) { &time; ÷ &date; }
else { &date; ÷ &time; }
}
sub date {
if ($dateformat) {
if ($weekday) { print "$days[$day2], "; }
if ($dateformat == 1) { print "$months[$month] $day, $year"; }
else {
$month++;
print "$month/$day/$year";
}
}
}
sub time {
if ($timeformat == 2) { print "$hour:$min:$sec"; }
elsif ($timeformat == 1) {
if ($hour >= 12) { $ex = "P.M."; }
else { $ex = "A.M."; }
if ($hour == 0) { $hour = 12; }
if ($hour > 12) { $hour -= 12; }
print "$hour:$min:$sec $ex";
}
}
sub divide {
print "$divider";
}
sub checkquota {
my $uid=$_[0];
my @quota_array=();
my $dev="";
my $statement = qq~SELECT * FROM wcp_conf WHERE wcp_var_name like "home%_quota"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
while (my $row = $sth->fetchrow_hashref) {
push @quota_array,$row->{'wcp_var_value'};
}
$sth->finish;
$array_count = @quota_array;
if($array_count eq "1"){
$dev = $quota_array[0];
($bc,$bs,$bh,$bt,$fc,$fs,$fh,$ft) = Quota::query($dev, $uid);
if(defined($bc)) {
$DiskQuota=int($bh/1000);
$DiskUsage=int($bc/1000);
} else {
$DiskQuota=0;
$DiskUsage=0;
# debug:
# warn "Quota::query($dev): ",Quota::strerr,"\n\n";
}
#print $DiskQuota . " " .$DiskUsage;
} else {
foreach(@quota_array) {
($bc,$bs,$bh,$bt,$fc,$fs,$fh,$ft) = Quota::query($_, $uid);
if($bh ne "") {
$DiskQuota=int($bh/1000);
$DiskUsage=int($bc/1000);
last;
}
}
if($DiskQuota eq "") {
$DiskQuota=0;
$DiskUsage=0;
}
}
}
sub checkquota_zfs {
my $uid=$_[0];
my @quota_array=();
my $dev="";
my $statement = qq~SELECT * FROM wcp_conf WHERE wcp_var_name like "home%_quota"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
while (my $row = $sth->fetchrow_hashref) {
push @quota_array,$row->{'wcp_var_value'};
}
$sth->finish;
my $cmd='/usr/sbin/zfs get userquota@' . $uid . ' ' . $quota_array[0];
my @result = `$cmd`;
my @result1 = split(/\s+/, $result[1]);
if($result1[2] =~ /K$/i) {
$result1[2] =~ s/K//ge;
$DiskQuota = int($result1[2] / 1000);
} elsif ($result1[2] =~ /M$/i) {
$result1[2] =~ s/M//ge;
$DiskQuota = int($result1[2] * 1);
} elsif ($result1[2] =~ /G$/i) {
$result1[2] =~ s/G//ge;
$DiskQuota = int($result1[2] * 1000);
} else {
$DiskQuota = 0;
}
$cmd='/usr/sbin/zfs get userused@' . $uid . ' ' . $quota_array[0];
@result = `$cmd`;
@result1 = split(/\s+/, $result[1]);
if($result1[2] =~ /K$/i) {
$result1[2] =~ s/K//ge;
$DiskUsage = int($result1[2] / 1000);
} elsif ($result1[2] =~ /M$/i) {
$result1[2] =~ s/M//ge;
$DiskUsage = int($result1[2] * 1);
} elsif ($result1[2] =~ /G$/i) {
$result1[2] =~ s/G//ge;
$DiskUsage = int($result1[2] * 1000);
} else {
$DiskUsage = 0;
}
#print $DiskQuota . " " .$DiskUsage;
}
sub checkemailoption {
my $domain=$_[0];
my $statement = qq~SELECT * FROM emailoption WHERE CK_usr_domain="$domain"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
$eop_option = $row->{'eop_option'};
$eop_limit = $row->{'eop_limit'};
$eop_used = $row->{'eop_used'};
$eop_update = $row->{'eop_update'};
}
}
sub checkemailaccount {
my $domain=$_[0];
my $lang108=&lang(108);
my $statement = qq~SELECT * FROM emailaccount WHERE CK_usr_domain="$domain"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
$ema_maxfor = $row->{'ema_maxfor'};
$ema_for = $row->{'ema_for'};
$ema_maxali = $row->{'ema_maxali'};
$ema_ali = $row->{'ema_ali'};
$ema_maxauto= $row->{'ema_maxauto'};
$ema_auto = $row->{'ema_auto'};
$ema_maxlist= $row->{'ema_maxlist'};
$ema_list = $row->{'ema_list'};
$ema_maxpop = $row->{'ema_maxpop'};
$ema_pop = $row->{'ema_pop'};
}
$sth->finish;
$ema_for = $ema_for+$ema_ali; # because we no longer provide alias on new platform
if ($ema_maxfor = -1) {
$ema_maxfor = $lang108;
$ema_free_for = $lang108;
} else {
$ema_free_for = $ema_maxfor-$ema_for;
}
$ema_free_ali = $ema_maxali-$ema_ali;
if ($ema_maxauto = -1) {
$ema_maxauto = $lang108;
$ema_free_auto = $lang108;
} else {
$ema_free_auto = $ema_maxauto-$ema_auto;
}
$ema_free_list = $ema_maxlist-$ema_list;
if ($ema_maxlist = -1) {
$ema_maxlist = $lang108;
$ema_free_list = $lang108;
} else {
$ema_free_list = $ema_maxlist-$ema_list;
}
$ema_free_pop = $ema_maxpop-$ema_pop;
}
sub checkbandwidth {
my $date=$_[0];
my $sw =$_[1];
if ($sw eq "CURRENT") {
$date1="$date-01";
$date2="$date-31";
$statement = qq~SELECT * FROM bandwidth WHERE CK_usr_cod="$userid" AND ban_date > "$date1" AND ban_date <= "$date2"~;
} else {
$statement = qq~SELECT * FROM bandwidth WHERE CK_usr_cod="$userid" AND ban_date ="$date"~;
}
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
$t1=$row->{'ban_ban'};
$t2=$row->{'ban_limit'};
$t3=$row->{'ban_date'};
} else {
$t1=0;
$t2=1;
$t3="N/A";
}
my @data=($t1,$t2,$t3);
$sth->finish;
return @data;
}
sub checkftpusage {
my $uid=$_[0];
$FTPAccount=0;
###### Check Extra FTP Usage vv
open (DB, "<$passwd_ftp");
@db_lines1= <DB>;
close DB;
@db_lines = grep(/:$uid:/, @db_lines1);
LINE: foreach $db_line (@db_lines) {
$db_line =~ /^#/ and next LINE;
chomp $db_line;
@db_data = split (/\n/, $db_line);
$FTPAccount ++;
}
if ($FTPAccount eq "") {$FTPAccount=0;}
$FTPAccountFree=$user_extraftp-$FTPAccount;
if ($user_extraftp>0) {
$FTPAccountRate=int($FTPAccount/$user_extraftp * 100);
} else {
$FTPAccountRate=0;
}
###### Check Extra FTP Usage ^^
}
sub checkmysql {
my $user=$_[0];
my $statement = qq~SELECT * FROM mysql WHERE CK_usr_cod="$user"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
$mysql_usage = 0;
$mysql_number = 0;
while (my $row = $sth->fetchrow_hashref) {
$mysql_number ++;
$mysql_usage = $mysql_usage + $row->{'mys_size'};
}
$user_mysql_free=$user_mysqlspace - $mysql_usage;
if($user_mysqlspace<1) { $user_mysql_rate=0; } else {
$user_mysql_rate=int($mysql_usage/$user_mysqlspace * 100);
}
$sth->finish;
}
sub checkcatchsmtp {
my $domain = $_[0];
my $catchsmtpfile= "/var/qmail/control/taps";
$catchsmtp = "OFF";
if ( -f $catchsmtpfile) {
open (CATCH, "<$catchsmtpfile");
my @db_lines= <CATCH>;
close CATCH;
my $temp_str = '@' . $domain . '\$:';
@db_lines1 = grep(/$temp_str/, @db_lines);
LINE: foreach $db_line1 (@db_lines1) {
$catchsmtp="ON";
}
#LINE: foreach $db_line (@db_lines) {
# chomp $db_line;
# my @db_data = split (/\n/, $db_line);
# if ($db_line eq "$domain") {
# $catchsmtp="ON";
# }
#}
}
return $catchsmtp;
}
sub checkdirsize {
my $path = $_[0];
find (sub {$used += -s ;}, $path);
return $used;
}
sub portscan {
use IO::Socket::INET;
local($server) = @_[0];
local($portno) = @_[1];
$TIMEOUT = 12;
$rtime = $s+$u/10000;
$SOCK = (IO::Socket::INET->new( PeerAddr => $server, PeerPort => $portno, Proto => 'tcp', Timeout => $TIMEOUT));
if ($SOCK) {
my $result="UP";
return $result;
} else {
my $result="DOWN";
return $result;
}
}
sub check_global_smtp {
my $domain = $_[0];
my $global_smtp_file='/var/qmail/control/relaymailfrom.vip';
my $result = "DOWN";
if ( -f $global_smtp_file) {
open (GLOBALSMTP, "<$global_smtp_file");
my @db_lines= <GLOBALSMTP>;
close GLOBALSMTP;
my $temp_str = $domain . '$';
@db_lines1 = grep(/$temp_str/, @db_lines);
LINE: foreach $db_line1 (@db_lines1) {
$result="UP";
}
}
return $result;
}
sub check_anti_virus {
my $domain = $_[0];
my $simcontrol_file='/var/qmail/control/simcontrol';
$anti_virus = "OFF";
if ( -f $simcontrol_file) {
open (ANTIVIRUS, "<$simcontrol_file");
my @db_lines= <ANTIVIRUS>;
close ANTIVIRUS;
if(@match = grep(/^$domain:/, @db_lines)) {
if($match[0] =~ /\:clam\=(\w+)\,/) {
if($1 =~ /yes/i) {
$anti_virus = "ON";
}
}
} else {
if($db_lines[0] =~ /^\:clam\=(\w+)\,/) {
if($1 =~ /yes/i) {
$anti_virus = "ON";
}
}
}
}
return $anti_virus;
}
sub update_shutdown {
my $sw=$_[0];
my $userid=$_[1];
my $statement = qq~UPDATE preference SET usr_shutdown="$sw" WHERE CK_usr_cod="$userid"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if ($sth->fetchrow_hashref) {
$sth->finish;
return true;
}
$sth->finish;
return false;
}
sub changepasswd {
my $user = $_[0];
my $old_pw = $_[1];
my $new_pw = $_[2];
$change_pw = "FAIL";
if($os =~ /^SunOS 5/){
$pass_string ='New Password:';
$pass_string_re ='new Password:';
$pass_com ="/usr/bin/passwd $user";
$suc_string =$user;
} elsif ($os =~ /^Linux 2/) {
$pass_string ='New password:';
$pass_string_re ='new password:';
$pass_com ="/usr/bin/passwd";
$suc_string ="successfully";
}
($pass = Expect->spawn($pass_com)) || return $change_pw;
$pass->log_stdout(0);
$pass->expect(2,'-re','word:\s$') || return $change_pw;
print $pass "$old_pw\r";
$pass->expect(2,'-re',$pass_string) || return $change_pw;
print $pass "$new_pw\r";
$pass->expect(2,'-re',$pass_string_re) || return $change_pw;
print $pass "$new_pw\r";
$pass->expect(2,'-re',$suc_string) || return $change_pw;
print $pass "exit\r";
$pass->soft_close();
$change_pw="OK";
return $change_pw;
}
sub changehtpasswd {
my $user = $_[0];
#my $old_pw = $_[1];
my $new_pw = $_[1];
my $fpwd = $_[2];
$change_pw = "FAIL";
open(P, "+<$fpwd") || return $change_pw;
flock(P, LOCK_EX);
@P = grep(!/^#/, <P>);
%pw = map { chomp; split ':' } @P;
if (!exists $pw{$user}) {return $change_pw;};
#$ocry = $pw{$usr};
#$cry = crypt($opwd, $ocry);
#die "Wrong user $usr or Old Password\n" if $cry ne $ocry;
$pw{$user} = crypt($new_pw, &salt);
seek(P, 0, 0);
while (($k,$v) = each %pw) { print P "$k:$v\n"; }
truncate P, (tell P);
flock(P, LOCK_UN);
close(P);
$change_pw = "OK";
return $change_pw;
}
sub printperlmodules {
print qq~
<style type="text/css">
<!--
.tabletitle { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; height: 22px; }
.perl { font-family: Arial, Helvetica, sans-serif; font-size: 11px }
-->
</style>
<table width="98%" cellspacing="0" cellpadding="4" align="center" bordercolor="#C5C5C5">
<tr bgcolor="#EFEFEF">
<td colspan="2" valign="top" class="tabletitle">LIST OF ALL INSTALLED PERL MODULES</td>
</tr>
<tr>
<td class="perl" valign="top">
~;
#find(\&wanted,@INC);
find(\&wanted,'/usr/local/lib/perl5/');
$modcount = 0;
foreach $line(@foundmods)
{
$match = lc($line);
if ($found{$line}[0] >0)
{$found{$line} = [$found{$line}[0]+1,$match]}
else
{$found{$line} = ["1",$match];$modcount++}
}
@foundmods = sort count keys(%found);
sub count {
return $found{$a}[1] cmp $found{$b}[1]
}
$third = $modcount/2;
$count=0;
$firstroundtotal = 0;
foreach $mod(@foundmods)
{
chomp $mod;
$count++;
if ($count <= ($third+1))
{
$firstroundtotal++;
print qq~$firstroundtotal. <a href="http://search.cpan.org/search?module=$mod" title="Click here to see $mod on CPAN [Opens in a new window]" target="_blank">$mod</a><br>~;
}
else
{
push (@mod1,$mod)
}
}
$count = 0;
print qq~ </td><td class="perl" valign="top">~;
foreach $mod1(@mod1)
{
chomp $mod1;
$count++;
if ($count <= $third)
{
$firstroundtotal++;
print qq~$firstroundtotal. <a href="http://search.cpan.org/search?module=$mod1" title="Click here to see $mod2 on CPAN [Opens in a new window]" target="_blank">$mod1</a><br>~;
}
}
sub wanted {
$count = 0;
if ($File::Find::name =~ /\.pm$/) {
open(MODFILE,$File::Find::name) || return;
while(<MODFILE>){
if (/^ *package +(\S+);/){
push (@foundmods, $1); last;
}
}
}
}
print qq~
</td>
</tr>
</table>
~;
}
sub printphpmodules {
my $check=0;
print qq{
<style type="text/css"><!--
.table_php {border-collapse: collapse; font-family: sans-serif;}
.e {border: 1px solid #000000; font-size: 75%; vertical-align: baseline; background-color: #ccccff; font-weight: bold; color: #000000;}
.h {background-color: #9999cc; font-weight: bold; color: #000000;}
.v {border: 1px solid #000000; font-size: 75%; vertical-align: baseline; background-color: #cccccc; color: #000000;}
.hr_php {background-color: #cccccc; border: 0px; height: 1px; color: #000000;}
//--></style>
};
#php_info "INFO_GENERAL","INFO_CREDITS","INFO_CONFIGURATION","INFO_MODULES","INFO_ENVIRONMENT","INFO_VARIABLES","INFO_LICENSE"
my @temp = `/usr/local/bin/php -r 'phpinfo(INFO_GENERAL)\;'`;
print qq{<table border="0" cellpadding="3" width="600" class="table_php">\n};
foreach (@temp) {
chomp $_;
if(/[^phpinfo\(\)]/) {
if(/\=\>/) {
my @temp_spilt = split (/ \=\> /, $_);
print qq{<tr><td class="e">$temp_spilt[0]</td><td class="v">$temp_spilt[1]</td></tr>\n};
}
}
}
print qq{</table><hr class="hr_php">\n};
my @temp = `/usr/local/bin/php -r 'phpinfo(INFO_CONFIGURATION)\;'`;
print qq{<table border="0" cellpadding="3" width="600" class="table_php">\n
<tr><td colspan="3" align="center"><b>Configuration</b></td></tr>\n
<tr><td colspan="3" align="center"><b>PHP Core</b></td></tr>\n
};
foreach (@temp) {
chomp $_;
if(/[^phpinfo\(\)]/) {
if(/\=\>/) {
my @temp_spilt = split (/ \=\> /, $_);
print qq{<tr><td class="e">$temp_spilt[0]</td><td class="v">$temp_spilt[1]</td><td class="v">$temp_spilt[2]</td></tr>\n};
}
}
}
print qq{</table>\n};
}
sub update_pref {
my $pref_lang =$_[0];
my $pref_empd =$_[1];
my $pref_firstpage =$_[2];
my $pref_mypd =$_[3];
my $pref_email =$_[4];
my $statement = qq~UPDATE preference SET usr_lang="$pref_lang",usr_empd="$pref_empd",usr_firstpage="$pref_firstpage",usr_mypd="$pref_mypd",usr_email="$pref_email" WHERE CK_usr_cod="$userid"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if ($sth->fetchrow_hashref) {
$sth->finish;
return true;
}
$sth->finish;
return false;
}
sub addsubdomain {
my $subdomain= $_[0];
my $docroot = $_[1];
$add_result = "FAIL";
$subdomain_file=$subdomain_dir."/".$user_domain;
# Check If the username exist
open(SUB,"<$subdomain_file") || &error('Could not find specified file');
@subdomain = <SUB>;
close(SUB);
if(@match = grep(/^$subdomain:/, @subdomain)){return $add_result;}
open(SUB,">>$subdomain_file") || return $add_result;
print SUB "$subdomain.$user_domain /home/$userid$docroot\n";
close(SUB);
$err=`mkdir -p /home/$userid$docroot`;
if ($err == 0) { }
$add_result = "OK";
return $add_result;
}
sub deletesubdomain {
my $subdomain= $_[0];
$add_result = "FAIL";
$subdomain_file=$subdomain_dir."/".$user_domain;
# Check If the username exist
open(SUB,"<$subdomain_file") || &error('Could not find specified file');
@subdomain = <SUB>;
close(SUB);
if(@match = grep(/^$subdomain\./, @subdomain)){} else {return $add_result;}
@rowdata = grep(/\.$user_domain\s/, @subdomain);
$num_messages = @rowdata;
foreach ($j = 0;$j <= $num_messages -1;$j++) {
if ($rowdata[$j] =~ /^$subdomain\./) {
$row = $rowdata[$j];
chop($row);
($SUBDOMAIN, $DOCROOT) = split(/\s/, $row);
$rowdata[$j] = join("",);
next;
}
}
open(SUB,">$subdomain_file") || die $!;
print SUB @rowdata;
close(SUB);
$add_result = "OK";
return $add_result;
}
sub checkuidgid {
$syspass_file="/etc/passwd";
open(SYSPASS,"<$syspass_file") || &error('Could not find specified file');
@syspass = <SYSPASS>;
close(SYSPASS);
LINE: foreach $db_line (@syspass) {
$db_line =~ /^#/ and next LINE;
$db_line =~ /^\s*$/ and next LINE;
chomp $db_line;
@db_data = split (/\:/, $db_line);
if ($db_line =~ /^$userid:/) {
$uid = $db_data[2];
$gid = $db_data[3];
}
}
}
sub addextraftp {
my $user= $_[0];
my $pwd = $_[1];
my $dir = $_[2];
$add_result = "FAIL";
# Grep the uid
&checkuidgid;
# Check If the username exist
open(HTPASS,"<$passwd_ftp") || &error('Could not find specified file');
@htpasswd = <HTPASS>;
close(HTPASS);
if(@match = grep(/^$user:/, @htpasswd)){return $add_result;}
$salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64];
$password = crypt($pwd,$salt);
open(HTPASS,">>$passwd_ftp") || return $add_result;
print HTPASS "$user:$password:$uid:$gid:\:/home/$userid$dir:/bin/sh\n";
close(HTPASS);
$err=`mkdir -p /home/$userid$dir`;
if ($err == 0) { }
$add_result = "OK";
return $add_result;
}
sub create_errorpage {
my $code=$_[0];
my $htmldir = "/export/home/$userid/public_html";
my $cf_file = "$htmldir/.htaccess";
my $htmlfile= "/$code.html";
my $cf_line = "ErrorDocument $code /$code.html";
my $er_page = $htmldir.$htmlfile;
if ($code eq "401") {$html_content = &lang_txt(32);}
if ($code eq "403") {$html_content = &lang_txt(33);}
if ($code eq "404") {$html_content = &lang_txt(34);}
if ($code eq "500") {$html_content = &lang_txt(35);}
$html_content =~ s/\$user_domain/$user_domain/g;
if( -f $cf_file) {
open(DATA,"+<$cf_file");
@rowdata = <DATA>;
close(DATA);
$print_new_line=1;
$num_messages = @rowdata;
foreach ($j = 0;$j <= $num_messages -1;$j++) {
if ($rowdata[$j] =~ /^ErrorDocument $code (.*)/) {
$print_new_line=0;
$row = $rowdata[$j];
chop($row);
($ErrorDocument,$ErrorNumber,$ErrorFile) = split(/\s/, $row);
$rowdata[$j] = join(" ",$ErrorDocument,$ErrorNumber,$htmlfile);
$rowdata[$j] .= "\n";
next;
}
}
}
if ($print_new_line == 1) {
open(DATA,">$cf_file") || die $!;
print DATA @rowdata;
print DATA "$cf_line\n";
close(DATA);
} else {
open(DATA,">$cf_file") || die $!;
print DATA @rowdata;
close(DATA);
}
if (-e $er_page) {
print qq|
<font size="1" color="Green">setting up $code ErrorDocument ... done!<br>
creating $er_page ... <font color="#E10000">file exist. skipped</font></font><p>
|;
} else {
open (ERRORPAGE,">$er_page");
print ERRORPAGE $html_content;
close ERRORPAGE;
chmod 0644, "$er_page";
print qq|
<font size="1" color="Green">setting up $code ErrorDocument ... done!<br>
creating $er_page ... done!</font><p>
|;
}
}
sub delete_errorpage {
my $code=$_[0];
my $htmldir = "/export/home/$userid/public_html";
my $cf_file = "$htmldir/.htaccess";
if( -f $cf_file) {
open(DATA,"$cf_file") || die $!;
@rowdata = <DATA>;
close(DATA);
$print_new_line=1;
$num_messages = @rowdata;
foreach ($j = 0;$j <= $num_messages -1;$j++) {
if ($rowdata[$j] =~ /^ErrorDocument $code (.*)/) {
$print_new_line=0;
$row = $rowdata[$j];
chop($row);
#($ErrorDocument,$ErrorNumber,$ErrorFile) = split(/\s/, $row);
$rowdata[$j] = join("",);
next;
}
}
open(DATA,">$cf_file") || die $!;
print DATA @rowdata;
close(DATA);
print qq|$code Uninstall Complete<p>|;
} else {
print &lang_txt(47);
}
}
sub check_errorpage {
my $code=$_[0];
my $rtn_value="NO";
my $htmldir = "/export/home/$userid/public_html";
my $cf_file = "$htmldir/.htaccess";
my $htmlfile= "/$code.html";
my $er_page = $htmldir.$htmlfile;
if( -f $cf_file) {
open(DATA,"$cf_file") || die $!;
@rowdata = <DATA>;
close(DATA);
$print_new_line=1;
$num_messages = @rowdata;
foreach ($j = 0;$j <= $num_messages -1;$j++) {
if ($rowdata[$j] =~ /^ErrorDocument $code (.*)/) {
if(-f $er_page) { $rtn_value = "YES"; }
}
}
}
return $rtn_value;
}
sub wcpconf {
my $statement = qq~SELECT * FROM wcp_conf WHERE wcp_var_name="$hostname"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
$wcp_sslhost = $row->{'wcp_var_value'};
}
$sth->finish;
}
sub check_valueadd {
my $user=$_[0];
my $page=$_[1];
my $statement = qq~SELECT value_p$page as page FROM valueadd WHERE CK_usr_cod="$user"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if(my $row = $sth->fetchrow_hashref()) {
my $success = $row->{'page'};
return "$success";
} else {
return "N";
}
$sth->finish;
}
sub check_connection {
my $dbhost = $_[0];
my $database = $_[1];
my $dbusername = $_[2];
my $dbuserpasswd = $_[3];
#$database="wcp4";
my $dsn_c = "DBI:mysql:database=$database;host=$dbhost";
my $dbh_c = DBI->connect($dsn_c, $dbusername, $dbuserpasswd);
if ($DBI::state) { return "false";
} else {
$dbh_c->disconnect;
return "ture";
}
}
sub salt {
local @a = ('A'..'Z','a'..'z','0'..'9', '.', '/');
return join('', @a[int(rand(64)), int(rand(64))]);
}
##############################
#
# PAGES
#
##############################
sub page_1 {
my $menu_statement = qq~SELECT * FROM menu WHERE menu_page > 1 ORDER BY menu_page~;
my $menu_sth = $dbh->prepare($menu_statement) || error('db_prepare',$dbh->errstr);
$menu_sth->execute || error('db_execute',$dbh->errstr);
my $count_i = 1;
while (my $menu_row = $menu_sth->fetchrow_hashref) {
my $menu_item = "";
if ($lang eq "big5") {
$menu_item=$menu_row->{'menu_big5'};
} elsif ($lang eq "gb") {
$menu_item=$menu_row->{'menu_gb'};
} else {
$menu_item=$menu_row->{'menu_en'};
}
print qq~
<!--IndexMenu $count_i-->
<table border="0" cellpadding="0" cellspacing="0">
<tr><td><span class="indexmenu_title$count_i indexmenu_title">$menu_item</span></td></tr></table>
<div class="indexmenu_table$count_i indexmenu_table">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td>
<div>~;
my $smenu_statement = qq~SELECT * FROM submenu WHERE CK_menu_cod=$menu_row->{'menu_page'} ORDER BY smenu_order ASC ~;
my $smenu_sth = $dbh->prepare($smenu_statement) || error('db_prepare',$dbh->errstr);
$smenu_sth->execute || error('db_execute',$dbh->errstr);
#my $count_j = 1;
my $row_number=$smenu_sth->rows;
while (my $smenu_row = $smenu_sth->fetchrow_hashref) {
#if($count_j eq "1") { print "<tr>\n"; }
my $smenu_item = "";
if ($lang eq "big5") {
$smenu_item=$smenu_row->{'smenu_big5'};
} elsif ($lang eq "gb") {
$smenu_item=$smenu_row->{'smenu_gb'};
} else {
$smenu_item=$smenu_row->{'smenu_en'};
}
if ($smenu_row->{'smenu_page'} >= 700) {
if($user_reseller eq "1"){
print qq~<div class="indexmenu_tablemargin"><ul><li><a href="/?p=$smenu_row->{'smenu_page'}&lang=$lang">$smenu_item</a></li></ul></div>\n~;
} else {
if (($smenu_row->{'smenu_page'} eq 700) || ($smenu_row->{'smenu_page'} eq 701)) {
print qq~<div class="indexmenu_tablemargin"><ul><li><a href="/?p=$smenu_row->{'smenu_page'}&lang=$lang">$smenu_item</a></li></ul></div>\n~;
}
}
} elsif($smenu_row->{'smenu_page'} == 505) {
if($user_reseller eq "1"){
print qq~<div class="indexmenu_tablemargin"><ul><li><a href="/?p=$smenu_row->{'smenu_page'}&lang=$lang">$smenu_item</a></li></ul></div>\n~;
}
} else {
print qq~<div class="indexmenu_tablemargin"><ul><li><a href="/?p=$smenu_row->{'smenu_page'}&lang=$lang">$smenu_item</a></li></ul></div>\n~;
}
#if($count_j eq "4") {
# print "</tr>\n";
# $count_j = 0;
#}
#if($row_number eq "1") { print "</tr>\n"; };
#$row_number--;
#$count_j++;
}
print qq~</div>
</td></tr>
</table>
</div>
~;
$count_i++;
}
}
sub page_2 {
my $lang_txt2=&lang_txt(2);
$lang_txt2 =~ s/\$lang/$lang/ge;
print $lang_txt2;
}
sub page_3 {
my $lang_txt9=&lang_txt(9);
$lang_txt9 =~ s/\$lang/$lang/ge;
print $lang_txt9;
}
sub page_4 {
my $lang_txt10=&lang_txt(10);
$lang_txt10 =~ s/\$lang/$lang/ge;
print $lang_txt10;
}
sub page_5 {
if($user_reseller eq "1"){
my $lang_txt11=&lang_txt(11);
$lang_txt11 =~ s/\$lang/$lang/ge;
print $lang_txt11;
} else {
my $lang_txt104=&lang_txt(104);
$lang_txt104 =~ s/\$lang/$lang/ge;
print $lang_txt104;
}
}
sub page_6 {
my $lang_txt12=&lang_txt(12);
$lang_txt12 =~ s/\$lang/$lang/ge;
print $lang_txt12;
}
sub page_7 {
my $lang_txt13=&lang_txt(13);
$lang_txt13 =~ s/\$lang/$lang/ge;
if($user_reseller eq "1"){
my $lang_txt76=&lang_txt(76);
$lang_txt76 =~ s/\$lang/$lang/ge;
$lang_txt13 =~ s/\$clink_info/$lang_txt76/ge;
} else {
my $temp_info=" ";
$lang_txt13=~ s/\$clink_info/$temp_info/ge;
}
print $lang_txt13;
}
sub page_100 {
print qq{
<br>
<table width="550" align="center">
<tr><td>
<font face=arial size=2>
<font size=4><b>404 - File Not Found</b></font><br><p>
I am sorry, but the page you tried to access on our website does not exist.
If you feel you have reached this error, please <a href="mailto:$res_info_email">e-mail us</a> and we will investigate.</font><br>
</td></tr></table>
<br><br><br><br><br><br><br>
};
}
sub page_101 {
print qq{
<br><br><div align="center" class="font">Logout</div><p><br><br><br>
};
}
sub page_200 {
my $lang8=&lang(8);
my $lang9=&lang(9);
my $lang11=&lang(11); #ON
my $lang12=&lang(12); #OFF
my $lang13=&lang(13); #Jan
my $lang14=&lang(14); #Feb
my $lang15=&lang(15); #Mar
my $lang16=&lang(16); #Apr
my $lang17=&lang(17); #May
my $lang18=&lang(18); #Jun
my $lang19=&lang(19); #Jul
my $lang20=&lang(20); #Aug
my $lang21=&lang(21); #Sep
my $lang22=&lang(22); #Oct
my $lang23=&lang(23); #Nov
my $lang24=&lang(24); #Dec
my $lang_txt3=&lang_txt(3);
#Website Data
&checkquota_zfs($>); # provide: $DiskQuota, $DiskUsage
$DiskFree=$DiskQuota-$DiskUsage;
if ($DiskQuota <= 0) { $DiskRate=0;} else {
$DiskRate=int($DiskUsage/$DiskQuota*100);
}
#Email Account & Space
&checkemailoption($user_domain);
if ($eop_option eq "B") {
$eop_option_flag=$lang8;
$eop_free=$eop_limit-$eop_used . " MB";
if($eop_used==0) { $eop_rate="0%"; } else {
$eop_rate=int($eop_used/$eop_limit*100)."%";
}
} else {
$eop_option_flag=$lang9;
$eop_limit="N/A";
$eop_used="N/A";
$eop_free="N/A";
$eop_rate="N/A";
}
&checkemailaccount($user_domain);
if ($ema_maxpop<1) {$ema_rate_pop=0;} else {
$ema_rate_pop=int($ema_pop/$ema_maxpop*100);
}
#MySQL
&checkmysql($userid); # provide: $mysql_usage, $mysql_number, $user_mysql_free, $user_mysql_rate
#Subdomain
my $subdomain_file=$subdomain_dir."/".$user_domain;
my $used_subdomain = "0";
if ( -f $subdomain_file) {
$used_subdomain = `cat $subdomain_file | wc -l`;
}
$user_subdomain_free=$user_subdomain-$used_subdomain;
if ($user_subdomain==0) {$user_subdomain_rate=0;} else {
$user_subdomain_rate=int($used_subdomain/$user_subdomain*100);
}
#Extra Ftp
&checkftpusage($>); # provide: $FTPAccountFree, $FTPAccountRate
#Catch Smtp
$catchsmtp=&checkcatchsmtp($user_domain);
if ( $catchsmtp eq "ON") {
$catch_smtp_onoff = "<font color=\"#008000\">$lang11</font>";
} else {
$catch_smtp_onoff = "<font color=\"#FF0000\">$lang12</font>";
}
#Smtp 25 & 2620
if($hostname =~ /^mars/i) {
$smtp_25_onoff = "<font color=\"#FF0000\">$lang12</font>";
$smtp_2620_onoff = "<font color=\"#FF0000\">$lang12</font>";
} else {
if ( &portscan("smtp.$user_domain","25") eq "UP") {
$smtp_25_onoff = "<font color=\"#008000\">$lang11</font>";
} else {
$smtp_25_onoff = "<font color=\"#FF0000\">$lang12</font>";
}
if ( &check_global_smtp("$user_domain") eq "UP") {
$smtp_2620_onoff = "<font color=\"#008000\">$lang11</font>";
} else {
$smtp_2620_onoff = "<font color=\"#FF0000\">$lang12</font>";
}
}
#Anti-virus
if ( &check_anti_virus($user_domain) eq "ON") {
$email_virus_on_off = "<font color=\"#008000\">$lang11</font>";
} else {
$email_virus_on_off = "<font color=\"#FF0000\">$lang12</font>";
}
###### Excess Bandwidth Shutdown Setting
$act=$CGI_INPUT{'act'};
if ($act eq "ON") {
&update_shutdown($act,$userid);
$user_shutdown="ON";
} elsif ($act eq "OFF") {
&update_shutdown($act,$userid);
$user_shutdown="OFF";
}
###### prepare the year-month
($sec,$min,$hour,$day,$month,$year,$day2) = (localtime(time))[0,1,2,3,4,5,6];
$year += 1900;
@months = ("$lang13","$lang14","$lang15","$lang16","$lang17","$lang18","$lang19","$lang20","$lang21","$lang22","$lang23","$lang24");
my $months1 = $months[$month];
my $months2 = $months[$month-1];
my $months3 = $months[$month-2];
my $months4 = $months[$month-3];
my $mon1 = $month + 1; $year1=$year; if ($mon1 < 10) { $mon1 = "0$mon1"; };
my $mon2 = $month; if ($mon2 == 0){ $mon2=12; $year2=$year - 1;} else { $year2=$year}; if ($mon2 < 10) { $mon2 = "0$mon2"; };
my $mon3 = $month - 1; if ($mon3 < 1) { $mon3=$mon3 + 12; $year3=$year - 1;} else { $year3=$year}; if ($mon3 < 10) { $mon3 = "0$mon3"; };
#my $mon4 = $month - 2; if ($mon4 < 1) { $mon4=$mon4 + 12; $year4=$year - 1;} else { $year4=$year}; if ($mon4 < 10) { $mon4 = "0$mon4"; };
######
$temp1="$year1-$mon1";
my @ban_data1=&checkbandwidth($temp1,"CURRENT");
($ban1_used, $ban1_limit, $ban1_date) = @ban_data1;
if($day == "1") { $ban1_limit = $user_bandwidth; }
if($ban1_limit == "1") {
$ban1_limit = "-";
$ban1_used = "-";
$ban1_rate = "-";
} else {
$ban1_limit = ($ban1_limit * 1.024);
$ban1_used = sprintf("%d",$ban1_used / 1000 / 1.024);
$ban1_rate = sprintf("%d",$ban1_used / $ban1_limit * 100);
}
$temp2="$year1-$mon1-01";
my @ban_data2=&checkbandwidth($temp2,"1");
($ban2_used, $ban2_limit, $ban2_date) = @ban_data2;
if($ban2_limit == "1") {
$ban2_limit = "-";
$ban2_used = "-";
$ban2_rate = "-";
} else {
$ban2_limit = ($ban2_limit * 1.024);
$ban2_used = sprintf("%d",$ban2_used / 1000 / 1.024);
$ban2_rate = sprintf("%d",$ban2_used / $ban2_limit * 100);
}
$temp3="$year2-$mon2-01";
my @ban_data3=&checkbandwidth($temp3,"2");
($ban3_used, $ban3_limit, $ban3_date) = @ban_data3;
if($ban3_limit == "1") {
$ban3_limit = "-";
$ban3_used = "-";
$ban3_rate = "-";
} else {
$ban3_limit = ($ban3_limit * 1.024);
$ban3_used = sprintf("%d",$ban3_used / 1000 / 1.024);
$ban3_rate = sprintf("%d",$ban3_used / $ban3_limit * 100);
}
$temp4="$year3-$mon3-01";
my @ban_data4=&checkbandwidth($temp4,"3");
($ban4_used, $ban4_limit, $ban4_date) = @ban_data4;
if($ban4_limit == "1") {
$ban4_limit = "-";
$ban4_used = "-";
$ban4_rate = "-";
} else {
$ban4_limit = ($ban4_limit * 1.024);
$ban4_used = sprintf("%d",$ban4_used / 1000 / 1.024);
$ban4_rate = sprintf("%d",$ban4_used / $ban4_limit * 100);
}
if ($user_shutdown eq "ON") {
$user_shutdown_on_off = "<input name='act' type='radio' value='ON' onClick='this.form.submit();' checked> $lang11 <input name='act' type='radio' value='OFF' onClick='this.form.submit();'> $lang12";
} else {
$user_shutdown_on_off = "<input name='act' type='radio' value='ON' onClick='this.form.submit();'> $lang11 <input name='act' type='radio' value='OFF' onClick='this.form.submit();' checked> $lang12";
}
#Website Data
$lang_txt3 =~ s/\$DiskQuota/$DiskQuota/g;
$lang_txt3 =~ s/\$DiskUsage/$DiskUsage/g;
$lang_txt3 =~ s/\$DiskFree/$DiskFree/g;
$lang_txt3 =~ s/\$DiskRate/$DiskRate/g;
#Email Account
$lang_txt3 =~ s/\$ema_maxpop/$ema_maxpop/g;
$lang_txt3 =~ s/\$ema_pop/$ema_pop/g;
$lang_txt3 =~ s/\$ema_free_pop/$ema_free_pop/g;
$lang_txt3 =~ s/\$ema_rate_pop/$ema_rate_pop/g;
#Email Space
$lang_txt3 =~ s/\$eop_option_flag/$eop_option_flag/g;
$lang_txt3 =~ s/\$eop_limit/$eop_limit/g;
$lang_txt3 =~ s/\$eop_used/$eop_used/g;
$lang_txt3 =~ s/\$eop_free/$eop_free/g;
$lang_txt3 =~ s/\$eop_rate/$eop_rate/g;
#mySQL Database
$lang_txt3 =~ s/\$user_mysqlspace/$user_mysqlspace/g;
$lang_txt3 =~ s/\$mysql_usage/$mysql_usage/g;
$lang_txt3 =~ s/\$mysql_number/$mysql_number/g;
$lang_txt3 =~ s/\$user_mysql_free/$user_mysql_free/g;
$lang_txt3 =~ s/\$user_mysql_rate/$user_mysql_rate/g;
$lang_txt3 =~ s/\$user_mysql/$user_mysql/g;
#Subdomain
$lang_txt3 =~ s/\$used_subdomain/$used_subdomain/g;
$lang_txt3 =~ s/\$user_subdomain_free/$user_subdomain_free/g;
$lang_txt3 =~ s/\$user_subdomain_rate/$user_subdomain_rate/g;
$lang_txt3 =~ s/\$user_subdomain/$user_subdomain/g;
#Extra FTP Accounts
$lang_txt3 =~ s/\$user_extraftp/$user_extraftp/g;
$lang_txt3 =~ s/\$FTPAccountFree/$FTPAccountFree/g;
$lang_txt3 =~ s/\$FTPAccountRate/$FTPAccountRate/g;
$lang_txt3 =~ s/\$FTPAccount/$FTPAccount/g;
#Email Advanced Feature
$lang_txt3 =~ s/\$catch_smtp_onoff/$catch_smtp_onoff/g;
$lang_txt3 =~ s/\$smtp_25_onoff/$smtp_25_onoff/g;
$lang_txt3 =~ s/\$smtp_2620_onoff/$smtp_2620_onoff/g;
$lang_txt3 =~ s/\$email_virus_on_off/$email_virus_on_off/g;
#Bandwidth
$lang_txt3 =~ s/\$months4/$months4/g;
$lang_txt3 =~ s/\$months3/$months3/g;
$lang_txt3 =~ s/\$months2/$months2/g;
$lang_txt3 =~ s/\$months1/$months1/g;
$lang_txt3 =~ s/\$ban4_limit/$ban4_limit/g;
$lang_txt3 =~ s/\$ban3_limit/$ban3_limit/g;
$lang_txt3 =~ s/\$ban2_limit/$ban2_limit/g;
$lang_txt3 =~ s/\$ban1_limit/$ban1_limit/g;
$lang_txt3 =~ s/\$ban4_used/$ban4_used/g;
$lang_txt3 =~ s/\$ban3_used/$ban3_used/g;
$lang_txt3 =~ s/\$ban2_used/$ban2_used/g;
$lang_txt3 =~ s/\$ban1_used/$ban1_used/g;
$lang_txt3 =~ s/\$ban4_rate/$ban4_rate/g;
$lang_txt3 =~ s/\$ban3_rate/$ban3_rate/g;
$lang_txt3 =~ s/\$ban2_rate/$ban2_rate/g;
$lang_txt3 =~ s/\$ban1_rate/$ban1_rate/g;
$lang_txt3 =~ s/\$user_shutdown_on_off/$user_shutdown_on_off/g;
$lang_txt3 =~ s/\$lang/$lang/ge;
print $lang_txt3;
}
sub page_201 {
$result="";
$act =$CGI_INPUT{'act'};
$act1=$CGI_INPUT{'act1'};
my $lang25=&lang(25);
my $lang26=&lang(26);
my $lang27=&lang(27);
my $lang28=&lang(28);
my $lang29=&lang(29);
my $lang30=&lang(30);
my $lang31=&lang(31);
my $lang32=&lang(32);
if ($act eq "ftp_pass"){
if ($act1 eq "change") {
$err_msg ="";
if (($CGI_INPUT{'new_pw1'} eq "") || ($CGI_INPUT{'old_pw'} eq "") || ($CGI_INPUT{'new_pw2'} eq "")) {$err_msg .="<center>$lang25</center>";}
if ($CGI_INPUT{'new_pw1'} =~ /$userid/){$err_msg .="<center>$lang26</center>";}
if ($CGI_INPUT{'new_pw1'} =~ /\s/) {$err_msg .="<center>$lang27</center>";}
if ($CGI_INPUT{'new_pw1'} ne $CGI_INPUT{'new_pw2'}) {$err_msg .="<center>$lang28</center>";}
if ($err_msg eq "") {
$old_pw = "$CGI_INPUT{'old_pw'}";
$new_pw = "$CGI_INPUT{'new_pw1'}";
$result=&changepasswd($userid,$old_pw,$new_pw);
if ($result eq "FAIL") {
$err_msg ="<center>$lang29</center>";
}
}
}
print qq{
<div><a href="/?p=201&act=ftp_pass&lang=$lang">$lang30</a><span class="parti">|</span><a href="/?p=201&act=wcp_pass&lang=$lang">$lang31</a></div>
<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td>
};
if ($result eq "OK") {
print qq{
<br><br>
<div align="center" class="font"><strong><font color="#008000">$lang30 $lang32</font></strong></div>
};
} else {
my $lang_txt5=&lang_txt(5);
$lang_txt5 =~ s/\$lang/$lang/ge;
$lang_txt5 =~ s/\$err_msg/$err_msg/g;
$lang_txt5 =~ s/\$userid/$userid/ge;
print $lang_txt5;
}
print qq{
</td>
</tr>
</table>
};
} elsif ($act eq "wcp_pass") {
if ($act1 eq "change") {
$err_msg ="";
if (($CGI_INPUT{'new_pw1'} eq "") || ($CGI_INPUT{'new_pw2'} eq "")) {$err_msg .="<center>$lang25</center>";}
if ($CGI_INPUT{'new_pw1'} =~ /$userid/){$err_msg .="<center>$lang26</center>";}
if ($CGI_INPUT{'new_pw1'} =~ /\s/) {$err_msg .="<center>$lang27.</center>";}
if ($CGI_INPUT{'new_pw1'} ne $CGI_INPUT{'new_pw2'}) {$err_msg .="<center>$lang28</center>";}
if ($err_msg eq "") {
$old_pw = "$CGI_INPUT{'old_pw'}";
$new_pw = "$CGI_INPUT{'new_pw1'}";
$result=&changehtpasswd($userid,$new_pw,"../.htpasswd");
if ($result eq "FAIL") {
$err_msg ="<center>$lang29</center>";
}
}
}
print qq{
<div><a href="/?p=201&act=ftp_pass&lang=$lang">$lang30</a><span class="parti">|</span><a href="/?p=201&act=wcp_pass&lang=$lang">$lang31</a></div>
<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td>
};
if ($result eq "OK") {
print qq{
<br><br>
<div align="center" class="font"><strong><font color="#008000">$lang31 $lang32</font></strong></div>
};
} else {
my $lang_txt6=&lang_txt(6);
$lang_txt6 =~ s/\$lang/$lang/ge;
$lang_txt6 =~ s/\$err_msg/$err_msg/g;
$lang_txt6 =~ s/\$userid/$userid/ge;
print $lang_txt6;
}
print "
</td>
</tr>
</table>
";
} else {
my $lang_txt4=&lang_txt(4);
$lang_txt4 =~ s/\$lang/$lang/ge;
print $lang_txt4;
} # end if
}
sub page_202 {
# ACTs:
# 1. Definitions
# 2. Perl_Modules
# 3. PHP_Info
# 4. Server_Info (Default)
$act=$CGI_INPUT{'act'};
my $lang35=&lang(35);
my $lang36=&lang(36);
my $lang37=&lang(37);
my $lang38=&lang(38);
my $lang39=&lang(39);
my $lang40=&lang(40);
my $lang41=&lang(41);
my $lang42=&lang(42);
my $lang43=&lang(43);
my $lang44=&lang(44);
my $text7=&lang_txt(7);
if ($act eq "Definitions") {
print qq{
<div><a href="/?p=202&lang=$lang">$lang35</a><span class="parti">|</span><a href="/?p=202&act=Perl_Modules&lang=$lang">$lang36</a><span class="parti">|</span><a href="/?p=202&act=PHP_Info&lang=$lang">$lang37</a></div>
<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td>
<table width="95%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td class="font">
$text7
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
};
} elsif ($act eq "Perl_Modules") {
print qq{
<div><a href="/?p=202&lang=$lang">$lang35</a><span class="parti">|</span><a href="/?p=202&act=Perl_Modules&lang=$lang">$lang36</a><span class="parti">|</span><a href="/?p=202&act=PHP_Info&lang=$lang">$lang37</a></div>
<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td>
};
&printperlmodules;
print qq{
</td>
</tr>
</table>
};
} elsif ($act eq "PHP_Info") {
print qq{
<div><a href="/?p=202&lang=$lang">$lang35</a><span class="parti">|</span><a href="/?p=202&act=Perl_Modules&lang=$lang">$lang36</a><span class="parti">|</span><a href="/?p=202&act=PHP_Info&lang=$lang">$lang37</a></div>
<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td>
};
&printphpmodules;
print qq{
</td>
</tr>
</table>
};
} else {
my $os_ver = "N/A";
my $apache_ver = "N/A";
my $perl_ver = "N/A";
my $php_ver = "N/A";
my $mysql_ver = "N/A";
if(`uname -s` =~ m/sunos/i) {
if(`uname -r` =~ /(\d+)\.(\d+)/) { $os_ver = "SUN Solaris $2"; }
} else {
$os_ver = `uname -rs`;
}
if(`/usr/local/apache/bin/httpd -v` =~ /Apache\/(\d+)\.(\d+)\.(\d+)/) { $apache_ver = "$1.$2.$3 (Unix)"; }
if(`/usr/bin/perl -v` =~ /v(\d+)\.(\d+)\.(\d+)/) { $perl_ver = "$1.$2.$3"; }
if(`/usr/local/bin/php -v` =~ /PHP (\d+)\.(\d+)\.(\d+)/) { $php_ver = "$1.$2.$3"; }
if(`/usr/local/mysql/bin/mysql -V` =~ /Distrib (\d+)\.(\d+)\.(\d+)/) { $mysql_ver = "$1.$2.$3"; }
print qq{
<div><a href="/?p=202&lang=$lang">$lang35</a><span class="parti">|</span><a href="/?p=202&act=Perl_Modules&lang=$lang">$lang36</a><span class="parti">|</span><a href="/?p=202&act=PHP_Info&lang=$lang">$lang37</a></div>
<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td>
<table align="center" width="98%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td width="70%" class="font">
<img src="images/server.jpg" alt="" width="200" height="68" border="0">
<table border="0" cellspacing="0" width="100%">
<tr>
<td width="100%" colspan="2" style="border-bottom: 2px solid" class="font"><b>$lang38($hostname)</b></td>
</tr>
<tr>
<td width="50%" style="border-bottom: 1px solid" class="font">$lang42</td>
<td width="50%" style="border-bottom: 1px solid" class="font">$os_ver</td>
</tr>
<tr>
<td width="50%" style="border-bottom: 1px solid" class="font">Apache $lang39</td>
<td width="50%" style="border-bottom: 1px solid" class="font">$apache_ver</td>
</tr>
<tr>
<td width="50%" style="border-bottom: 1px solid" class="font">PERL $lang39</td>
<td width="50%" style="border-bottom: 1px solid" class="font">$perl_ver</td>
</tr>
<tr>
<td width="50%" style="border-bottom: 1px solid" class="font">PHP $lang39</td>
<td width="50%" style="border-bottom: 1px solid" class="font">$php_ver</td>
</tr>
<tr>
<td width="50%" style="border-bottom: 1px solid" class="font">MySQL $lang39</td>
<td width="50%" style="border-bottom: 1px solid" class="font">$mysql_ver</td>
</tr>
<tr>
<td width="50%" valign="top" class="font" style="border-bottom: 1px solid">$lang40</td>
<td width="50%" style="border-bottom: 1px solid" class="font">/usr/bin/perl</td>
</tr>
<tr>
<td width="50%" style="border-bottom: 1px solid" class="font">$lang41</td>
<td width="50%" style="border-bottom: 1px solid" class="font">/usr/lib/sendmail</td>
</tr>
</table>
</td>
<td width="30%" align="center" valign="bottom">
<table width="140" border="1" cellspacing="1" cellpadding="1" bordercolor="#000000">
<tr>
<td colspan="2" align="center" class="font"><b>$lang43 $hostname</b></td>
</tr>
<tr>
<td align="center"><img src=/images/up.gif></td>
<td class="font"><b> <a href="?p=202&act=Definitions&lang=$lang#WEB" style="text-decoration: none;">Web</a></b></td>
</tr>
<tr>
<td><center><img src=/images/up.gif></center></td>
<td class="font"><b> <a href="?p=202&act=Definitions&lang=$lang#FTP" style="text-decoration: none;">FTP</a></b></td>
</tr>
<tr bgcolor="#F0F0F0">
<td><center><img src=/images/up.gif></center></td>
<td class="font"><b> <a href="?p=202&act=Definitions&lang=$lang#POP3" style="text-decoration: none;">POP3</a></b></td>
</tr>
<tr bgcolor="#F0F0F0">
<td><center><img src=/images/up.gif></center></td>
<td class="font"><b> <a href="?p=202&act=Definitions&lang=$lang#IMAP4" style="text-decoration: none;">IMAP4</a></b></td>
</tr>
<tr>
<td><center><img src=/images/up.gif></center></td>
<td class="font"><b> <a href="?p=202&act=Definitions&lang=$lang#SMTP" style="text-decoration: none;">SMTP</a></td>
</tr>
<tr bgcolor="#F0F0F0">
<td><center><img src=/images/up.gif></center></td>
<td class="font"><b> <a href="?p=202&act=Definitions&lang=$lang#Telnet" style="text-decoration: none;">Telnet</a></b></td>
</tr>
<tr>
<td><center><img src=/images/up.gif></center></td>
<td class="font"><b> <a href="?p=202&act=Definitions&lang=$lang#SSL" style="text-decoration: none;">SSL</a></b></td>
</tr>
<tr bgcolor="#F0F0F0">
<td><center><img src=/images/up.gif></center></td>
<td class="font"><b> <a href="?p=202&act=Definitions&lang=$lang#MySQL" style="text-decoration: none;">MySQL</a></b></td>
</tr>
<tr>
<td><center><img src=/images/up.gif></center></td>
<td class="font"><b> <a href="?p=202&act=Definitions&lang=$lang#RAID" style="text-decoration: none;">RAID</a></b></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
};
}
}
sub page_203 {
$act=$CGI_INPUT{'act'};
my $lang33=&lang(33);
my $lang34=&lang(34);
my $lang_txt8=&lang_txt(8);
if ($act eq "UpdateNow") {
if (&update_pref($CGI_INPUT{'pref_lang'},$CGI_INPUT{'pref_empd'},$CGI_INPUT{'pref_firstpage'},$CGI_INPUT{'pref_mypd'},$CGI_INPUT{'pref_email'})) {
print "<script>location.href='/?p=203&lang=$CGI_INPUT{'pref_lang'}';alert('$lang33');</script>";
} else {
print "<script>location.href='/?p=203&lang=$lang';alert('$lang34');</script>";
}
} else {
if ($user_lang eq "big5") {
$selected_big5=" selected";
} elsif ($user_lang eq "gb") {
$selected_gb=" selected";
} else {
$selected_en=" selected";
}
if ($user_firstpage eq "500") {
$checked_500=" checked";
} elsif ($user_firstpage eq "301") {
$checked_301=" checked";
} elsif ($user_firstpage eq "300") {
$checked_300=" checked";
} elsif ($user_firstpage eq "202") {
$checked_202=" checked";
} elsif ($user_firstpage eq "200") {
$checked_200=" checked";
} else {
$checked_1=" checked";
}
$lang_txt8 =~ s/\$lang/$lang/ge;
$lang_txt8 =~ s/\$selected_en/$selected_en/g;
$lang_txt8 =~ s/\$selected_big5/$selected_big5/g;
$lang_txt8 =~ s/\$selected_gb/$selected_gb/g;
$lang_txt8 =~ s/\$user_empd/$user_empd/g;
$lang_txt8 =~ s/\$user_mypd/$user_mypd/g;
$lang_txt8 =~ s/\$usr_email/$usr_email/g;
$lang_txt8 =~ s/\$checked_500/$checked_500/g;
$lang_txt8 =~ s/\$checked_301/$checked_301/g;
$lang_txt8 =~ s/\$checked_300/$checked_300/g;
$lang_txt8 =~ s/\$checked_202/$checked_202/g;
$lang_txt8 =~ s/\$checked_200/$checked_200/g;
$lang_txt8 =~ s/\$checked_1/$checked_1/g;
print $lang_txt8;
}#end $act
}
sub page_300 {
my $lang_txt14=&lang_txt(14);
print $lang_txt14;
}
sub page_301 {
my $lang_txt15=&lang_txt(15);
$lang_txt15 =~ s/\$user_mysql/$user_mysql/ge;
$lang_txt15 =~ s/\$userid/$userid/ge;
$lang_txt15 =~ s/\$user_mypd/$user_mypd/ge;
print $lang_txt15;
}
sub page_302 {
my $php_ver = "N/A";
my $lang_txt16=&lang_txt(16);
if(`/usr/local/bin/php -v` =~ /PHP (\d+)\.(\d+)\.(\d+)/) { $php_ver = "$1.$2.$3"; }
$lang_txt16 =~ s/\$lang/$lang/ge;
$lang_txt16 =~ s/\$php_ver/$php_ver/ge;
print $lang_txt16;
}
sub page_303 {
my $perl_ver = "N/A";
my $lang_txt17=&lang_txt(17);
if(`/usr/bin/perl -v` =~ /v(\d+)\.(\d+)\.(\d+)/) { $perl_ver = "$1.$2.$3"; }
$lang_txt17 =~ s/\$lang/$lang/ge;
$lang_txt17 =~ s/\$perl_ver/$perl_ver/ge;
print $lang_txt17;
}
sub page_304 {
$act=$CGI_INPUT{'act'};
if ($act eq "Overview") {
my $lang_txt102=&lang_txt(102);
$lang_txt102 =~ s/\$lang/$lang/ge;
print $lang_txt102;
} else {
my $stat_lang="tw";
my $lang_txt103=&lang_txt(103);
if($lang eq "en") {
$stat_lang="en";
} elsif($lang eq "gb") {
$stat_lang="cn";
} else {
$stat_lang="tw";
}
$lang_txt103 =~ s/\$lang/$lang/ge;
$lang_txt103 =~ s/\$stat_lang/$stat_lang/ge;
print $lang_txt103;
}
}
sub page_305 {
$act =$CGI_INPUT{'act'};
$act1=$CGI_INPUT{'act1'};
my $lang_txt18=&lang_txt(18);
my $lang_txt19=&lang_txt(19);
my $lang_txt20=&lang_txt(20);
my $lang_txt21=&lang_txt(21);
my $lang45=&lang(45);
my $lang46=&lang(46);
my $lang47=&lang(47);
my $lang48=&lang(48);
my $lang49=&lang(49);
my $lang50=&lang(50);
my $lang51=&lang(51);
my $lang52=&lang(52);
my $lang53=&lang(53);
my $lang54=&lang(54);
my $lang55=&lang(55);
my $lang56=&lang(56);
my $lang57=&lang(57);
my $lang58=&lang(58);
my $lang59=&lang(59);
my $lang60=&lang(60);
my $lang63=&lang(63);
$subdomain_file=$subdomain_dir."/".$user_domain;
my $used_subdomain = `cat $subdomain_file | wc -l`;
$user_subdomain_free=$user_subdomain-$used_subdomain;
if ($act eq "Overview") {
$lang_txt19 =~ s/\$lang/$lang/ge;
$lang_txt19 =~ s/\$user_domain/$user_domain/ge;
print $lang_txt19;
} else {
if( -f $subdomain_file) {
$subdomain_edit_str = "";
if ($act1 eq "AddNow") {
open(SUB,"<$subdomain_file") || &error("$lang47");
@subdomain = <SUB>;
close(SUB);
$err_msg ="";
if($user_subdomain_free<=0) {$err_msg .= $lang48;}
if($CGI_INPUT{'subdomain'} =~ /:/){$err_msg .= $lang49 . " \":\" " . $lang50;}
if($CGI_INPUT{'subdomain'} =~ /\./){$err_msg .= $lang49 . " \".\" " . $lang50;}
if($CGI_INPUT{'subdomain'} eq "www"){$err_msg .= $lang49 . " \"www\" " . $lang50;}
if($CGI_INPUT{'subdomain'} =~ /\s/){$err_msg .= $lang49 . " spaces " . $lang50;}
if($CGI_INPUT{'subdomain'} eq ""){$err_msg .="<center>$lang53</center>";}
if($CGI_INPUT{'docroot'} eq ""){$err_msg .="<center>$lang54</center>";}
if(@match = grep(/^$CGI_INPUT{'subdomain'}:/, @subdomain)){$err_msg .="<center>$CGI_INPUT{'subdomain'} $lang52</center>";}
if($CGI_INPUT{'docroot'} =~ /:/){$err_msg .= $lang49 . " \":\" " . $lang51;}
if($CGI_INPUT{'docroot'} =~ /\s/){$err_msg .= $lang49 . " spaces " . $lang51;}
if($CGI_INPUT{'docroot'} =~ /\.\./){$err_msg .= $lang49 . " \"..\" " . $lang51;}
if($CGI_INPUT{'docroot'} =~ /^\/public_html/) {} else {$err_msg .= "<center>$lang55</center>";}
if ($err_msg eq "") {
$result=&addsubdomain($CGI_INPUT{'subdomain'},$CGI_INPUT{'docroot'});
if ($result eq "FAIL") {
$err_msg ="<center>$lang56</center>";
} else {
$err_msg="<font color=\"#008000\">$lang59 <strong>$CGI_INPUT{'subdomain'}</strong> $lang57</font>";
}
}
} elsif ($act1 eq "DeleteNow") {
open(SUB,"<$subdomain_file") || &error("$lang47");
@subdomain = <SUB>;
close(SUB);
$err_msg ="";
if($CGI_INPUT{'subdomain'} eq ""){$err_msg .="<center>$lang53</center>";}
if(@match = grep(/^$CGI_INPUT{'subdomain'}\./, @subdomain)){} else {$err_msg .="<center>$lang59, $CGI_INPUT{'subdomain'} $lang60</center>";}
if ($err_msg eq "") {
$result=&deletesubdomain($CGI_INPUT{'subdomain'});
if ($result eq "FAIL") {
$err_msg ="<center>$lang56</center>";
} else {
$err_msg="<font color=\"#008000\">$lang59 <strong>$CGI_INPUT{'subdomain'}</strong> $lang58</font>";
}
}
} elsif ($act1 eq "Edit") {
$e_subdomain=$CGI_INPUT{'subdomain'};
open (DB, "<$subdomain_file");
@db_lines1= <DB>;
close DB;
@db_lines = grep(/$e_subdomain.$user_domain/, @db_lines1);
$db_line_str = @db_lines[0];
chomp $db_line_str;
@db_data = split (/\s/, $db_line_str);
$subdomain = $db_data[0];
$docroot = $db_data[1];
if ($docroot =~ /\/home\/$userid\/(.*)/) {$docroot2='/' . $1};
$lang_txt20 =~ s/\$lang/$lang/ge;
$lang_txt20 =~ s/\$e_subdomain/$e_subdomain/ge;
$lang_txt20 =~ s/\$user_domain/$user_domain/ge;
$lang_txt20 =~ s/\$docroot2/$docroot2/ge;
$subdomain_edit_str = $lang_txt20;
} elsif ($act1 eq "EditNow") {
open(SUB,"<$subdomain_file") || &error("$lang47");
@subdomain = <SUB>;
close(SUB);
$err_msg ="";
if($CGI_INPUT{'docroot'} eq ""){$err_msg .="<center>$lang54</center>";}
if($CGI_INPUT{'docroot'} =~ /:/){$err_msg .= $lang49 . " : " . $lang51;}
if($CGI_INPUT{'docroot'} =~ /\s/){$err_msg .= $lang49 . " spaces " . $lang51;}
if($CGI_INPUT{'docroot'} =~ /\.\./){$err_msg .= $lang49 . " \"..\" " . $lang51;}
if($CGI_INPUT{'docroot'} =~ /^\/public_html/) {} else {$err_msg .="<center>$lang55</center>";}
if ($err_msg eq "") {
$result=&deletesubdomain($CGI_INPUT{'subdomain'});
if ($result eq "FAIL") {
$err_msg ="<center>$lang56</center>";
} else {
$result=&addsubdomain($CGI_INPUT{'subdomain'},$CGI_INPUT{'docroot'});
if ($result eq "FAIL") {
$err_msg ="<center>$lang56</center>";
} else {
$err_msg="<font color=\"#008000\">$lang59 <strong>$CGI_INPUT{'subdomain'}</strong> $lang61</font>";
}
}
}
}
$existing_subdomain = "";
open (DB, "<$subdomain_file");
@db_lines1= <DB>;
close DB;
@db_lines = grep(/.$user_domain/, @db_lines1);
my $count2=0;
LINE: foreach $db_line (@db_lines) {
$db_line =~ /^#/ and next LINE;
$db_line =~ /^\s*$/ and next LINE;
chomp $db_line;
@db_data = split (/\s/, $db_line);
$subdomain = $db_data[0];
$docroot = $db_data[1];
if ($docroot =~ /\/home\/$userid\/public_html\/(.*)/) {$docroot1=$1};
if ($docroot =~ /\/home\/$userid\/(.*)/) {$docroot2=$1};
if ($subdomain =~ /(.*).$user_domain$s/) {$subdomain1=$1};
if ($count2=="0") { $trcolor="#EEEEEE";$count2=1;} else {$trcolor="#FFFFFF";$count2=0;};
$existing_subdomain .= qq|
<tr bgcolor="$trcolor">
<td><font face="Verdana,Arial,Helvetica" size="-2"> <a href="http://$subdomain" target="_blank"><strong>$subdomain1</strong>.$user_domain</a></font></td>
<td><font face="Verdana,Arial,Helvetica" size="-2">$docroot2</font></td>
<td align="right"><a href="?p=305&act1=Edit&subdomain=$subdomain1&lang=$lang"><img src="/images/admin.gif" alt="" width="20" height="20" border="0"></a></td>
<td><a href="?p=305&act1=DeleteNow&subdomain=$subdomain1&lang=$lang" onclick="return confirmLink(this, '$lang63: $subdomain')"><img src="/images/delete.gif" alt="" width="20" height="20" border="0"></a></td>
</tr>
|;
}
my $used_subdomain = `cat $subdomain_file | wc -l`;
$user_subdomain_free=$user_subdomain-$used_subdomain;
$lang_txt18 =~ s/\$lang/$lang/ge;
$lang_txt18 =~ s/\$user_domain/$user_domain/ge;
$lang_txt18 =~ s/\$user_subdomain_free/$user_subdomain_free/ge;
$lang_txt18 =~ s/\$used_subdomain/$used_subdomain/ge;
$lang_txt18 =~ s/\$user_subdomain/$user_subdomain/ge;
print $lang_txt18;
$lang_txt21 =~ s/\$err_msg/$err_msg/g;
$lang_txt21 =~ s/\$lang/$lang/ge;
$lang_txt21 =~ s/\$user_domain/$user_domain/ge;
$lang_txt21 =~ s/\$existing_subdomain/$existing_subdomain/ge;
$lang_txt21 =~ s/\$subdomain_edit_str/$subdomain_edit_str/ge;
print $lang_txt21;
} else {
if($user_subdomain ne "0") {
print $lang45;
} else {
print $lang46;
}
}
}
}
sub page_306 {
$act =$CGI_INPUT{'act'};
$act1=$CGI_INPUT{'act1'};
my $lang47=&lang(47);
my $lang62=&lang(62);
&checkftpusage($>); # provide: $FTPAccountFree, $FTPAccountRate
if ($act eq "Rules") {
my $lang_txt22=&lang_txt(22);
$lang_txt22 =~ s/\$lang/$lang/ge;
print $lang_txt22;
} elsif ($act eq "Directions") {
my $lang_txt23=&lang_txt(23);
$lang_txt23 =~ s/\$lang/$lang/ge;
$lang_txt23 =~ s/\$user_domain/$user_domain/ge;
print $lang_txt23;
} else {
my $lang_txt24=&lang_txt(24);
my $lang_txt25=&lang_txt(25);
my $lang_txt26=&lang_txt(26);
my $temp_str="";
my $lang49=&lang(49);
my $lang57=&lang(57);
my $lang58=&lang(58);
my $lang61=&lang(61);
my $lang64=&lang(64);
my $lang65=&lang(65);
my $lang66=&lang(66);
my $lang67=&lang(67);
my $lang68=&lang(68);
my $lang69=&lang(69);
my $lang70=&lang(70);
my $lang71=&lang(71);
my $lang72=&lang(72);
my $lang73=&lang(73);
my $lang74=&lang(74);
my $lang75=&lang(75);
my $lang76=&lang(76);
my $lang77=&lang(77);
my $lang78=&lang(78);
if($user_extraftp ne "0") {
if ($act1 eq "AddNow") {
open(HTPASS,"<$passwd_ftp") || &error("$lang47");
@htpasswd = <HTPASS>;
close(HTPASS);
$err_msg ="";
if($FTPAccountFree<=0) {$err_msg .="$lang64";}
if($CGI_INPUT{'Login'} =~ /:/){$err_msg .= $lang49 . " : " . $lang65;}
if($CGI_INPUT{'Login'} eq "$userid"){$err_msg .= $lang66;}
if($CGI_INPUT{'Login'} eq "root"){$err_msg .= $lang67;}
if($CGI_INPUT{'Login'} =~ /\s/){$err_msg .= $lang49 . " spaces " . $lang65;}
if($CGI_INPUT{'Login'} eq ""){$err_msg .= $lang68;}
if($CGI_INPUT{'Password'} eq ""){$err_msg .= $lang69;}
$lang70 =~ s/\$Login/$CGI_INPUT{'Login'}/ge;
if(@match = grep(/^$CGI_INPUT{'Login'}:/, @htpasswd)){$err_msg .= $lang70;}
if($CGI_INPUT{'RestrictedArea'} =~ /:/){$err_msg .= $lang49 . " : " . $lang71;}
if($CGI_INPUT{'RestrictedArea'} =~ /\s/){$err_msg .= $lang49 . " spaces " . $lang71;}
if($CGI_INPUT{'RestrictedArea'} =~ /\.\./){$err_msg .= $lang49 . " .. " . $lang71;}
if($CGI_INPUT{'RestrictedArea'} =~ /^\//) {} else {$err_msg .= $lang72;}
if ($err_msg eq "") {
$result=&addextraftp($CGI_INPUT{'Login'},$CGI_INPUT{'Password'},$CGI_INPUT{'RestrictedArea'});
if ($result eq "FAIL") {
$err_msg = $lang73;
}
}
} elsif ($act1 eq "EditNow") {
#### ExtraFTP Edit Action ####
#grep the uid
&checkuidgid;
if ($CGI_INPUT{'Delete'} eq "Delete") {
#########################Delete############################
open(DATA,"$passwd_ftp") || die $!;
@rowdata = <DATA>;
close(DATA);
@rowdata1 = grep(/:$uid:/, @rowdata);
if (@match = grep(/^$CGI_INPUT{'Login'}:/, @rowdata1)) {
if(@match = grep(/^$CGI_INPUT{'Login'}:/, @rowdata)){
$num_messages = @rowdata;
foreach ($j = 0;$j <= $num_messages -1;$j++) {
if ($rowdata[$j] =~ /^$CGI_INPUT{'Login'}:(.*)/) {
$row = $rowdata[$j];
chop($row);
($Login, $ftpPassword, $ftpuid, $ftpgid, $ftpComments, $ftpHome, $ftpShell) = split(/\s/, $row);
$rowdata[$j] = join("",);
next;
}
}
open(DATA,">$passwd_ftp") || die $!;
print DATA @rowdata;
close(DATA);
$temp_str .= "<br><div align=\"center\">$lang74 <b>$CGI_INPUT{'Login'}</b> $lang58</div>";
} else {
$lang75 =~ s/\$Login/$CGI_INPUT{'Login'}/ge;
$temp_str .= "<br><div align=\"center\">$lang75</div>";
}
} else {
$temp_str .= "<br><div align=\"center\">$lang76 <strong>$CGI_INPUT{'Login'}</strong>.</div>";
}
} elsif ($CGI_INPUT{'Update'} eq "Update") {
#########################Update############################
open(HTPASS,"<$passwd_ftp") || &error("$lang47");
@htpasswd1 = <HTPASS>;
close(HTPASS);
@htpasswd = grep(/:$uid:/, @htpasswd1);
if(@match = grep(/^$CGI_INPUT{'Login'}:/, @htpasswd)) {
LINE: foreach $db_line (@htpasswd) {
$db_line =~ /^#/ and next LINE;
$db_line =~ /^\s*$/ and next LINE;
chomp $db_line;
@db_data = split (/\:/, $db_line);
if ($db_line =~ /^$CGI_INPUT{'Login'}:/) {
$OldPassword = $db_data[1];
$RestrictedArea = $db_data[5];
if ($RestrictedArea =~ /^\/home\/$userid(.*)/) {$RestrictedArea1=$1};
}
}
$msg="";
if($CGI_INPUT{'Login'} =~ /:/) {$msg .= $lang49 . " \":\" " . $lang65;}
if($CGI_INPUT{'Login'} eq "$user_id") {$msg .= $lang66;}
if($CGI_INPUT{'Login'} eq "root") {$msg .= $lang67;}
if($CGI_INPUT{'Login'} =~ /\s/) {$msg .= $lang49 . " spaces " . $lang65;}
if($CGI_INPUT{'Login'} eq "") {$msg .= $lang68;}
$lang75 =~ s/\$Login/$CGI_INPUT{'Login'}/ge;
if(@match = grep(/^$CGI_INPUT{'Login'}:/, @htpasswd)){} else {$msg .= $lang75;}
if($CGI_INPUT{'Password'} eq "") {$msg .= $lang69;}
if($CGI_INPUT{'RestrictedArea'} =~ /:/) {$msg .= $lang49 . " : " . $lang71;}
if($CGI_INPUT{'RestrictedArea'} =~ /\s/){$msg .= $lang49 . " spaces " . $lang71;}
if($CGI_INPUT{'RestrictedArea'} =~ /\.\./){$msg .= $lang49 . " .. " . $lang71;}
if($CGI_INPUT{'RestrictedArea'} =~ /^\//) {} else {$msg .= $lang72;}
if ($msg eq "") {
if ($CGI_INPUT{'Password'} eq "$OldPassword") {
$password=$OldPassword;
} else {
$salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64];
$password = crypt($CGI_INPUT{'Password'},$salt);
}
open(DATA,"$passwd_ftp") || die $!;
@rowdata = <DATA>;
close(DATA);
$num_messages = @rowdata;
$Login=$CGI_INPUT{'Login'};
$myftpHome="/home/$userid$CGI_INPUT{'RestrictedArea'}";
foreach ($j = 0;$j <= $num_messages -1;$j++) {
if ($rowdata[$j] =~ /^$CGI_INPUT{'Login'}\:/) {
$row = $rowdata[$j];
chop($row);
($Login, $ftpPassword, $ftpuid, $ftpgid, $ftpComments, $ftpHome, $ftpShell) = split(/\:/, $row);
$rowdata[$j] = join(":", $CGI_INPUT{'Login'}, $password, $ftpuid, $ftpgid, $ftpComments, $myftpHome, $ftpShell);
$rowdata[$j] .= "\n";
next;
}
}
open(DATA,">$passwd_ftp") || die $!;
print DATA @rowdata;
close(DATA);
$err=`mkdir -p /home/$userid$CGI_INPUT{'RestrictedArea'}`;
if ($err == 0) { }
$temp_str .= "<br><br><div align=\"center\">$lang74 <b>$CGI_INPUT{'Login'}</b> $lang61</div>";
} else {
$temp_str .= qq|
<br><br>
<div align="center"><font color="#FF0000">$msg</font></div><p>
|;
}
} else {
$temp_str .= "<br><br><center>$lang76 $CGI_INPUT{'Login'}.</center>";
}
}
}
if ($result eq "OK") {
my $lang_txt27=&lang_txt(27);
$lang_txt27 =~ s/\$Login/$CGI_INPUT{'Login'}/ge;
$lang_txt27 =~ s/\$RestrictedArea/$CGI_INPUT{'RestrictedArea'}/ge;
$lang_txt27 =~ s/\$user_domain/$user_domain/ge;
$msg .= $lang_txt27;
}
###################################
#grep the uid
&checkuidgid;
$existing_extraftp = "";
open (DB, "<$passwd_ftp");
@db_lines1= <DB>;
close DB;
@db_lines = grep(/:$uid:/, @db_lines1);
my $count2=0;
LINE: foreach $db_line (@db_lines) {
$db_line =~ /^#/ and next LINE;
$db_line =~ /^\s*$/ and next LINE;
chomp $db_line;
@db_data = split (/\:/, $db_line);
$login = $db_data[0];
$RestrictedArea = $db_data[5];
if ($RestrictedArea =~ /^\/home\/$userid(.*)/) {$RestrictedArea1=$1};
if ($RestrictedArea1 eq "") {$RestrictedArea1="/"};
if ($count2=="0") { $trcolor="#EEEEEE";$count2=1;} else {$trcolor="#FFFFFF";$count2=0;};
$existing_extraftp .= qq|
<tr bgcolor="$trcolor">
<td><font face="Verdana,Arial,Helvetica"> $login</font></td>
<td><font face="Verdana,Arial,Helvetica">$RestrictedArea1</font></td>
<td align="right"><font face="Verdana,Arial,Helvetica"><a href="?p=306&act1=EditForm&Login=$login&lang=$lang"><img src="/images/edit.gif" alt="" width="20" height="20" border="0"></a></font></td>
<td><font face="Verdana,Arial,Helvetica"><a href="?p=306&act1=EditNow&Delete=Delete&Login=$login&lang=$lang" onclick="return confirmLink(this, '$lang77: $login')"><img src="/images/delete.gif" alt="" width="20" height="20" border="0"></a></font></td>
</tr>
|;
}
$lang_txt25 =~ s/\$lang/$lang/ge;
$lang_txt25 =~ s/\$err_msg/$err_msg/g;
$lang_txt25 =~ s/\$existing_extraftp/$existing_extraftp/g;
$temp_str .= $lang_txt25;
##########################################
if ($act1 eq "EditForm") {
open (DB, "<$passwd_ftp");
@db_lines1= <DB>;
close DB;
@db_lines = grep(/:$uid:/, @db_lines1);
if(@match = grep(/^$CGI_INPUT{'Login'}:/, @db_lines)){
LINE: foreach $db_line (@db_lines) {
$db_line =~ /^#/ and next LINE;
$db_line =~ /^\s*$/ and next LINE;
chomp $db_line;
@db_data = split (/\:/, $db_line);
if ( $db_line =~/^$CGI_INPUT{'Login'}:/) {
$CGI_INPUT{'Login'} = $db_data[0];
$ftpPasswd = $db_data[1];
$RestrictedArea = $db_data[5];
if ($RestrictedArea =~ /^\/home\/$userid(.*)/) {$RestrictedArea1=$1};
}
}
$lang_txt26 =~ s/\$lang/$lang/ge;
$lang_txt26 =~ s/\$Login/$CGI_INPUT{'Login'}/g;
$lang_txt26 =~ s/\$ftpPasswd/$ftpPasswd/g;
$lang_txt26 =~ s/\$RestrictedArea1/$RestrictedArea1/g;
$temp_str .= $lang_txt26;
} else {
$lang78 =~ s/\$Login/$CGI_INPUT{'Login'}/g;
$temp_str .= "<br><br>$lang78";
}
}
} else {
$temp_str .= $lang62;
}
&checkftpusage($>); # provide: $FTPAccountFree, $FTPAccountRate
$lang_txt24 =~ s/\$lang/$lang/ge;
$lang_txt24 =~ s/\$FTPAccountFree/$FTPAccountFree/ge;
$lang_txt24 =~ s/\$FTPAccount/$FTPAccount/ge;
$lang_txt24 =~ s/\$user_extraftp/$user_extraftp/ge;
print $lang_txt24;
print $temp_str;
}
}
sub page_400 {
my $lang_txt28=&lang_txt(28);
$lang_txt28 =~ s/\$lang/$lang/ge;
print $lang_txt28;
}
sub page_401 {
# ACTs:
# 1. Install
# 2. Customize
# 3. Overview (Default)
$act=$CGI_INPUT{'act'};
$act1=$CGI_INPUT{'act1'};
if ($act eq "Install") {
my $lang79=&lang(79);
$lang79=~ s/\$lang/$lang/ge;
my $lang80=&lang(80);
my $lang81=&lang(81);
my $lang82=&lang(82);
print $lang79;
if ($act1 eq "InstallNow") {
print qq~
<table width="97%" border="0" cellspacing="2" cellpadding="2" align="center">
<tr><td class="font">
<br>$lang80<p>
~;
########################################
# Install
########################################
if ($CGI_INPUT{'action'} eq 'Install') {
if ($CGI_INPUT{'401'} eq 'yes') { &create_errorpage(401); }
if ($CGI_INPUT{'403'} eq 'yes') { &create_errorpage(403); }
if ($CGI_INPUT{'404'} eq 'yes') { &create_errorpage(404); }
if ($CGI_INPUT{'500'} eq 'yes') { &create_errorpage(500); }
print qq~<br><b>$lang81</b><br>~;
}
########################################
# Uninstall
########################################
if ($CGI_INPUT{'action'} eq 'Uninstall') {
if ($CGI_INPUT{'401'} eq 'yes') { &delete_errorpage(401); }
if ($CGI_INPUT{'403'} eq 'yes') { &delete_errorpage(403); }
if ($CGI_INPUT{'404'} eq 'yes') { &delete_errorpage(404); }
if ($CGI_INPUT{'500'} eq 'yes') { &delete_errorpage(500); }
print qq~<br>$lang82<b></b>~;
}
########################################
print qq~
<br><br></td></tr>
</table>
~;
} else {
my $lang_txt31=&lang_txt(31);
if(&check_errorpage(401) eq "YES") { $lang_txt31=~ s/\$401_checked/checked/ge; } else { $lang_txt31=~ s/\$401_checked//ge; }
if(&check_errorpage(403) eq "YES") { $lang_txt31=~ s/\$403_checked/checked/ge; } else { $lang_txt31=~ s/\$403_checked//ge; }
if(&check_errorpage(404) eq "YES") { $lang_txt31=~ s/\$404_checked/checked/ge; } else { $lang_txt31=~ s/\$404_checked//ge; }
if(&check_errorpage(500) eq "YES") { $lang_txt31=~ s/\$500_checked/checked/ge; } else { $lang_txt31=~ s/\$500_checked//ge; }
$lang_txt31=~ s/\$lang/$lang/ge;
print $lang_txt31;
}
} elsif ($act eq "Customize") {
my $lang_txt30=&lang_txt(30);
$lang_txt30=~ s/\$lang/$lang/ge;
$lang_txt30=~ s/\$user_domain/$user_domain/ge;
print $lang_txt30;
} else {
my $lang_txt29=&lang_txt(29);
$lang_txt29=~ s/\$lang/$lang/ge;
print $lang_txt29;
}
}
sub page_402 {
my $act1=$CGI_INPUT{'act1'};
my $lang11=&lang(11);
my $lang12=&lang(12);
my $lang_txt36=&lang_txt(36);
my $htaccess_file = "/export/home/$userid/public_html/.htaccess";
my $exist_bandwidth_protect = "";
if($act1 eq "add") {
my $check=0;
my $deny_url=$CGI_INPUT{'deny_url'};
$deny_url =~ s/http:\/\//''/gei;
$deny_url = "http://" . $deny_url;
if(-f $htaccess_file) {
open(HTDATA,"<$htaccess_file");
my @ht_data = <HTDATA>;
close(HTDATA);
open(HTDATA,">$htaccess_file");
foreach(@ht_data) {
chomp($_);
if(/$deny_url$/) {
$deny_url .= " already";
$check = 1;
}
if($_ eq '#end wcp deny website'){
if($check eq "0") {
print HTDATA 'RewriteCond %{HTTP_REFERER} ' . $deny_url . "\n";
print HTDATA 'RewriteRule ^(.*)$ ' . $deny_url . "\n";
$check = 1;
}
}
print HTDATA $_ . "\n";
}
if($check eq "0") {
print HTDATA "#\n" . '#start wcp deny website' . "\n";
print HTDATA 'RewriteEngine on' . "\n";
print HTDATA 'RewriteCond %{HTTP_REFERER} ' . $deny_url . "\n";
print HTDATA 'RewriteRule ^(.*)$ ' . $deny_url . "\n";
print HTDATA '#end wcp deny website' . "\n#\n";
}
close HTDATA;
} else {
open(HTDATA,">>$htaccess_file");
print HTDATA "#\n" . '#start wcp deny website' . "\n";
print HTDATA 'RewriteEngine on' . "\n";
print HTDATA 'RewriteCond %{HTTP_REFERER} ' . $deny_url . "\n";
print HTDATA 'RewriteRule ^(.*)$ ' . $deny_url . "\n";
print HTDATA '#end wcp deny website' . "\n#\n";
close HTDATA;
}
print "<script>alert('$deny_url added');</script>";
} elsif($act1 eq "delete") {
my $del_cod=$CGI_INPUT{'del_cod'};
if(-f $htaccess_file) {
open(HTDATA,"<$htaccess_file");
my @ht_data = <HTDATA>;
close(HTDATA);
open(HTDATA,">$htaccess_file");
foreach(@ht_data) {
if(!/$del_cod$/){
print HTDATA $_;
}
}
close HTDATA;
}
print "<script>alert('$del_cod deleted');</script>";
} elsif($act1 eq "denyon") {
if(-f $htaccess_file) {
$check = "0";
open(HTDATA,"<$htaccess_file");
while (<HTDATA>) {
chomp $_; s/\r//;
if($_ eq '#start wcp deny all website') {
$check = "1";
last;
}
}
close HTDATA;
if($check == "0") {
open(HTDATA,">>$htaccess_file");
print HTDATA '#start wcp deny all website' . "\n";
print HTDATA 'RewriteEngine on' . "\n";
print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://.*\.' . $user_domain . '/.*$ [NC]' . "\n";
print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://.*\.' . $user_domain . '$ [NC]' . "\n";
print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://' . $user_domain . '/.*$ [NC]' . "\n";
print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://' . $user_domain . '$ [NC]' . "\n";
print HTDATA 'RewriteCond %{HTTP_REFERER} !^$ [NC]' . "\n";
print HTDATA 'RewriteRule .*\.(jpg|jpeg|gif|png|swf)$ http://' . $user_domain . ' [R,NC]' . "\n";
print HTDATA '#end wcp deny all website' . "\n";
close HTDATA;
}
} else {
open(HTDATA,">>$htaccess_file");
print HTDATA '#start wcp deny all website' . "\n";
print HTDATA 'RewriteEngine on' . "\n";
print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://.*\.' . $user_domain . '/.*$ [NC]' . "\n";
print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://.*\.' . $user_domain . '$ [NC]' . "\n";
print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://' . $user_domain . '/.*$ [NC]' . "\n";
print HTDATA 'RewriteCond %{HTTP_REFERER} !^http://' . $user_domain . '$ [NC]' . "\n";
print HTDATA 'RewriteCond %{HTTP_REFERER} !^$ [NC]' . "\n";
print HTDATA 'RewriteRule .*\.(jpg|jpeg|gif|png|swf)$ http://' . $user_domain . ' [R,NC]' . "\n";
print HTDATA '#end wcp deny all website' . "\n";
close HTDATA;
}
} elsif($act1 eq "denyoff") {
if(-f $htaccess_file) {
$i = 0;
open(HTDATA,"<$htaccess_file");
my @ht_data = <HTDATA>;
close(HTDATA);
open(HTDATA,">$htaccess_file");
while($ht_data[$i]) {
chomp($ht_data[$i]);
if($ht_data[$i] eq '#start wcp deny all website'){
while($ht_data[$i]) {
chomp($ht_data[$i]);
if($ht_data[$i] eq '#end wcp deny all website'){
$i++;
last;
} else { $i++; }
}
} else {
print HTDATA $ht_data[$i] . "\n";
$i++;
}
}
close HTDATA;
}
}
if(-f $htaccess_file) {
#check deny all jpg gif swf
$check_deny_all = "0";
open(HTDATA,"<$htaccess_file");
while (<HTDATA>) {
chomp $_; s/\r//;
if($_ eq '#start wcp deny all website') {
$check_deny_all = "1";
last;
}
}
close HTDATA;
if($check_deny_all == "0") {
$opt_str = "<input name='act1' type='radio' value='denyon' onClick='this.form.submit();'> $lang11 <input name='act1' type='radio' value='denyoff' onClick='this.form.submit();' checked> $lang12";
} elsif($check_deny_all == "1") {
$opt_str = "<input name='act1' type='radio' value='denyon' onClick='this.form.submit();' checked> $lang11 <input name='act1' type='radio' value='denyoff' onClick='this.form.submit();'> $lang12";
}
#check deny url
my $count = 0;
my $trcolor = "#FFFFFF";
my @temp_array=();
open(HTDATA,"<$htaccess_file");
while (<HTDATA>) {
chomp $_; s/\r//;
if($_ eq '#start wcp deny website') {
while ($_ ne '#end wcp deny website') {
$_=<HTDATA>;
chomp $_; s/\r//;
if($_ ne '#end wcp deny website') {
my @db_data = split (/ /, $_);
if($db_data[0] eq 'RewriteCond') {
push @temp_array,$db_data[2];
}
} else { last;}
}
last;
}
}
close HTDATA;
my @deny_array = sort(@temp_array);
foreach(@deny_array) {
if ($count=="0") { $trcolor="#FFFFFF";$count=1;} else {$trcolor="#EEEEEE";$count=0;};
$exist_bandwidth_protect .= qq{<tr bgcolor="$trcolor"><td class="font">$_</td><td align="center"><a href="/?p=402&act1=delete&lang=$lang&del_cod=$_"><img src="/images/delete.gif" alt="" width=20 height=20 border=0></a></td></tr>\n};
}
} else {
$opt_str = "<input name='act1' type='radio' value='denyon' onClick='this.form.submit();'> $lang11 <input name='act1' type='radio' value='denyoff' onClick='this.form.submit();' checked> $lang12";
}
$lang_txt36 =~ s/\$lang/$lang/ge;
$lang_txt36 =~ s/\$opt_str/$opt_str/ge;
$lang_txt36 =~ s/\$exist_bandwidth_protect/$exist_bandwidth_protect/ge;
print $lang_txt36;
}
sub page_403 {
my $act=$CGI_INPUT{'act'};
my $lang57=&lang(57);
my $lang58=&lang(58);
my $lang_txt37=&lang_txt(37);
my $htaccess_file = "/export/home/$userid/public_html/.htaccess";
my $exist_ip_deny = "";
if($act eq "add") {
my $check=0;
my $deny_url=$CGI_INPUT{'deny_url'};
if(-f $htaccess_file) {
open(HTDATA,"<$htaccess_file");
my @ht_data = <HTDATA>;
close(HTDATA);
open(HTDATA,">$htaccess_file");
foreach(@ht_data) {
chomp($_);
if(/$deny_url$/) {
$deny_url .= " already";
$check = 1;
}
if($_ eq '#end wcp ip deny'){
if($check eq "0") {
print HTDATA 'deny from ' . $deny_url . "\n";
$check = 1;
}
}
print HTDATA $_ . "\n";
}
if($check eq "0") {
print HTDATA "#\n" . '#start wcp ip deny' . "\n";
print HTDATA '<Limit GET POST>' . "\n";
print HTDATA '</Limit>' . "\n";
print HTDATA 'deny from ' . $deny_url . "\n";
print HTDATA '#end wcp ip deny' . "\n#\n";
}
close HTDATA;
} else {
open(HTDATA,">>$htaccess_file");
print HTDATA "#\n" . '#start wcp ip deny' . "\n";
print HTDATA '<Limit GET POST>' . "\n";
print HTDATA '</Limit>' . "\n";
print HTDATA 'deny from ' . $deny_url . "\n";
print HTDATA '#end wcp ip deny' . "\n#\n";
close HTDATA;
}
print "<script>alert('$deny_url $lang57');</script>";
} elsif($act eq "delete") {
my $del_cod=$CGI_INPUT{'del_cod'};
if(-f $htaccess_file) {
open(HTDATA,"<$htaccess_file");
my @ht_data = <HTDATA>;
close(HTDATA);
open(HTDATA,">$htaccess_file");
foreach(@ht_data) {
if(!/deny from $del_cod$/){
print HTDATA $_;
}
}
close HTDATA;
}
print "<script>alert('$del_cod $lang58');</script>";
}
if(-f $htaccess_file) {
my $count = 0;
my $trcolor = "#FFFFFF";
my @temp_array=();
open(HTDATA,"<$htaccess_file");
while (<HTDATA>) {
chomp $_; s/\r//;
if($_ eq '#start wcp ip deny') {
while ($_ ne '#end wcp ip deny') {
$_=<HTDATA>;
chomp $_; s/\r//;
if($_ ne '#end wcp ip deny') {
my @db_data = split (/ /, $_);
if(($db_data[0] eq 'deny') && ($db_data[1] eq 'from')) {
push @temp_array,$db_data[2];
}
} else { last;}
}
last;
}
}
close HTDATA;
my @deny_array = sort(@temp_array);
foreach(@deny_array) {
if ($count=="0") { $trcolor="#FFFFFF";$count=1;} else {$trcolor="#EEEEEE";$count=0;};
$exist_ip_deny .= qq{<tr bgcolor="$trcolor"><td class="font">$_</td><td align="center"><a href="/?p=403&act=delete&lang=$lang&del_cod=$_"><img src="/images/delete.gif" alt="" width=20 height=20 border=0></a></td></tr>\n};
}
}
$lang_txt37 =~ s/\$lang/$lang/ge;
$lang_txt37 =~ s/\$exist_ip_deny/$exist_ip_deny/ge;
print $lang_txt37;
}
sub page_404 {
# ACTs:
# 1. Your SSL Site
# 2. Overview (Default)
&wcpconf; # provide $wcp_sslhost
my $act=$CGI_INPUT{'act'};
if ($act eq "OwnSSL") {
if($user_reseller eq "1"){
my $lang_txt40=&lang_txt(40);
$lang_txt40 =~ s/\$lang/$lang/ge;
my $lang83=&lang(83);
$lang_txt40=~ s/\$communilink_info/$lang83/ge;
print $lang_txt40;
} else {
my $lang_txt101=&lang_txt(101);
$lang_txt101 =~ s/\$lang/$lang/ge;
print $lang_txt101;
}
} else {
if ($wcp_sslhost ne "") {
my $lang_txt38=&lang_txt(38);
$lang_txt38 =~ s/\$lang/$lang/ge;
$lang_txt38 =~ s/\$hostname/$hostname/ge;
$lang_txt38 =~ s/\$wcp_sslhost/$wcp_sslhost/ge;
my $temp = '~' . $userid . '/';
$lang_txt38 =~ s/\$userid/$temp/ge;
print $lang_txt38;
} else {
my $lang_txt39=&lang_txt(39);
$lang_txt39 =~ s/\$lang/$lang/ge;
print $lang_txt39;
}
}
}
sub page_405 {
my $lang_txt41=&lang_txt(41);
$lang_txt41 =~ s/\$lang/$lang/ge;
print $lang_txt41;
}
sub page_406 {
my $lang_txt42=&lang_txt(42);
print $lang_txt42;
}
sub page_407 {
my $bgcolour_main1 = "#DDDDDD";
my $bgcolour_main2 = "#EFEFEF";
my $act=$CGI_INPUT{'act'};
my $act1=$CGI_INPUT{'act1'};
my $lang87=&lang(87);
if (&check_valueadd($userid,"407") eq "Y") {
if ($act eq "Logs") {
my $lang84=&lang(84);
my $lang85=&lang(85);
my $lang86=&lang(86);
my $i=0;
my $temp="";
my $page=$CGI_INPUT{'page'};
my $statement = qq~SELECT *,year(webvir_date) as year,month(webvir_date) as month,dayofmonth(webvir_date) as day FROM webvirus WHERE UPPER(CK_usr_cod) = UPPER("$userid") ORDER BY webvir_date DESC~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
my $rows = $sth->rows;
if ($page eq "") { $page=0; }
else { $page = int($page) - 1; }
my $count = 0;
my $noperpage = 50;
while (my $row = $sth->fetchrow_hashref) {
if(($page*$noperpage)<=$count and ($page*$noperpage+$noperpage-1)>=$count) {
my $webvir_date = $row->{'webvir_date'};
my $webvir_remark = $row->{'webvir_remark'};
my $year = $row->{'year'};
my $month = $row->{'month'};
my $day = $row->{'day'};
if ($month < 10 ) { $month = "0$month";}
if ($day < 10 ) { $day = "0$day";}
if ($webvir_remark eq "Virus Found") {
#$webvir_remark = "<font color='red'>$webvir_remark</font>, <a href='http://$user_domain/virusresults/virusfile_$year$month$day.txt'>Download Results</a>";
$webvir_remark = "<font color='red'>$webvir_remark</font>, <a href='#' OnClick=window.open('http://$user_domain/virusresults/virusfile_$year$month$day.txt','Statistics','toolbar=no,location=no,directories=no,status=yes,menubar=no,resizable=yes,copyhistory=no,scrollbars=yes')>$lang84</a>";
}
if ($i==0) {
$temp .= "<tr bgcolor=$bgcolour_main1 class='font'>";
$i = 1;
} else {
$temp .= "<tr bgcolor=$bgcolour_main2 class='font'>";
$i = 0;
}
$temp .= " <td>$webvir_date</td>";
$temp .= " <td>$webvir_remark</td>";
$temp .= "</tr>";
}
$count++;
}
$sth->finish;
my $nopage = ceil($rows/$noperpage);
if ($nopage > 1) {
my $pagelist = "";
$temp .= "<tr bgcolor='white' class='font'>";
if ($page > 0 ) { $pagelist .= " <a href='?p=407&act=Logs&lang=$lang&page=$page'>$lang85</a> "; }
if(($nopage > 10) & ($page > 4)) {
if(($nopage-$page)>5) {
for (my $i=$page-4;$i<=$page+5;$i++) {
if ($i-1 == $page) {
$pagelist .= " $i ";
} else {
$pagelist .= " <a href='?p=407&act=Logs&lang=$lang&page=$i'>$i</a> ";
}
}
} else {
for (my $i=$nopage-page-9;$i<=$nopage;$i++) {
if ($i-1 == $page) {
$pagelist .= " $i ";
} else {
$pagelist .= " <a href='?p=407&act=Logs&lang=$lang&page=$i'>$i</a> ";
}
}
}
} else {
if($nopage > 10) {$nopage=10;}
for (my $i=1;$i<=$nopage;$i++) {
if ($i-1 == $page) {
$pagelist .= " $i ";
} else {
$pagelist .= " <a href='?p=407&act=Logs&lang=$lang&page=$i'>$i</a> ";
}
}
}
if ($page < $nopage-1 ) {
my $k = $page+2;
$pagelist .= " <a href='?p=407&act=Logs&lang=$lang&page=$k'>$lang86</a> "; }
$temp .= " <td colspan='5' align='center'>$pagelist</td>";
$temp .= "</tr>";
}
my $lang_txt44=&lang_txt(44);
$lang_txt44 =~ s/\$temp/$temp/ge;
$lang_txt44 =~ s/\$lang87/$lang87/ge;
$lang_txt44 =~ s/\$lang/$lang/ge;
print $lang_txt44;
} elsif ($act eq "Scans") {
my $webpath= "/var/root/crons/webvirus.txt";
my $temp="";
my $msg="";
my $lang11=&lang(11);
my $lang12=&lang(12);
my $lang88=&lang(88);
my $lang89=&lang(89);
my $lang90=&lang(90);
$lang90 =~ s/\$lang/$lang/ge;
my $lang94=&lang(94);
$lang94 =~ s/\$lang/$lang/ge;
my $lang_txt45=&lang_txt(45);
if (($act1 eq "ON") or ($act1 eq "OFF")) {
my $statement = qq~UPDATE preference SET usr_webvirus=upper("$act1") WHERE CK_usr_cod="$userid"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
$sth->finish;
} elsif ($act1 eq "scan") {
my @rowdata;
$rowdata[0]=$userid."\n";
open(DATA,">>$webpath") || die $!;
print DATA @rowdata;
close(DATA);
print "<script language='JavaScript'> \n <!-- \n";
print "alert('$lang88')\n";
print "//--> \n </script>\n";
}
open (VIRUSLIST, "<$webpath");
my @db_lines= <VIRUSLIST>;
close VIRUSLIST;
my $j=0;
unless ($db_lines[$j]) { $msg=$lang94; }
while($db_lines[$j]) {
chomp($db_lines[$j]);
if ($db_lines[$j] eq "$userid") {
$msg=$lang89;
last;
} else { $msg=$lang90; }
$j++;
}
my $statement = qq~SELECT usr_webvirus FROM preference WHERE UPPER(CK_usr_cod) = UPPER("$userid")~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
my $usr_webvirus=$row->{'usr_webvirus'};
if ($usr_webvirus eq "ON") {
$temp = "<input name='act1' type='radio' value='ON' onClick='this.form.submit();' checked> $lang11 <input name='act1' type='radio' value='OFF' onClick='this.form.submit();'> $lang12";
} else {
$temp = "<input name='act1' type='radio' value='ON' onClick='this.form.submit();'> $lang11 <input name='act1' type='radio' value='OFF' onClick='this.form.submit();' checked> $lang12";
}
} else {
$temp = "<input name='act1' type='radio' value='ON' onClick='this.form.submit();'> $lang11 <input name='act1' type='radio' value='OFF' onClick='this.form.submit();' checked> $lang12";
}
$lang_txt45 =~ s/\$temp/$temp/ge;
$lang_txt45 =~ s/\$msg/$msg/ge;
$lang_txt45 =~ s/\$lang87/$lang87/ge;
$lang_txt45 =~ s/\$lang/$lang/ge;
print $lang_txt45;
} else {
my $lang91=&lang(91);
my $lang92=&lang(92);
my $lang93=&lang(93);
my $lang_txt46=&lang_txt(46);
my $temp="";
my $statement = qq~SELECT * , max( webvir_date ) FROM webvirus WHERE UPPER(CK_usr_cod) = UPPER("$userid") GROUP BY CK_usr_cod, webvir_date ORDER BY webvir_date desc~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
my $webvir_remark=$row->{'webvir_remark'};
if ($webvir_remark eq "No Virus") {
$temp = $lang91;
} else {
$temp = $lang92;
}
} else {
$temp = $lang93;
}
$lang_txt46 =~ s/\$temp/$temp/ge;
$lang_txt46 =~ s/\$lang87/$lang87/ge;
$lang_txt46 =~ s/\$lang/$lang/ge;
print $lang_txt46;
}
} else {
my $lang_txt43=&lang_txt(43);
$lang_txt43 =~ s/\$res_info_com/$res_info_com/ge;
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt43 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt43 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt43;
}
}
sub page_408 {
my $bgcolour_main1 = "#DDDDDD";
my $bgcolour_main2 = "#EFEFEF";
my $act=$CGI_INPUT{'act'};
my $act1=$CGI_INPUT{'act1'};
my $file=$CGI_INPUT{'file'};
my $lang87=&lang(87);
if (&check_valueadd($userid,"408") ne "N") {
if ($act eq "Logs") {
my $lang85=&lang(85);
my $lang86=&lang(86);
my $i=0;
my $temp="";
my $page=$CGI_INPUT{'page'};
my $statement="";
if (&check_valueadd($userid,"408") eq "S") {
$statement = qq~SELECT * FROM backup_log WHERE UPPER(usr_cod) = UPPER("$userid") AND bklog_mode = "S" ORDER BY bklog_date DESC,bklog_time DESC~;
} elsif (&check_valueadd($userid,"408") eq "W") {
$statement = qq~SELECT * FROM backup_log WHERE UPPER(usr_cod) = UPPER("$userid") AND bklog_mode = "W" ORDER BY bklog_date DESC,bklog_time DESC~;
} elsif (&check_valueadd($userid,"408") eq "A") {
$statement = qq~SELECT * FROM backup_log WHERE UPPER(usr_cod) = UPPER("$userid") ORDER BY bklog_date DESC,bklog_time DESC~;
}
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
my $rows = $sth->rows;
if ($page eq "") { $page=0; } else { $page = int($page) - 1; }
my $count = 0;
my $noperpage = 50;
while (my $row = $sth->fetchrow_hashref) {
if(($page*$noperpage)<=$count and ($page*$noperpage+$noperpage-1)>=$count) {
my $bklog_date = $row->{'bklog_date'};
my $bklog_time = $row->{'bklog_time'};
my $bklog_status = $row->{'bklog_status'};
my $bklog_remark = $row->{'bklog_remark'};
if ($i==0) {
$temp .= "<tr bgcolor=$bgcolour_main1 class='font'>";
$i = 1;
} else {
$temp .= "<tr bgcolor=$bgcolour_main2 class='font'>";
$i = 0;
}
if ($bklog_time < 10) { $bklog_time = "0$bklog_time"; }
if ($bklog_status eq "Success") {
$temp .= " <td>$bklog_date $bklog_time:00</td>";
$temp .= " <td>$bklog_status</td>";
$temp .= " <td>$bklog_remark</td>";
} else {
$temp .= " <td><font color='red'>$bklog_date $bklog_time:00</font></td>";
$temp .= " <td><font color='red'>$bklog_status</font></td>";
$temp .= " <td><font color='red'>$bklog_remark</font></td>";
}
$temp .= "</tr>";
}
$count++;
}
$sth->finish;
my $nopage = ceil($rows/$noperpage);
if ($nopage > 1) {
my $pagelist = "";
$temp .= "<tr bgcolor='white' class='font'>";
if ($page > 0 ) { $pagelist .= " <a href='?p=408&act=Logs&lang=$lang&page=$page'>$lang85</a> "; }
if(($nopage > 10) & ($page > 4)) {
if(($nopage-$page)>5) {
for (my $i=$page-4;$i<=$page+5;$i++) {
if ($i-1 == $page) { $pagelist .= " $i "; } else { $pagelist .= " <a href='?p=408&act=Logs&lang=$lang&page=$i'>$i</a> "; }
}
} else {
for (my $i=$nopage-page-9;$i<=$nopage;$i++) {
if ($i-1 == $page) { $pagelist .= " $i "; } else { $pagelist .= " <a href='?p=408&act=Logs&lang=$lang&page=$i'>$i</a> "; }
}
}
} else {
if($nopage > 10) {$nopage=10;}
for (my $i=1;$i<=$nopage;$i++) {
if ($i-1 == $page) { $pagelist .= " $i "; } else { $pagelist .= " <a href='?p=408&act=Logs&lang=$lang&page=$i'>$i</a> "; }
}
}
if ($page < $nopage-1 ) {
my $k = $page+2;
$pagelist .= " <a href='?p=408&act=Logs&lang=$lang&page=$k'>$lang86</a> ";
}
$temp .= " <td colspan='5' align='center'>$pagelist</td>";
$temp .= "</tr>";
}
my $lang_txt48=&lang_txt(48);
$lang_txt48 =~ s/\$temp/$temp/ge;
$lang_txt48 =~ s/\$lang87/$lang87/ge;
$lang_txt48 =~ s/\$lang/$lang/ge;
print $lang_txt48;
} elsif ($act eq "Download") {
my $lang95=&lang(95);
my $i=0;
my $j=0;
my $temp_web="";
my $temp_sql="";
my $opt_string="";
if ((&check_valueadd($userid,"408") eq "W") || (&check_valueadd($userid,"408") eq "A")){
#------start gen web backup dwonload-------
$backupwebdir="/export/home/$userid/backup/web/";
$backupweblist="/export/home/$userid/backupweblist";
$list_tgz=$backupwebdir . "$userid*.tgz | awk -F/ '{print \$7}'";
system("ls -t $list_tgz >> $backupweblist");
open (DATALIST, "<$backupweblist");
my @db_lines= <DATALIST>;
close DATALIST;
system("rm $backupweblist");
while($db_lines[$j]) {
if ($i==0) {
$temp_web .= "<tr bgcolor=$bgcolour_main1 class='font'>";
$i = 1;
} else {
$temp_web .= "<tr bgcolor=$bgcolour_main2 class='font'>";
$i = 0;
}
chomp($db_lines[$j]);
$temp_web .= " <td>$db_lines[$j]</td>";
$temp_web .= " <td>/home/$userid/backup/web/</td>";
find (sub {$temp_web_size = -s ;},"/home/$userid/backup/web/$db_lines[$j]");
$temp_web_size = int($temp_web_size/1000);
$temp_web .= " <td>$temp_web_size</td>";
$temp_web .= " <td><a href='/file/dn.cgi?user=$userid&file=$db_lines[$j]'>$lang95</a></td>";
$temp_web .= "</tr>\n";
$j++;
}
#------End gen web backup download-------
}
if ((&check_valueadd($userid,"408") eq "S") || (&check_valueadd($userid,"408") eq "A")){
#------start gen mySQl backup download-------
$i=0;
$j=0;
$backupsqldir="/export/home/$userid/backup/mysql/";
$backupsqllist="/export/home/$userid/backupsqllist";
$list_tgz=$backupsqldir . "$userid*.sql | awk -F/ '{print \$7}'";
system("ls -t $list_tgz >> $backupsqllist");
open (DATALIST, "<$backupsqllist");
my @db_lines= <DATALIST>;
close DATALIST;
system("rm $backupsqllist");
while($db_lines[$j]) {
if ($i==0) {
$temp_sql .= "<tr bgcolor=$bgcolour_main1 class='font'>";
$i = 1;
} else {
$temp_sql .= "<tr bgcolor=$bgcolour_main2 class='font'>";
$i = 0;
}
chomp($db_lines[$j]);
$temp_sql .= " <td>$db_lines[$j]</td>";
$temp_sql .= " <td>/home/$userid/backup/mysql/</td>";
find (sub {$temp_sql_size = -s ;},"/home/$userid/backup/mysql/$db_lines[$j]");
$temp_sql_size = int($temp_sql_size/1000);
$temp_sql .= " <td>$temp_sql_size</td>";
$temp_sql .= " <td><a href='/file/dn.cgi?user=$userid&file=$db_lines[$j]'>$lang95</a></td>";
$temp_sql .= "</tr>\n";
$j++;
}
#------End gen mySQL backup download-------
}
if (&check_valueadd($userid,"408") eq "S") {
my $lang_txt49=&lang_txt(49);
$lang_txt49 =~ s/\$temp_sql/$temp_sql/ge;
$opt_string=$lang_txt49;
} elsif (&check_valueadd($userid,"408") eq "W") {
my $lang_txt50=&lang_txt(50);
$lang_txt50 =~ s/\$temp_web/$temp_web/ge;
$opt_string=$lang_txt50;
} elsif (&check_valueadd($userid,"408") eq "A") {
$lang_txt51=&lang_txt(51);
$lang_txt51 =~ s/\$temp_web/$temp_web/ge;
$lang_txt51 =~ s/\$temp_sql/$temp_sql/ge;
$opt_string=$lang_txt51;
}
$opt_string =~ s/\$lang87/$lang87/ge;
$opt_string =~ s/\$lang/$lang/ge;
print $opt_string;
} elsif ($act eq "Backup") {
&checkquota_zfs($>);
if ($DiskUsage eq "0") {
$allow_copy = 10;
} else {
$allow_copy = int($DiskQuota/$DiskUsage);
}
($min,$hour,$day,$month,$year) = (localtime)[1,2,3,4,5];
$year += 1900;
$month++;
if ($act1 eq "addnow") {
my $opt=$CGI_INPUT{'opt'};
my $cron_day=$CGI_INPUT{'cron_day'};
my $cron_time=$CGI_INPUT{'cron_time'};
my $cron_no=$CGI_INPUT{'cron_no'};
my $mode=$CGI_INPUT{'mode'};
my $cron_database=$CGI_INPUT{'cron_database'};
my $dbhost=$CGI_INPUT{'dbhost'};
my $dbusername=$CGI_INPUT{'dbusername'};
my $dbuserpasswd=$CGI_INPUT{'dbuserpasswd'};
if ($hour == 23 ) { $hour=0; } else { $hour ++;}
if ($mode eq "S" and &check_connection("$dbhost","$cron_database","$dbusername","$dbuserpasswd") eq "false") {
my $lang96=&lang(96);
$lang96 =~ s/\$cron_database/$cron_database/ge;
print $lang96;
} elsif ($opt eq "immed") {
my $statement = "";
if ($mode eq "W") {
$statement = qq~SELECT * FROM `backup_log` WHERE usr_cod="$userid" AND bklog_date="$year-$month-$day" AND bklog_status="Success" AND bklog_mode="W"~;
} elsif ($mode eq "S") {
$statement = qq~SELECT * FROM `backup_log` WHERE usr_cod="$userid" AND bklog_date="$year-$month-$day" AND bklog_status="Success" AND bklog_mode="S" AND bklog_database LIKE "%$cron_database%"~;
}
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if ($sth->fetchrow_hashref) {
$sth->finish;
print &lang(97);
} else {
$sth->finish;
if ($mode eq "W") {
$statement = qq~SELECT * FROM `backup` WHERE usr_cod="$userid" AND back_date="$year-$month-$day" AND back_times="im" AND back_mode="W"~;
} elsif ($mode eq "S") {
$statement = qq~SELECT * FROM `backup` WHERE usr_cod="$userid" AND back_date="$year-$month-$day" AND back_times="im" AND back_mode="S" AND back_database LIKE "%$cron_database%"~;
}
$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if ($sth->fetchrow_hashref) {
$sth->finish;
print &lang(98);
} else {
$sth->finish;
if ($mode eq "W") {
$statement = qq~INSERT INTO `backup` VALUES ("","$year-$month-$day",$hour,"0","IM","W","-","$userid")~;
} elsif ($mode eq "S") {
$statement = qq~INSERT INTO `backup` VALUES ("","$year-$month-$day",$hour,"0","IM","S","$cron_database|$dbusername|$dbuserpasswd|$dbhost","$userid")~;
}
$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
$sth->finish;
print &lang(99);
}
}
} elsif ($opt eq "cron") {
if ($mode eq "W") {
$statement = qq~SELECT * FROM `backup` WHERE usr_cod="$userid" AND back_times<>"im" AND back_mode="W"~;
} elsif ($mode eq "S") {
$statement = qq~SELECT * FROM `backup` WHERE usr_cod="$userid" AND back_times<>"im" AND back_mode="S" AND back_database LIKE "%$cron_database%"~;
}
$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if ($sth->fetchrow_hashref) {
$sth->finish;
print &lang(100);
} else {
$sth->finish;
if ($mode eq "W") {
$statement = qq~INSERT INTO `backup` VALUES ("","$year-$month-$day",$cron_time,$cron_day,$cron_no,"W","-","$userid")~;
} elsif ($mode eq "S") {
$statement = qq~INSERT INTO `backup` VALUES ("","$year-$month-$day",$cron_time,$cron_day,$cron_no,"S","$cron_database|$dbusername|$dbuserpasswd|$dbhost","$userid")~;
}
$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
$sth->finish;
print &lang(99);
}
}
} elsif ($act1 eq "DeleteNow") {
my $del_cod=$CGI_INPUT{'del_cod'};
my $statement = qq~SELECT * FROM backup WHERE back_cod=$del_cod AND usr_cod="$userid"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
my $row = $sth->fetchrow_hashref;
$back_cod = $row->{'back_cod'};
$back_date = $row->{'back_date'};
$back_time = $row->{'back_time'};
$back_mode = $row->{'back_mode'};
$usr_cod = $row->{'usr_cod'};
$sth->finish;
if ($month < 10) { $month = "0$month"; }
if ($day < 10) { $day = "0$day"; }
if ($hour < 10) { $hour = "0$hour"; }
if ($min < 10) { $min = "0$min"; }
$statement = qq~INSERT INTO backup_log VALUES ("","$back_date",$back_time,"Deleted","The Schedule deleted by user on $year-$month-$day $hour:$min.","$back_mode","-","$usr_cod")~;
$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
$sth->finish;
$statement = qq~DELETE FROM `backup` WHERE back_cod=$del_cod AND usr_cod="$userid" AND back_mode="$back_mode"~;
$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
$sth->finish;
print &lang(101);
}
my $temp_web="";
my $temp_sql="";
my $statement="";
my $opt_string="";
# start mysql
$statement = qq~SELECT * FROM backup WHERE UPPER(usr_cod) = UPPER("$userid") AND back_mode = "S" ORDER BY back_date ASC,back_time ASC~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
while (my $row = $sth->fetchrow_hashref) {
my $back_cod = $row->{'back_cod'};
my $back_date = $row->{'back_date'};
my $back_time = $row->{'back_time'};
my $back_every = $row->{'back_every'};
my $back_times = $row->{'back_times'};
my $back_database = $row->{'back_database'};
my @db_data = split (/\|/, $back_database);
my $tmp="";
if ($back_times eq "IM") { $tmp="(Immediacy, Database:$db_data[0])"; }
else {
my $lang102=&lang(102);
$lang102 =~ s/\$back_every/$back_every/ge;
$lang102 =~ s/\$back_times/$back_times/ge;
$lang102 =~ s/\$db_name/$db_data[0]/ge;
$tmp=$lang102;
}
if ($i==0) {
$temp_sql .= "<tr bgcolor=$bgcolour_main1 class='font'>";
$i = 1;
} else {
$temp_sql .= "<tr bgcolor=$bgcolour_main2 class='font'>";
$i = 0;
}
if ($back_time < 10) { $back_time = "0$back_time"; }
$temp_sql .= " <td>$back_date $back_time:00 $tmp</td>";
$temp_sql .= " <td><a href='/?p=408&act=Backup&act1=DeleteNow&lang=$lang&del_cod=$back_cod'><img src='/images/delete.gif' alt='' width=20 height=20 border=0></a></td>";
$temp_sql .= "</tr>";
}
$sth->finish;
# end mysql
# start web
$statement = qq~SELECT * FROM backup WHERE UPPER(usr_cod) = UPPER("$userid") AND back_mode = "W" ORDER BY back_date ASC,back_time ASC~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
while (my $row = $sth->fetchrow_hashref) {
my $back_cod = $row->{'back_cod'};
my $back_date = $row->{'back_date'};
my $back_time = $row->{'back_time'};
my $back_every = $row->{'back_every'};
my $back_times = $row->{'back_times'};
my $tmp="";
if ($back_times eq "IM") { $tmp="(Immediacy)"; }
else {
my $lang103=&lang(103);
$lang103 =~ s/\$back_every/$back_every/ge;
$lang103 =~ s/\$back_times/$back_times/ge;
$tmp=$lang103;
}
if ($i==0) {
$temp_web .= "<tr bgcolor=$bgcolour_main1 class='font'>";
$i = 1;
} else {
$temp_web .= "<tr bgcolor=$bgcolour_main2 class='font'>";
$i = 0;
}
if ($back_time < 10) { $back_time = "0$back_time"; }
$temp_web .= " <td>$back_date $back_time:00 $tmp</td>";
$temp_web .= " <td><a href='/?p=408&act=Backup&act1=DeleteNow&lang=$lang&del_cod=$back_cod'><img src='/images/delete.gif' alt='' width=20 height=20 border=0></a></td>";
$temp_web .= "</tr>";
}
$sth->finish;
# end web
my $lang_txt52=&lang_txt(52);
$lang_txt52 =~ s/\$lang/$lang/ge;
$lang_txt52 =~ s/\$temp_web/$temp_web/ge;
my $lang_txt53=&lang_txt(53);
$lang_txt53 =~ s/\$lang/$lang/ge;
$lang_txt53 =~ s/\$temp_sql/$temp_sql/ge;
# Start web allow copy
my $allow_opt="";
if ($allow_copy <= 0 ) { $allow_opt.="<option value='0'>00</option>"; }
elsif ($allow_copy >= 10 ) {
for(my $k=1;$k<=10;$k++) {
if ($k==10) { $allow_opt.="<option value='$k'>$k</option>"; } else { $allow_opt.="<option value='$k'>0$k</option>"; }
}
} else {
for(my $k=1;$k<=$allow_copy;$k++) {
if ($k==10) { $allow_opt.="<option value='$k'>$k</option>"; } else { $allow_opt.="<option value='$k'>0$k</option>"; }
}
}
$lang_txt52=~ s/\$allow_copy/$allow_opt/ge;
# end web allow copy
# Start mysql allow copy
$allow_opt="";
if ($DiskUsage eq "0") {
$allow_m_copy = 10;
} else {
$allow_m_copy = int(($DiskQuota-$DiskUsage)/20);
}
if ($allow_m_copy <= 0 ) { $allow_opt.="<option value='0'>00</option>"; }
elsif ($allow_m_copy >= 10 ) {
for(my $k=1;$k<=10;$k++) {
if ($k==10) { $allow_opt.="<option value='$k'>$k</option>"; } else { $allow_opt.="<option value='$k'>0$k</option>"; }
}
} else {
for(my $k=1;$k<=$allow_m_copy;$k++) {
if ($k==10) { $allow_opt.="<option value='$k'>$k</option>"; } else { $allow_opt.="<option value='$k'>0$k</option>"; }
}
}
$lang_txt53=~ s/\$allow_copy/$allow_opt/ge;
# End mysql allow copy
my $db_name="";
if ((&check_valueadd($userid,"408") eq "S") || (&check_valueadd($userid,"408") eq "A")) {
my $database = "wcp4";
my $dbusername = "wcpdbselect";
my $dbuserpasswd = "Net#g7#u";
my $host = "localhost";
my $dsn_c = "DBI:mysql:database=$database;host=$host";
my $dbh_c = DBI->connect($dsn_c, $dbusername, $dbuserpasswd);
my $statement1 = qq~SHOW DATABASES LIKE "$userid%"~;
my $sth1 = $dbh_c->prepare($statement1) || error('db_prepare',$dbh_c->errstr);
$sth1->execute || error('db_execute',$dbh_c->errstr);
my $name_f="Database (userid%)";
while (my $myrow = $sth1->fetchrow_arrayref) {
$database_name = $myrow->[0];
$db_name.="<option value='$database_name'>$database_name</option>";
}
$sth1->finish;
$dbh_c->disconnect;
if ($db_name ne "") {
$lang_txt53 =~ s/\$db_name/$db_name/ge;
} else {
$db_name.="<option value='NODB'>No Database</option>";
$lang_txt53 =~ s/\$db_name/$db_name/ge;
}
}
if (&check_valueadd($userid,"408") eq "S") {
$opt_string=$lang_txt53;
} elsif (&check_valueadd($userid,"408") eq "W") {
$opt_string=$lang_txt52;
} elsif (&check_valueadd($userid,"408") eq "A") {
$opt_string=$lang_txt52."<br><br>".$lang_txt53;
}
my $lang_txt54=&lang_txt(54);
$lang_txt54 =~ s/\$opt_string/$opt_string/ge;
$lang_txt54 =~ s/\$lang87/$lang87/ge;
$lang_txt54 =~ s/\$lang/$lang/ge;
print $lang_txt54;
} elsif ($act eq "Directions") {
my $lang_txt55=&lang_txt(55);
$lang_txt55 =~ s/\$userid/$userid/ge;
$lang_txt55 =~ s/\$lang87/$lang87/ge;
$lang_txt55 =~ s/\$lang/$lang/ge;
print $lang_txt55;
} else {
my $lang11=&lang(11);
my $lang12=&lang(12);
my $lang_txt56=&lang_txt(56);
my $tmp;
my $statement = qq~SELECT * FROM `backup` WHERE usr_cod="$userid" AND back_mode="W"~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
$tmp = "<font color='#008000'>$lang11</font>"
} else {
$tmp = "<font color='#FF0000'>$lang12</font>"
}
$lang_txt56=~ s/\$enable_web/$tmp/ge;
$sth->finish;
$statement = qq~SELECT * FROM `backup` WHERE usr_cod="$userid" AND back_mode="S"~;
$sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
if (my $row = $sth->fetchrow_hashref) {
$tmp = "<font color='#008000'>$lang11</font>"
} else {
$tmp = "<font color='#FF0000'>$lang12</font>"
}
$lang_txt56=~ s/\$enable_sql/$tmp/ge;
$sth->finish;
$lang_txt56 =~ s/\$lang87/$lang87/ge;
$lang_txt56 =~ s/\$lang/$lang/ge;
print $lang_txt56;
}
} else {
my $lang_txt47=&lang_txt(47);
$lang_txt47 =~ s/\$res_info_com/$res_info_com/ge;
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt47 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt47 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt47;
}
}
sub page_409 {
my $lang_txt57=&lang_txt(57);
$lang_txt57=~ s/\$res_info_com/$res_info_com/ge;
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt57 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt57 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt57;
}
sub page_410 {
my $bgcolour_main1 = "#DDDDDD";
my $bgcolour_main2 = "#EFEFEF";
my $act=$CGI_INPUT{'act'};
my $act1=$CGI_INPUT{'act1'};
my $lang87=&lang(87);
if (&check_valueadd($userid,"410") eq "Y") {
if ($act eq "Delete") {
my $i=0;
my $j=1;
my $crontab="";
my $temp_ct="";
my $each_ct_content="";
my $ct = new Config::Crontab;
if( $act1 eq "DeleteNow") {
my $min=$CGI_INPUT{'min'};
my $hour=$CGI_INPUT{'hour'};
my $day=$CGI_INPUT{'day'};
my $month=$CGI_INPUT{'month'};
my $dow=$CGI_INPUT{'dow'};
my $del_cod=$CGI_INPUT{'del_cod'};
my $comment=$CGI_INPUT{'comment'};
if ($min eq "All") { $min = "*"; }
if ($hour eq "All") { $hour = "*"; }
if ($day eq "All") { $day = "*"; }
if ($month eq "All") { $month = "*"; }
if ($dow eq "All") { $dow = "*"; }
$ct->read;
my $temp_ct="";
if ($comment eq "") { $temp_ct="$del_cod"; } else { $temp_ct="$del_cod $comment"; }
my $temp_datetime ="$min $hour $day $month $dow";
$delblock = $ct->block($ct->select(-type => 'event', -datetime => "$temp_datetime", -command_re => "$temp_ct"));
#$delblock = $ct->block($ct->select(-type => 'event', -data => "$temp_ct"));
#$delblock = $ct->block($ct->select(-type => 'event', -minute => "$min", -hour => "$hour", -dom => "$day", -month => "$month", -dow => "$dow", -command => "$del_cod $comment"));
$ct->remove($delblock);
$ct->write;
}
$ct->read;
my $ct_content = $ct->dump;
my @each_ct = split(/\n/, $ct_content);
$j=1;
foreach $each_ct_content (@each_ct) {
my @each_ct_value = split(/ /, $each_ct_content);
if ($each_ct_content ne "") {
if ($i==0) { $crontab .= "<tr bgcolor=$bgcolour_main1 class='font'>"; $i = 1;
} else { $crontab .= "<tr bgcolor=$bgcolour_main2 class='font'>"; $i = 0; }
if ($each_ct_value[0] eq "*") { $each_ct_value[0] = "All"; }
if ($each_ct_value[1] eq "*") { $each_ct_value[1] = "All"; }
if ($each_ct_value[2] eq "*") { $each_ct_value[2] = "All"; }
if ($each_ct_value[3] eq "*") { $each_ct_value[3] = "All"; }
if ($each_ct_value[4] eq "*") { $each_ct_value[4] = "All"; }
$crontab .= " <td>$each_ct_value[0]</td>";
$crontab .= " <td>$each_ct_value[1]</td>";
$crontab .= " <td>$each_ct_value[2]</td>";
$crontab .= " <td>$each_ct_value[3]</td>";
$crontab .= " <td>$each_ct_value[4]</td>";
$crontab .= " <td>$each_ct_value[5] $each_ct_value[6]</td>";
$crontab .= " <td><a href='/?p=410&act=Delete&act1=DeleteNow&lang=$lang&min=$each_ct_value[0]&hour=$each_ct_value[1]&day=$each_ct_value[2]&month=$each_ct_value[3]&dow=$each_ct_value[4]&del_cod=$each_ct_value[5]&comment=$each_ct_value[6]'><img src='/images/delete.gif' alt='' width=20 height=20 border=0></a></td>";
$crontab .= "</tr>";
}
$j++;
}
$sth->finish;
my $lang_txt61=&lang_txt(61);
$lang_txt61 =~ s/\$lang87/$lang87/ge;
$lang_txt61=~ s/\$crontab/$crontab/ge;
$lang_txt61 =~ s/\$lang/$lang/ge;
print $lang_txt61;
} elsif ($act eq "Add") {
my $ct = new Config::Crontab;
if( $act1 eq "AddNow") {
my $cmd=$CGI_INPUT{'cmd'};
my $all_mins=$CGI_INPUT{'all_mins'};
my $mins=$CGI_INPUT{'mins'};
my $all_hours=$CGI_INPUT{'all_hours'};
my $hours=$CGI_INPUT{'hours'};
my $all_days=$CGI_INPUT{'all_days'};
my $days=$CGI_INPUT{'days'};
my $all_months=$CGI_INPUT{'all_months'};
my $months=$CGI_INPUT{'months'};
my $all_dows=$CGI_INPUT{'all_dows'};
my $dows=$CGI_INPUT{'dows'};
#$cmd = "/home/$userid/" . $cmd;
my $temp_cmd="";
if ($all_mins eq "1") { $temp_cmd .= "* "; } else { $temp_cmd .= $mins . " "; }
if ($all_hours eq "1") { $temp_cmd .= "* "; } else { $temp_cmd .= $hours . " "; }
if ($all_days eq "1") { $temp_cmd .= "* "; } else { $temp_cmd .= $days . " "; }
if ($all_months eq "1") { $temp_cmd .= "* "; } else { $temp_cmd .= $months . " "; }
if ($all_dows eq "1") { $temp_cmd .= "* "; } else { $temp_cmd .= $dows . " "; }
$temp_cmd .= $cmd;
$ct->read;
$ct->last(new Config::Crontab::Block(-type => "event", -data => "$temp_cmd"));
$ct->write;
my $lang104=&lang(104);
print $lang104;
}
my $lang_txt60=&lang_txt(60);
$lang_txt60 =~ s/\$lang87/$lang87/ge;
$lang_txt60 =~ s/\$lang/$lang/ge;
print $lang_txt60;
} else {
my $lang_txt59=&lang_txt(59);
$lang_txt59 =~ s/\$lang87/$lang87/ge;
$lang_txt59 =~ s/\$lang/$lang/ge;
print $lang_txt59;
}
} else {
my $lang_txt58=&lang_txt(58);
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt58 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt58 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt58;
}
}
sub page_500 {
my $lang11=&lang(11);
my $lang12=&lang(12);
my $lang107=&lang(107);
my $lang_txt62=&lang_txt(62);
$lang107 =~ s/\$user_domain/$user_domain/ge;
$lang107 =~ s/\$user_empd/$user_empd/ge;
&checkemailoption($user_domain);
&checkemailaccount($user_domain);
if ($eop_option eq "A") {
$Storage_Option = &lang(105);
} else {
my $lang106=&lang(106);
$lang106 =~ s/\$eop_limit/$eop_limit/ge;
$lang106 =~ s/\$eop_used/$eop_used/ge;
$Storage_Option = $lang106;
}
$catchsmtp=&checkcatchsmtp($user_domain);
if ( $catchsmtp eq "ON") {
$Catch_SMTP = "<font color=\"#008000\">$lang11</font>";
} else {
$Catch_SMTP = "<font color=\"#FF0000\">$lang12</font>";
}
if($hostname =~ /^mars/i) {
$Standard_SMTP = "<font color=\"#FF0000\">$lang12</font>";
$Port_2620_SMTP = "<font color=\"#FF0000\">$lang12</font>";
} else {
if ( &portscan("smtp.$user_domain","25") eq "UP") {
$Standard_SMTP = "<font color=\"#008000\">$lang11</font>";
} else {
$Standard_SMTP = "<font color=\"#FF0000\">$lang12</font>";
}
if ( &check_global_smtp("$user_domain") eq "UP") {
$Port_2620_SMTP = "<font color=\"#008000\">$lang11</font>";
} else {
$Port_2620_SMTP = "<font color=\"#FF0000\">$lang12</font>";
}
}
if ( &check_anti_virus($user_domain) eq "ON") {
$Email_Virus_Scan = "<font color=\"#008000\">$lang11</font>";
} else {
$Email_Virus_Scan = "<font color=\"#FF0000\">$lang12</font>";
}
my $count=0;
my $statement = qq~SELECT * FROM emailspace WHERE CK_usr_domain="$user_domain" order by esp_name~;
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || error('db_execute',$dbh->errstr);
while (my $row = $sth->fetchrow_hashref) {
if ($count==0) {
$trcolor="#DDDDDD";
$count=1;
} else {
$trcolor="#EFEFEF";
$count=0;
}
if ($row->{'esp_name'} eq "postmaster") {$row->{'esp_name'}="<strong>$row->{'esp_name'}</strong>";}
$esp_name = $row->{'esp_name'};
$esp_limit = int($row->{'esp_limit'}/1048.576);
$esp_used = int($row->{'esp_used'}/1048.576);
$esp_free = $esp_limit-$esp_used;
if (($row->{'esp_limit'}-$row->{'esp_used'})<0) {
$esp_free="<font color=\"#FF0000\">$esp_free</font>";
$esp_name="<font color=\"#FF0000\">$row->{'esp_name'}</font>";
}
$img_width = $esp_used*2;
if ($row->{'esp_used'}>100000) {
$img_width=200;
if ($row->{'esp_used'} > $row->{'esp_limit'}) {
$table_bg="email_bg_100r.gif";
} else {
$table_bg="email_bg_100g.gif";
}
} else {
if ($row->{'esp_used'} > $row->{'esp_limit'}) {
$table_bg="email_bg_r.gif";
} else {
$table_bg="email_bg_g.gif";
}
}
$emailspace_peruser .= qq{
<tr bgcolor="$trcolor">
<td><font face="Verdana,Arial,Helvetica" size="-2">$esp_name</font></td>
<td align=right><font face="Verdana,Arial,Helvetica" size="-2">$esp_limit MB</font></td>
<td align=right><font face="Verdana,Arial,Helvetica" size="-2">$esp_used MB</font></td>
<td align=right><font face="Verdana,Arial,Helvetica" size="-2">$esp_free MB</font></td>
<td width="210">
<table height="8" border="0" cellspacing="0" cellpadding="0" background="images/$table_bg">
<tr><td><img src="/images/lie.gif" width=$img_width height=8 border=0></td></tr></table>
</td>
</tr>
};
}
$sth->finish;
$lang_txt62 =~ s/\$Storage_Option/$Storage_Option/ge;
$lang_txt62 =~ s/\$Catch_SMTP/$Catch_SMTP/ge;
$lang_txt62 =~ s/\$Standard_SMTP/$Standard_SMTP/ge;
$lang_txt62 =~ s/\$Port_2620_SMTP/$Port_2620_SMTP/ge;
$lang_txt62 =~ s/\$Email_Virus_Scan/$Email_Virus_Scan/ge;
$lang_txt62 =~ s/\$ema_maxpop/$ema_maxpop/ge;
$lang_txt62 =~ s/\$ema_pop/$ema_pop/ge;
$lang_txt62 =~ s/\$ema_free_pop/$ema_free_pop/ge;
$lang_txt62 =~ s/\$ema_maxfor/$ema_maxfor/ge;
$lang_txt62 =~ s/\$ema_for/$ema_for/ge;
$lang_txt62 =~ s/\$ema_free_for/$ema_free_for/ge;
$lang_txt62 =~ s/\$ema_maxlist/$ema_maxlist/ge;
$lang_txt62 =~ s/\$ema_list/$ema_list/ge;
$lang_txt62 =~ s/\$ema_free_list/$ema_free_list/ge;
$lang_txt62 =~ s/\$ema_maxauto/$ema_maxauto/ge;
$lang_txt62 =~ s/\$ema_auto/$ema_auto/ge;
$lang_txt62 =~ s/\$ema_free_auto/$ema_free_auto/ge;
$lang_txt62 =~ s/\$emailspace_peruser/$emailspace_peruser/ge;
$lang_txt62 =~ s/\$eop_update/$eop_update/ge;
$lang_txt62 =~ s/\$lang107/$lang107/ge;
print $lang_txt62;
}
sub page_501 {
my $lang_txt98=&lang_txt(98);
$lang_txt98 =~ s/\$user_domain/$user_domain/ge;
$lang_txt98 =~ s/\$user_empd/$user_empd/ge;
$lang_txt98 =~ s/\$lang/$lang/ge;
print $lang_txt98;
}
sub page_502 {
my $act=$CGI_INPUT{'act'};
my $act1=$CGI_INPUT{'act1'};
my $lang87=&lang(87);
my $lang109=&lang(109);
my $old_anti_spam="OFF";
$spam_conf_file="/var/backend/spam/" . $user_domain;
$spam_user_pref="/var/backend/spam_pref/$user_domain/user_prefs";
if( -f $spam_user_pref) { $old_anti_spam="ON"; }
if ($act eq "Spam") {
my $temp="";
if( $old_anti_spam eq "ON") {
if ($act1 eq "Statistics") {
my $cdate;
my $daily_stat="/file/graph_spam.php?";
my $monthly_stat="/file/graph_spam.php?";
# start daily Statistic
for(my $i=7;$i>=0;$i--) {
$s_select = qq~SELECT DATE_sub(curdate(),INTERVAL $i DAY) AS cdate~;
my $sth = $dbh->prepare($s_select) || error('db_prepare',$dbh->errstr);
$sth->execute || die $!;
if (my $row = $sth->fetchrow_hashref) { $cdate=$row->{'cdate'}; }
my @adate = split(/-/, $cdate);
my $year = $adate[0];
my $month = $adate[1];
my $day = $adate[2];
$sth->finish;
my $statement="";
my $statement1="";
if ($user_aliasdomain ne "") {
my @aliasdomain = split(/\|/, $user_aliasdomain);
my $j=0;
while ($aliasdomain[$j]) {
$statement1.=qq~OR ((UPPER(emspam_to) LIKE UPPER("%\@$aliasdomain[$j]")) AND (NOT (UPPER(emspam_to) LIKE UPPER("%\@$aliasdomain[$j].%"))))~;
$j++;
}
}
my $statement = qq~SELECT count(*) as count FROM emailspamlog WHERE emspam_date LIKE "$year-$month-$day%" AND (((UPPER(emspam_to) LIKE UPPER("%\@$user_domain")) AND (NOT (UPPER(emspam_to) LIKE UPPER("%\@$user_domain.%"))))~;
$statement.=$statement1.")";
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || die $!;
if (my $row = $sth->fetchrow_hashref) {
my $count=$row->{'count'};
$daily_stat.="data[]=$month-$day:$count&";
}
$sth->finish;
}
$daily_stat.="opt=d";
# end daily Statistic
# start monthly Statistic
for(my $i=6;$i>=0;$i--) {
$s_select = qq~SELECT DATE_sub(curdate(),INTERVAL $i month) AS cdate~;
my $sth = $dbh->prepare($s_select) || error('db_prepare',$dbh->errstr);
$sth->execute || die $!;
if (my $row = $sth->fetchrow_hashref) { $cdate=$row->{'cdate'}; }
my @adate = split(/-/, $cdate);
my $year = $adate[0];
my $month = $adate[1];
my $day = $adate[2];
$sth->finish;
my $statement="";
my $statement1="";
if ($user_aliasdomain ne "") {
my @aliasdomain = split(/\|/, $user_aliasdomain);
my $j=0;
while ($aliasdomain[$j]) {
$statement1.=qq~OR (UPPER(emspamrpt_domain) LIKE UPPER("%\@$aliasdomain[$j]"))~;
$j++;
}
}
my $statement = "";
if($i == "0") {
$statement = qq~SELECT count(*) as count FROM emailspamlog WHERE emspam_date LIKE "$year-$month%" AND ((UPPER(emspam_to) LIKE UPPER("%\@$user_domain")) ~;
} else {
$statement = qq~SELECT emspamrpt_count as count FROM emailspamlog_rpt WHERE ((UPPER(emspamrpt_domain) = UPPER("$user_domain")) AND emspamrpt_date LIKE "$year-$month%" ~;
}
$statement.=$statement1.")";
my $sth = $dbh->prepare($statement) || error('db_prepare',$dbh->errstr);
$sth->execute || die $!;
if (my $row = $sth->fetchrow_hashref) {
my $count=$row->{'count'};
$monthly_stat.="data[]=$month:$count&";
} else {
$monthly_stat.="data[]=$month:0&";
}
$sth->finish;
}
$monthly_stat.="opt=m";
# end monthly Statistic
my $lang_txt68=&lang_txt(68);
$lang_txt68 =~ s/\$daily_stat/$daily_stat/ge;
$lang_txt68 =~ s/\$monthly_stat/$monthly_stat/ge;
$lang_txt68 =~ s/\$lang87/$lang87/ge;
$lang_txt68 =~ s/\$lang/$lang/ge;
print $lang_txt68;
} elsif ($act1 eq "WhiteBlacklist") {
my $temp="";
my $act2=$CGI_INPUT{'act2'};
my $user_perf_conf="";
if($act2 eq "Add") {
my $opt=$CGI_INPUT{'opt'};
my $email_addr=$CGI_INPUT{'email_addr'};
if($email_addr =~ /[a-zA-z]*@*\.[a-zA-Z]*/) {
open (USR_PREF, "<$spam_user_pref");
my @db_lines= <USR_PREF>;
close USR_PREF;
my $nture=0;
foreach $db_line (@db_lines) {
my @db_value = split(/ /, $db_line);
chomp $db_value[1];
if($db_value[1] eq $email_addr) { $nture=1; last; }
}
if($nture==0) {
open (USR_PREF, ">>$spam_user_pref");
my @db_line_add;
$db_line_add[0]=$opt." ".$email_addr."\n";
print USR_PREF $db_line_add[0];
close USR_PREF;
my $lang110=&lang(110);
print qq~<script language="JavaScript"> alert("$lang110"); </script> ~;
} else {
my $lang111=&lang(111);
print qq~<script language="JavaScript"> alert("$lang111"); </script> ~;
}
} else {
my $lang112=&lang(112);
print qq~<script language="JavaScript"> alert("$lang112"); </script> ~;
}
} elsif($act2 eq "Delete") {
my $opt=$CGI_INPUT{'opt'};
my $val=$CGI_INPUT{'val'};
open (USR_PREF, "<$spam_user_pref");
my @db_lines= <USR_PREF>;
close USR_PREF;
if($opt eq "B"){$opt="blacklist_from"; } elsif($opt eq "W") {$opt="whitelist_from"; }
my $delete_text="$opt $val\n";
my $i=0;
open (USR_PREF, ">$spam_user_pref");
while($db_lines[$i]) {
if($db_lines[$i] eq "$delete_text"){}
else{ print USR_PREF $db_lines[$i]; }
$i++;
}
close USR_PREF;
my $lang113=&lang(113);
print qq~<script language="JavaScript"> alert("$lang113"); </script> ~;
}
open (USR_PREF, "<$spam_user_pref");
my @db_lines= <USR_PREF>;
close USR_PREF;
my $i=0;
my $lang114=&lang(114);
my $lang115=&lang(115);
foreach $db_line (@db_lines) {
my @db_value = split(/ /, $db_line);
if($db_value[0] eq "blacklist_from") {
chomp $db_value[1];
if($i==0){$df_color="#EEEEEE";$i=1;} else {$df_color="#FFFFFF";$i=0;}
$user_perf_conf.=qq~<tr bgcolor="$df_color" class="font"><td height="24">$lang114 $db_value[1]</td>
<td align="center" height="24"><a href="/?p=502&act=Spam&act1=WhiteBlacklist&act2=Delete&lang=$lang&opt=B&val=$db_value[1]"><img src="/images/delete.gif" alt="Delete" width=20 height=20 border=0></a></td></tr>~;
} elsif($db_value[0] eq "whitelist_from") {
chomp $db_value[1];
if($i==0){$df_color="#EEEEEE";$i=1;} else {$df_color="#FFFFFF";$i=0;}
$user_perf_conf.=qq~<tr bgcolor="$df_color" class="font"><td height="24">$lang115 $db_value[1]</td>
<td align="center" height="24"><a href="/?p=502&act=Spam&act1=WhiteBlacklist&act2=Delete&lang=$lang&opt=W&val=$db_value[1]"><img src="/images/delete.gif" alt="Delete" width=20 height=20 border=0></a></td></tr>~;
}
}
my $lang_txt67=&lang_txt(67);
$lang_txt67 =~ s/\$user_perf_conf/$user_perf_conf/ge;
$lang_txt67 =~ s/\$lang87/$lang87/ge;
$lang_txt67 =~ s/\$lang/$lang/ge;
print $lang_txt67;
} else {
my $act2=$CGI_INPUT{'act2'};
my $value_1 = "1 ";
my $value_2 = "2 ";
my $value_3 = "3 ";
my $mark_4 = "4 ";
my $mark_5 = "5 ";
my $mark_6 = "6 ";
my $mark_7 = "7 ";
my $mark_8 = "8 ";
my $mark_9 = "9 ";
if ($act2 eq "Update") {
my $update_option=$CGI_INPUT{'update_option'};
if( -f $spam_conf_file) {
open (SPAM, ">$spam_conf_file");
my @db_lines;
$db_lines[0]=$update_option."\n";
print SPAM $db_lines[0];
close SPAM;
my $lang110=&lang(110);
print qq{<script language="JavaScript"> alert("$lang110"); </script> };
} else {
my $lang116=&lang(116);
print qq{<script language="JavaScript"> alert("$lang116"); </script> };
}
}
if ($act2 eq "UpdateMark") {
my $update_moption=$CGI_INPUT{'update_moption'};
if( -f $spam_user_pref) {
open (SPAM, "<$spam_user_pref");
my @db_lines= <SPAM>;
close SPAM;
open (SPAM, ">$spam_user_pref");
my @db_line;
$db_line[0]="required_hits ".$update_moption."\n";
foreach(@db_lines) {
if($_ =~ /required_hits/) {
if($update_moption eq "4") {
chomp $_;
my @temp = split(/ /, $_);
if ($temp[1] > 4) {
$db_line[0]="required_hits 4\n";
} else {
$db_line[0]="required_hits ".$temp[1]."\n";
}
}
print SPAM $db_line[0];
} else {
print SPAM $_;
}
}
close SPAM;
my $lang110=&lang(110);
print qq{<script language="JavaScript"> alert("$lang110"); </script> };
} else {
my $lang116=&lang(116);
print qq{<script language="JavaScript"> alert("$lang116"); </script> };
}
}
if( -f $spam_conf_file) {
open (SPAM, "<$spam_conf_file");
my @db_lines= <SPAM>;
close SPAM;
if ($db_lines[0] == 1) {
$value_1 .= "checked";
} elsif ($db_lines[0] == 2) {
$value_2 .= "checked";
} elsif ($db_lines[0] == 3) {
$value_3 .= "checked";
}
}
if( -f $spam_user_pref) {
open (SPAM, "<$spam_user_pref");
my @db_lines= <SPAM>;
close SPAM;
foreach(@db_lines) {
if($_ =~ /required_hits/) {
chomp $_;
my @temp = split(/ /, $_);
if ($temp[1] <= 4) {
$mark_4 .= "checked";
} elsif ($temp[1] == 5) {
$mark_5 .= "checked";
} elsif ($temp[1] == 6) {
$mark_6 .= "checked";
} elsif ($temp[1] == 7) {
$mark_7 .= "checked";
} elsif ($temp[1] == 8) {
$mark_8 .= "checked";
} elsif ($temp[1] == 9) {
$mark_9 .= "checked";
}
}
}
}
my $lang_txt69=&lang_txt(69);
$lang_txt69=~ s/\$value_1/$value_1/ge;
$lang_txt69=~ s/\$value_2/$value_2/ge;
$lang_txt69=~ s/\$value_3/$value_3/ge;
$lang_txt69=~ s/\$mark_4/$mark_4/ge;
$lang_txt69=~ s/\$mark_5/$mark_5/ge;
$lang_txt69=~ s/\$mark_6/$mark_6/ge;
$lang_txt69=~ s/\$mark_7/$mark_7/ge;
$lang_txt69=~ s/\$mark_8/$mark_8/ge;
$lang_txt69=~ s/\$mark_9/$mark_9/ge;
$lang_txt69 =~ s/\$lang87/$lang87/ge;
$lang_txt69 =~ s/\$lang/$lang/ge;
print $lang_txt69;
}
} else {
my $lang_txt63=&lang_txt(63);
my $lang130=&lang(130);
my $lang131=&lang(131);
$lang_txt63 =~ s/\$lang/$lang/ge;
if($user_reseller eq "1"){
if($old_anti_spam eq "OFF") {
$lang130 =~ s/502\&act\=Spam/505/ge;
$lang131 =~ s/502\&act\=Spam/505/ge;
}
} else {
if($old_anti_spam eq "OFF") {
$lang130 = "";
$lang131 = "";
}
}
$lang_txt63 =~ s/\$menu_str/$lang130/ge;
$lang_txt63 =~ s/\$spam_usemap/$lang131/ge;
print $lang_txt63;
}
} elsif ($act eq "Atts") {
my $block_atts="";
my $block_atts_file="/var/qmail/control/simcontrol";
if(-f $block_atts_file) {
open(ATTS,"<$block_atts_file") || die $!;
@block_atts_file = <ATTS>;
close(ATTS);
my $has_domain="no";
my $all_domain="0";
my $i=0;
foreach(@block_atts_file) {
if(/^$user_domain/) {
$has_domain=$i;
}
if(/^:/) {
$all_domain=$i;
}
$i++;
}
my $block_atts_list="";
if($has_domain eq "no") {
$block_atts_list=$block_atts_file[$all_domain];
} else {
$block_atts_list=$block_atts_file[$has_domain];
}
my @db_data = split(/attach\=/,$block_atts_list);
my @block_atts_sort = split(/:/,$db_data[1]);
@block_atts_sort = sort(@block_atts_sort);
$block_atts_length=@block_atts_sort;
if($block_atts_length != "0") {
if (($block_atts_length%2) == "0") {
$block_half_length=int($block_atts_length/2);
} else {
$block_half_length=int($block_atts_length/2)+1;
}
for(my $i=1;$i<=$block_half_length;$i++) {
if (index($block_atts_sort[$i-1],".") eq "0") {
$block_atts_sort[$i-1]="*".$block_atts_sort[$i-1];
}
if (($block_half_length+$i) > $block_atts_length) {
$block_atts.="<tr><td class='font'><b>$i.</b> $block_atts_sort[$i-1]</td></tr>";
} else {
my $j=$block_half_length+$i;
if (index($block_atts_sort[$j-1],".") eq "0") {
$block_atts_sort[$j-1]="*".$block_atts_sort[$j-1];
}
$block_atts.="<tr><td width='50%' class='font'><b>$i.</b> $block_atts_sort[$i-1]</td><td width='50%' class='font'><b>$j.</b> $block_atts_sort[$j-1]</td></tr>";
}
}
} else {
$block_atts = "<tr><td class='font'>$lang109</td></tr>";
}
} else {
$block_atts = "<tr><td class='font'>$lang109</td></tr>";
}
my $lang_txt66=&lang_txt(66);
$lang_txt66 =~ s/\$block_atts/$block_atts/ge;
$lang_txt66 =~ s/\$lang/$lang/ge;
my $lang130=&lang(130);
if($user_reseller eq "1"){
if($old_anti_spam eq "OFF") {
$lang130 =~ s/502\&act\=Spam/505/ge;
}
} else {
if($old_anti_spam eq "OFF") {
$lang130 = "";
}
}
$lang_txt66 =~ s/\$menu_str/$lang130/ge;
print $lang_txt66;
} elsif ($act eq "IP") {
my $block_ip="";
my $block_ip_file="/var/vpopmail/etc/tcp.smtp";
if(-f $block_ip_file) {
open(IP,"<$block_ip_file") || die $!;
@block_ip_file = <IP>;
close(IP);
my $j=0;
while($block_ip_file[$j]) {
chomp $block_ip_file[$j];
my @db_data = split (/\:/,$block_ip_file[$j]);
if ((index($db_data[0],"#") eq "-1") or (index($db_data[0],"#") ne "0")) {
if ($db_data[1] eq "deny") {
$block_ip_sort[$#block_ip_sort+1]=$db_data[0];
}
}
$j++;
}
@block_ip_sort = sort(@block_ip_sort);
$block_ip_length=@block_ip_sort;
if($block_ip_length != "0") {
if (($block_ip_length%2) == "0") {
$block_half_length=int($block_ip_length/2);
} else {
$block_half_length=int($block_ip_length/2)+1;
}
for(my $i=1;$i<=$block_half_length;$i++) {
if (($block_half_length+$i) > $block_ip_length) {
$block_ip.="<tr><td class='font'><b>$i.</b> $block_ip_sort[$i-1]</td></tr>";
} else {
my $j=$block_half_length+$i;
$block_ip.="<tr><td width='50%' class='font'><b>$i.</b> $block_ip_sort[$i-1]</td><td width='50%' class='font'><b>$j.</b> $block_ip_sort[$j-1]</td></tr>";
}
}
} else {
$block_ip = "<tr><td class='font'>$lang109</td></tr>";
}
} else {
$block_ip = "<tr><td class='font'>$lang109</td></tr>";
}
my $lang_txt65=&lang_txt(65);
$lang_txt65 =~ s/\$block_ip/$block_ip/ge;
$lang_txt65 =~ s/\$lang/$lang/ge;
my $lang130=&lang(130);
if($user_reseller eq "1"){
if($old_anti_spam eq "OFF") {
$lang130 =~ s/502\&act\=Spam/505/ge;
}
} else {
if($old_anti_spam eq "OFF") {
$lang130 = "";
}
}
$lang_txt65 =~ s/\$menu_str/$lang130/ge;
print $lang_txt65;
} elsif ($act eq "Senders") {
my $block_sender="";
my $block_sender_file="/var/qmail/control/badmailfrom";
if(-f $block_sender_file) {
open(Sender,"<$block_sender_file") || die $!;
@block_email = <Sender>;
close(Sender);
@block_email = sort(@block_email);
$block_email_length=@block_email;
if (($block_email_length%2) == "0") {
$block_half_length=int($block_email_length/2);
} else {
$block_half_length=int($block_email_length/2)+1;
}
for(my $i=1;$i<=$block_half_length;$i++) {
if (($block_half_length+$i) > $block_email_length) {
$block_sender.="<tr><td class='font'><b>$i.</b> $block_email[$i-1]</td></tr>";
} else {
my $j=$block_half_length+$i;
$block_sender.="<tr><td width='50%' class='font'><b>$i.</b> $block_email[$i-1]</td><td width='50%' class='font'><b>$j.</b> $block_email[$j-1]</td></tr>";
}
}
} else {
$block_sender = "<tr><td class='font'>$lang109</td></tr>";
}
my $lang_txt64=&lang_txt(64);
$lang_txt64 =~ s/\$block_sender/$block_sender/ge;
$lang_txt64 =~ s/\$lang/$lang/ge;
my $lang130=&lang(130);
if($user_reseller eq "1"){
if($old_anti_spam eq "OFF") {
$lang130 =~ s/502\&act\=Spam/505/ge;
}
} else {
if($old_anti_spam eq "OFF") {
$lang130 = "";
}
}
$lang_txt64 =~ s/\$menu_str/$lang130/ge;
print $lang_txt64;
} else {
my $lang_txt63=&lang_txt(63);
my $lang130=&lang(130);
my $lang131=&lang(131);
$lang_txt63 =~ s/\$lang/$lang/ge;
if($user_reseller eq "1"){
if($old_anti_spam eq "OFF") {
$lang130 =~ s/502\&act\=Spam/505/ge;
$lang131 =~ s/502\&act\=Spam/505/ge;
}
} else {
if($old_anti_spam eq "OFF") {
$lang130 = "";
$lang131 = "";
}
}
$lang_txt63 =~ s/\$menu_str/$lang130/ge;
$lang_txt63 =~ s/\$spam_usemap/$lang131/ge;
print $lang_txt63;
}
}
sub page_503 {
my $act=$CGI_INPUT{'act'};
if ($act eq "Lates") {
my $lang_txt71=&lang_txt(71);
$lang_txt71 =~ s/\$lang/$lang/ge;
print $lang_txt71;
} else {
my $lang_txt70=&lang_txt(70);
$lang_txt70 =~ s/\$lang/$lang/ge;
print $lang_txt70;
}
}
sub page_504 {
my $lang_txt72=&lang_txt(72);
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt72 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt72 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt72;
}
sub page_505 {
my $lang_txt73=&lang_txt(73);
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt73 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt73 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt73;
}
sub page_506 {
my $lang_txt74=&lang_txt(74);
$lang_txt74 =~ s/\$lang/$lang/ge;
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt74 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt74 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt74;
}
sub page_507 {
my $lang_txt75=&lang_txt(75);
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt75 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt75 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt75;
}
sub page_600 {
my $act=$CGI_INPUT{'act'};
if ($act eq "Overview") {
my $lang_txt88=&lang_txt(88);
$lang_txt88 =~ s/\$lang/$lang/ge;
print $lang_txt88;
} else {
my $lang113=&lang(113); #Delete Success
my $lang117=&lang(117); #Change
my $lang118=&lang(118); #Install
my $lang119=&lang(119); #Uninstall
my $lang121=&lang(121); #Install Success
my $lang122=&lang(122); #Update Success
my $lang123=&lang(123); #Add Success
my $lang124=&lang(124);
my $lang125=&lang(125); #Uninstall Success
my $lang_txt89=&lang_txt(89);
my $config_path="/var/wcp4/$userid/config/counter";
my $user_home = "/home/$userid/public_html";
if(-f $config_path) {
my $act1=$CGI_INPUT{'act1'};
if($act1 eq "modify") {
my $is_install = $CGI_INPUT{'install'};
my $prog_path = $CGI_INPUT{'prog_path'};
my $StatDir = $CGI_INPUT{'StatDir'};
my $ImagePath = $CGI_INPUT{'ImagePath'};
my $CounterType = $CGI_INPUT{'CounterType'};
my $val_cookie = $CGI_INPUT{'val_cookie'};
my $set_hours = $CGI_INPUT{'set_hours'};
my $val_zeros = $CGI_INPUT{'val_zeros'};
if($val_cookie eq "on") { $val_cookie = "yes"; } else { $val_cookie = "no"; }
if($is_install ne "") {
if($prog_path eq "") { $prog_path = '/cgi-bin/default/counter/'; }
if($StatDir eq "") { $StatDir = '/default_prog/counter/database/'; }
if($ImagePath eq "") { $ImagePath = '/default_prog/counter/images/'; }
my $wcp_prog = "/var/backend/wcp/program/counter/";
my $temp_copy = "";
my $sys = `mkdir -p $user_home$prog_path`;
$sys = `mkdir -p $user_home$StatDir`;
$sys = `mkdir -p $user_home$ImagePath`;
$temp_copy = $wcp_prog . "counter.cgi " . $user_home . $prog_path;
$sys = `cp -rp $temp_copy`;
$temp_copy = $wcp_prog . "images/* " . $user_home . $ImagePath;
$sys = `cp -rp $temp_copy`;
open(DATA,">$config_path");
print DATA "\$is_install = \"1\"\;\n";
print DATA "\$prog_path = \"$prog_path\"\;\n";
print DATA "\$StatDir = \"$StatDir\"\;\n";
print DATA "\$ImagePath = \"$ImagePath\"\;\n";
print DATA "\$CounterType = \"$CounterType\"\;\n";
print DATA "\$val_cookie = \"$val_cookie\"\;\n";
print DATA "\$set_hours = \"$set_hours\"\;\n";
print DATA "\$val_zeros = \"$val_zeros\"\;\n";
close(DATA);
print qq{<script language="JavaScript"> <!--
alert("$lang121");
//--> </script> };
} else {
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
open(DATA,">$config_path");
print DATA "\$is_install = \"1\"\;\n";
print DATA $db_lines[1];
print DATA $db_lines[2];
print DATA $db_lines[3];
print DATA "\$CounterType = \"$CounterType\"\;\n";
print DATA "\$val_cookie = \"$val_cookie\"\;\n";
print DATA "\$set_hours = \"$set_hours\"\;\n";
print DATA "\$val_zeros = \"$val_zeros\"\;\n";
close(DATA);
print qq{<script language="JavaScript"> <!--
alert("$lang122");
//--> </script> };
}
} elsif ($act1 eq "Add") {
my $add_page=$CGI_INPUT{'add_page'};
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
$db_lines[2] =~ s/\$StatDir = \"/""/ge;
$db_lines[2] =~ s/\"\;\n/""/ge;
my $temp = $user_home.$db_lines[2]."/".$add_page.".cnt";
if(!-f $temp) {
my $sys = `touch $temp`;
print qq{<script language="JavaScript"> <!--
alert("$add_page - $lang123");
//--> </script> };
} else {
print qq{<script language="JavaScript"> <!--
alert("$add_page - $lang124");
//--> </script> };
}
} elsif ($act1 eq "Delete") {
my $del_cod=$CGI_INPUT{'del_cod'};
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
$db_lines[2] =~ s/\$StatDir = \"/""/ge;
$db_lines[2] =~ s/\"\;\n/""/ge;
my $temp = $user_home.$db_lines[2]."/".$del_cod.".cnt";
my $sys = `rm $temp`;
print qq{<script language="JavaScript"> <!--
alert("$del_cod - $lang113");
//--> </script> };
} elsif ($act1 eq "Generate") {
my $gen_cod=$CGI_INPUT{'gen_cod'};
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
$db_lines[1] =~ s/\$prog_path = \"/""/ge;
$db_lines[1] =~ s/\"\;\n/""/ge;
$db_lines[7] =~ s/\$val_zeros = \"/""/ge;
$db_lines[7] =~ s/\"\;\n/""/ge;
my $lang_txt90=&lang_txt(90);
my $temp_str = "$user_domain$db_lines[1]/counter.cgi?id=$gen_cod";
$lang_txt90 =~ s/\$temp_str/$temp_str/ge;
$lang_txt90 =~ s/\$zeros/$db_lines[7]/ge;
$lang_txt90 =~ s/\$lang/$lang/ge;
$lang_txt89 = $lang_txt90;
} elsif ($act1 eq "Uninstall") {
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
$db_lines[1] =~ s/\$prog_path = \"/""/ge;
$db_lines[1] =~ s/\"\;\n/""/ge;
$db_lines[2] =~ s/\$StatDir = \"/""/ge;
$db_lines[2] =~ s/\"\;\n/""/ge;
$db_lines[3] =~ s/\$ImagePath = \"/""/ge;
$db_lines[3] =~ s/\"\;\n/""/ge;
if($db_lines[1] =~ /^\/cgi-bin\/default\/counter/) {
my $temp = $user_home.'/cgi-bin/default/counter*';
my $sys = `rm -r $temp`;
} else {
my $temp = $user_home.$db_lines[1]."/counter.cgi";
my $sys = `rm $temp`;
}
if($db_lines[2] =~ /^\/default_prog\/counter*\/database/) {
my $temp = $user_home.'/default_prog/counter*';
my $sys = `rm -r $temp`;
} else {
my $temp = $user_home.$db_lines[2]."/*.cnt";
my $sys = `rm $temp`;
}
open(DATA,">$config_path");
print DATA "\$is_install = \"0\"\;\n";
close(DATA);
print qq{<script language="JavaScript"> <!--
alert("$lang125");
//--> </script> };
}
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
chomp($db_lines[0]);
if ($db_lines[0] eq '$is_install = "0";') {
my $data_dir = $user_home."/default_prog/counter";
my $temp="";
my $i=0;
if(!-d $user_home."/cgi-bin") {
my $sys=$user_home ."/cgi-bin";
my $err=`mkdir $sys`;
}
$temp=$user_home."/cgi-bin/default/counter";
while(-d $temp) {
$temp=$user_home."/cgi-bin/default/counter".$i;
$i++;
}
$temp =~ s/$user_home/""/ge;
my $prog_path = $temp;
$i=0;
$temp=$data_dir;
while(-d $temp) {
$temp=$data_dir.$i;
$i++;
}
$data_dir=$temp;
my $StatDir = $data_dir."/database";
my $ImagePath = $data_dir."/images";
$StatDir =~ s/$user_home/""/ge;
$ImagePath =~ s/$user_home/""/ge;
$lang_txt89 =~ s/\$prog_path/$prog_path/ge;
$lang_txt89 =~ s/\$StatDir/$StatDir/ge;
$lang_txt89 =~ s/\$ImagePath/$ImagePath/ge;
$lang_txt89 =~ s/\$[a-j]_selected /""/ge;
$lang_txt89 =~ s/\$val_cookie/"checked"/ge;
$lang_txt89 =~ s/\$set_hours/"24"/ge;
$lang_txt89 =~ s/\$val_zeros/"5"/ge;
$lang_txt89 =~ s/\$act/"install"/ge;
$lang_txt89 =~ s/\$uninstall/""/ge;
$lang_txt89 =~ s/\$button/$lang118/ge;
$lang_txt89 =~ s/\$script_con/""/ge;
$lang_txt89 =~ s/\$see_page/""/ge;
} else {
my $i=1;
while($db_lines[$i]) {
@db_data = split (/\=/, $db_lines[$i]);
chomp($db_data[0]);
chomp($db_data[1]);
$db_data[0] =~ s/ /""/ge;
$db_data[1] =~ s/\"/""/ge;
$db_data[1] =~ s/\;/""/ge;
$db_data[1] =~ s/ /""/ge;
$db_data[0] = "\\" . $db_data[0];
if ($db_data[0] eq '\$val_cookie') {
if ($db_data[1] eq "no") {
$lang_txt89 =~ s/$db_data[0]/""/ge;
} else {
$lang_txt89 =~ s/$db_data[0]/"checked"/ge;
}
} elsif ($db_data[0] eq '\$CounterType'){
my $temp_str = $db_data[1] . "_selected";
$lang_txt89 =~ s/\$$temp_str/"selected"/ge;
$lang_txt89 =~ s/\$[a-j]_selected /""/ge;
} else {
$lang_txt89 =~ s/$db_data[0]/$db_data[1]/ge;
}
$i++;
}
my $uninstall = qq{<table border="1" cellspacing="0" cellpadding="0" bordercolor="#FF0000"><tr>
<td>
<form action="/" method="post" name="counter_del" onSubmit="return comf_del();">
<input type="hidden" name="p" value="600">
<input type="hidden" name="lang" value="$lang">
<input type="hidden" name="act" value="Setting">
<input type="Hidden" name="act1" value="Uninstall">
<input type="submit" name="button" value=" $lang119 "></td>
</form>
</tr></table>
};
my $see_page = "";
my @see_data = split (/\=/, $db_lines[2]);
chomp($see_data[1]);
$see_data[1] =~ s/\"/""/ge;
$see_data[1] =~ s/\;/""/ge;
$see_data[1] =~ s/ /""/ge;
my $temp_str = "/home/".$userid."/public_html".$see_data[1]."/*.cnt";
my $ls_str = `ls $temp_str`;
my @get_cnt = split (/\n/, $ls_str);
my $i=0;
foreach (@get_cnt) {
my $bg_color = "DDDDDD";
chomp $_;
if($i==0) {$bg_color = "#DDDDDD"; $i=1;} else { $bg_color = "#EFEFEF"; $i=0;}
my $temp = "/home/".$userid."/public_html".$see_data[1]."/";
my $count_num = `cat $_`;
chomp $count_num;
if (!$count_num) { $count_num = 0;}
$count_num = sprintf("%06d",$count_num);
$_ =~ s/$temp/""/ge;
$_ =~ s/.cnt/""/ge;
my $lang126=&lang(126);
$see_page .= qq{<tr bgcolor="$bg_color">
<td class="font">$_</td>
<td class="font">$count_num</td>
<td class="font"><a href="/?p=600&act=Setting&act1=Generate&lang=$lang&gen_cod=$_">$lang126</td>
<td class="font"><a href="/?p=600&act=Setting&act1=Delete&lang=$lang&del_cod=$_" onclick="return comf_del_count()";><img src="/images/delete.gif" alt="" width=20 height=20 border=0></a></td>
</tr>
};
}
my $text91=&lang_txt(91);
my $text92=&lang_txt(92);
$script_con .= $text91;
if($see_page ne "") { $text92 =~ s/\$see_page/$see_page/ge; $script_con .= $text92;}
$lang_txt89 =~ s/\$uninstall/$uninstall/ge;
$lang_txt89 =~ s/\$act/"change"/ge;
$lang_txt89 =~ s/\$button/$lang117/ge;
$lang_txt89 =~ s/\$script_con/$script_con/ge;
}
} else {
my $lang120=&lang(120);
print $lang120;
}
$lang_txt89 =~ s/\$lang/$lang/ge;
print $lang_txt89;
}
}
sub page_601 {
my $act=$CGI_INPUT{'act'};
if ($act eq "Overview") {
my $lang_txt99=&lang_txt(99);
$lang_txt99 =~ s/\$lang/$lang/ge;
print $lang_txt99;
} else {
my $lang118=&lang(118); #Install
my $lang119=&lang(119); #Uninstall
my $lang_txt100=&lang_txt(100);
my $config_path="/var/wcp4/$userid/config/discuz_forum";
my $user_home = "/home/$userid/public_html/";
my $act1=$CGI_INPUT{'act1'};
if(-f $config_path) {
if($act1 eq "modify") {
my $is_install = $CGI_INPUT{'install'};
my $prog_path = $CGI_INPUT{'prog_path'};
if($is_install ne "") {
my $prog_path=$CGI_INPUT{'prog_path'};
my $database=$CGI_INPUT{'database'};
my $username=$CGI_INPUT{'username'};
my $password=$CGI_INPUT{'password'};
my $prefix=$CGI_INPUT{'prefix'};
if (&check_connection("localhost","$database","$username","$password") eq "false") {
my $lang129=&lang(129);
print "$lang129";
} else {
if($prog_path eq "") { $prog_path = '/default_prog/discuz_forum/'; }
my $wcp_prog = "/var/backend/wcp/program/discuz_forum/";
my $temp_str = "";
my $sys = `mkdir -p $user_home$prog_path`;
$temp_str = qq~/usr/local/bin/php -r 'echo rand(100000, 999999);'~;
my $salt_passwd = `$temp_str`;
$temp_str = qq~/usr/local/bin/php -r 'echo md5(md5("$password")."$salt_passwd");'~;
my $md5_passwd = `$temp_str`;
$temp_str = $wcp_prog . "* " . $user_home . $prog_path;
$sys = `cp $temp_str`;
$temp_str = "cd " .$user_home.$prog_path.";/usr/sfw/bin/gtar xvfz ".$user_home . $prog_path ."/discuz_forum7.tgz";
$sys = `$temp_str`;
$temp_str = "rm " . $user_home . $prog_path ."/discuz_forum7.tgz";
$sys = `$temp_str`;
my $sql_path = $user_home . $prog_path ."/discuz_forum7.sql";
open(DATA,"<$sql_path");
my @sql_lines= <DATA>;
close(DATA);
$temp_str = "rm $sql_path";
$sys = `$temp_str`;
my $i=0;
while($sql_lines[$i]) { $sql_lines[$i] =~ s/wcp_cdb_/$prefix/ge; $i++; }
my $sql_path = $user_home . $prog_path ."/temp.sql";
my $prog_link = $user_domain . $prog_path;
open(DATA,">$sql_path");
foreach(@sql_lines) { print DATA "$_"; }
print DATA "UPDATE ".$prefix.qq~uc_members SET `password` = '$md5_passwd', salt = '$salt_passwd' WHERE uid = '1'\;\n~;
print DATA "UPDATE ".$prefix.qq~members SET `password` = '$md5_passwd' WHERE uid = '1'\;\n~;
print DATA "UPDATE ".$prefix.qq~uc_applications SET url = 'http://$prog_link' WHERE appid = '1'\;\n~;
close(DATA);
my $insert_path = "/usr/local/mysql/bin/mysql -u $username -p'$password' --default-character-set=latin1 $database < $sql_path";
$sys = `$insert_path`;
my $config_file = $user_home . $prog_path . "/config.inc.php";
open(DATA,"$config_file");
@config_data = <DATA>;
close(DATA);
open(DATA,">$config_file");
LINE: foreach $config_line (@config_data) {
$config_line =~ s/\$WCPDBUSER/$username/ge;
$config_line =~ s/\$WCPDBPW/$password/ge;
$config_line =~ s/\$WCPDBNAME/$database/ge;
$config_line =~ s/\$WCPPRE/$prefix/ge;
$config_line =~ s/\$WCP_PROG_PATH/$prog_link/ge;
print DATA $config_line;
}
close(DATA);
my $config_file = $user_home . $prog_path . "/uc_server/data/config.inc.php";
open(DATA,"$config_file");
@config_data = <DATA>;
close(DATA);
open(DATA,">$config_file");
LINE: foreach $config_line (@config_data) {
$config_line =~ s/\$WCPDBUSER/$username/ge;
$config_line =~ s/\$WCPDBPW/$password/ge;
$config_line =~ s/\$WCPDBNAME/$database/ge;
$config_line =~ s/\$WCPPRE/$prefix/ge;
print DATA $config_line;
}
close(DATA);
$temp_str = "rm $sql_path";
$sys = `$temp_str`;
open(DATA,">$config_path");
print DATA "\$is_install = \"1\"\;\n";
print DATA "\$prog_path = \"$prog_path\"\;\n";
print DATA "\$database = \"$database\"\;\n";
print DATA "\$username = \"$username\"\;\n";
print DATA "\$password = \"$password\"\;\n";
print DATA "\$prefix = \"$prefix\"\;\n";
close(DATA);
if(`/usr/local/bin/php -v` =~ /PHP (\d+)\.(\d+)\.(\d+)/) {
if($1 ne "5") {
$temp_str = "chmod 755 /home/$userid";
$sys = `$temp_str`;
$temp_str = "cd " .$user_home.$prog_path.";chmod -R 777 config.inc.php attachments forumdata uc_client/data uc_server/data";
$sys = `$temp_str`;
}
}
my $lang121=&lang(121);
print qq{<script language="JavaScript"> <!--
alert("$lang121");
//--> </script> };
}
}
} elsif ($act1 eq "Uninstall") {
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
$db_lines[1] =~ s/\$prog_path = \"/""/ge;
$db_lines[1] =~ s/\"\;\n/""/ge;
$db_lines[2] =~ s/\$database = \"/""/ge;
$db_lines[2] =~ s/\"\;\n/""/ge;
$db_lines[3] =~ s/\$username = \"/""/ge;
$db_lines[3] =~ s/\"\;\n/""/ge;
$db_lines[4] =~ s/\$password = \"/""/ge;
$db_lines[4] =~ s/\"\;\n/""/ge;
$db_lines[5] =~ s/\$prefix = \"/""/ge;
$db_lines[5] =~ s/\"\;\n/""/ge;
if (&check_connection("localhost","$db_lines[2]","$db_lines[3]","$db_lines[4]") eq "false") {
my $lang129=&lang(129);
print "$lang129";
} else {
if($db_lines[1] =~ /^\/default_prog\/discuz_forum*/) {
my $temp = $user_home.'/default_prog/discuz_forum*';
my $sys = `rm -r $temp`;
} else {
my $temp = $user_home.$db_lines[1];
my $sys = `rm $temp`;
}
my $sql_path = "/var/backend/wcp/program/uninstall_discuz_forum7.sql";
open(DATA,"<$sql_path");
my @sql_lines= <DATA>;
close(DATA);
my $i=0;
while($sql_lines[$i]) { $sql_lines[$i] =~ s/wcp_cdb_/$db_lines[5]/ge; $i++; }
my $sql_path = "/tmp/$userid.wcp_discuz.sql";
open(DATA,">$sql_path");
print DATA @sql_lines;
close(DATA);
my $insert_path = "/usr/local/mysql/bin/mysql -u $db_lines[3] -p$db_lines[4] $db_lines[2] < $sql_path";
$sys = `$insert_path`;
open(DATA,">$config_path");
print DATA "\$is_install = \"0\"\;\n";
close(DATA);
my $lang125=&lang(125);
print qq{<script language="JavaScript"> <!--
alert("$lang125");
//--> </script> };
}
}
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
chomp($db_lines[0]);
if ($db_lines[0] eq '$is_install = "0";') {
my $data_dir = $user_home."/default_prog/discuz_forum";
my $temp="";
my $i=0;
$temp=$data_dir;
$pre_text="wcp_cdb_";
while(-d $temp) {
$temp=$data_dir.$i;
$pre_text="wcp_cdb".$i."_";
$i++;
}
$prog_path=$temp;
$prog_path =~ s/$user_home/""/ge;
$lang_txt100 =~ s/\$prog_path/$prog_path/ge;
$lang_txt100 =~ s/\$database/""/ge;
$lang_txt100 =~ s/\$username/""/ge;
$lang_txt100 =~ s/\$password/""/ge;
$lang_txt100 =~ s/\$prefix/$pre_text/ge;
$temp = qq{ <tr bgcolor="#EFEFEF"> <td> </td> <td class="font">
<input type="submit" name="install" value=" $lang118 "></td></tr> };
$lang_txt100 =~ s/\$button/$temp/ge;
$lang_txt100 =~ s/\$script_con/""/ge;
} else {
my $i=1;
while($db_lines[$i]) {
@db_data = split (/\=/, $db_lines[$i]);
chomp($db_data[0]);
chomp($db_data[1]);
$db_data[0] =~ s/ /""/ge;
$db_data[1] =~ s/\"/""/ge;
$db_data[1] =~ s/\;/""/ge;
$db_data[1] =~ s/ /""/ge;
$db_data[0] = "\\" . $db_data[0];
$lang_txt100 =~ s/$db_data[0]/$db_data[1]/ge;
$i++;
}
my $script_con = qq{<script language="JavaScript"> <!--
document.discuz_forum.database.disabled=true;
document.discuz_forum.username.disabled=true;
document.discuz_forum.password.disabled=true;
document.discuz_forum.prefix.disabled=true;
//--> </script> };
$temp = qq{ <tr bgcolor="#EFEFEF">
<td> </td>
<td class="font">
<table border="0" cellspacing="0" cellpadding="0"><tr><td></form></td>
<td><table border="1" cellspacing="0" cellpadding="0" bordercolor="#FF0000"><tr>
<td>
<form action="/" method="post" name="discuz_forum_del" onSubmit="return comf_del();">
<input type="hidden" name="p" value="601">
<input type="hidden" name="lang" value="$lang">
<input type="hidden" name="act" value="Setting">
<input type="Hidden" name="act1" value="Uninstall">
<input type="submit" name="button" value=" $lang119 "></td>
</form>
</tr></table>
</td></tr></table>
</td>
</tr>};
$lang_txt100 =~ s/\$button/$temp/ge;
$lang_txt100 =~ s/\$script_con/$script_con/ge;
$db_lines[1] =~ s/\$prog_path = \"/""/ge;
$db_lines[1] =~ s/\"\;\n/""/ge;
my $link_src = "http://$user_domain$db_lines[1]/index.php";
$link_src = qq~<a href="$link_src" target="_blank">$link_src</a>~;
my $lang127=&lang(127);
$lang127 =~ s/\$link_src/$link_src/ge;
$lang_txt100 .= "<p>".$lang127
}
} else {
my $lang120=&lang(120);
print $lang120;
}
$lang_txt100 =~ s/\$lang/$lang/ge;
print $lang_txt100;
}
}
sub page_602 {
my $act=$CGI_INPUT{'act'};
if ($act eq "Overview") {
my $lang_txt93=&lang_txt(93);
$lang_txt93 =~ s/\$lang/$lang/ge;
print $lang_txt93;
} else {
my $lang117=&lang(117); #change
my $lang118=&lang(118); #install
my $lang119=&lang(119); #uninstall
my $lang_txt86=&lang_txt(86);
my $config_path="/var/wcp4/$userid/config/datetime";
my $user_home = "/home/$userid/public_html";
if(-f $config_path) {
my $act1=$CGI_INPUT{'act1'};
if($act1 eq "modify") {
my $is_install = $CGI_INPUT{'install'};
my $prog_path = $CGI_INPUT{'prog_path'};
my $image_path = $CGI_INPUT{'image_path'};
my $TimeFormat = $CGI_INPUT{'TimeFormat'};
my $DateFormat = $CGI_INPUT{'DateFormat'};
my $DateTimeType = $CGI_INPUT{'DateTimeType'};
if($is_install ne "") {
if($prog_path eq "") { $prog_path = '/cgi-bin/default/datetime/'; }
if($image_path eq "") { $image_path = '/default_prog/datetime/images/'; }
my $wcp_prog = "/var/backend/wcp/program/datetime/";
my $temp_copy = "";
my $sys = `mkdir -p $user_home$prog_path`;
$sys = `mkdir -p $user_home$image_path`;
$temp_copy = $wcp_prog . "datetime.cgi " . $user_home . $prog_path;
$sys = `cp $temp_copy`;
$temp_copy = $wcp_prog . "images/* " . $user_home . $image_path;
$sys = `cp -rp $temp_copy`;
open(DATA,">$config_path");
print DATA "\$is_install = \"1\"\;\n";
print DATA "\$prog_path = \"$prog_path\"\;\n";
print DATA "\$image_path = \"$image_path\"\;\n";
print DATA "\$TimeFormat = \"$TimeFormat\"\;\n";
print DATA "\$DateFormat = \"$DateFormat\"\;\n";
print DATA "\$DateTimeType = \"$DateTimeType\"\;\n";
close(DATA);
my $lang121=&lang(121);
print qq{<script language="JavaScript"> <!--
alert("$lang121");
//--> </script> };
} else {
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
open(DATA,">$config_path");
print DATA "\$is_install = \"1\"\;\n";
print DATA $db_lines[1];
print DATA $db_lines[2];
print DATA "\$TimeFormat = \"$TimeFormat\"\;\n";
print DATA "\$DateFormat = \"$DateFormat\"\;\n";
print DATA "\$DateTimeType = \"$DateTimeType\"\;\n";
close(DATA);
my $lang122=&lang(122);
print qq{<script language="JavaScript"> <!--
alert("$lang122");
//--> </script> };
}
} elsif ($act1 eq "Uninstall") {
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
$db_lines[1] =~ s/\$prog_path = \"/""/ge;
$db_lines[1] =~ s/\"\;\n/""/ge;
$db_lines[2] =~ s/\$image_path = \"/""/ge;
$db_lines[2] =~ s/\"\;\n/""/ge;
if($db_lines[1] =~ /^\/cgi-bin\/default\/datetime/) {
my $temp = $user_home.'/cgi-bin/default/datetime*';
my $sys = `rm -r $temp`;
} else {
my $temp = $user_home.$db_lines[1]."/datetime.cgi";
my $sys = `rm $temp`;
}
if($db_lines[2] =~ /^\/default_prog\/datetime*\/images/) {
my $temp = $user_home.'/default_prog/datetime*';
my $sys = `rm -r $temp`;
} else {
my $temp = $user_home.$db_lines[2];
my $sys = `rm $temp`;
}
open(DATA,">$config_path");
print DATA "\$is_install = \"0\"\;\n";
close(DATA);
my $lang125=&lang(125);
print qq{<script language="JavaScript"> <!--
alert("$lang125");
//--> </script> };
}
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
chomp($db_lines[0]);
if ($db_lines[0] eq '$is_install = "0";') {
my $data_dir = $user_home."/default_prog/datetime";
my $temp="";
my $i=0;
if(!-d $user_home."/cgi-bin") {
my $sys=$user_home ."/cgi-bin";
my $err=`mkdir $sys`;
}
$temp=$user_home."/cgi-bin/default/datetime";
while(-d $temp) {
$temp=$user_home."/cgi-bin/default/datetime".$i;
$i++;
}
$temp =~ s/$user_home/""/ge;
my $prog_path = $temp;
$i=0;
$temp=$data_dir;
while(-d $temp) {
$temp=$data_dir.$i;
$i++;
}
$data_dir=$temp;
my $image_path = $data_dir."/images";
$image_path =~ s/$user_home/""/ge;
$lang_txt86 =~ s/\$uninstall/""/ge;
$lang_txt86 =~ s/\$prog_path/$prog_path/ge;
$lang_txt86 =~ s/\$image_path/$image_path/ge;
$lang_txt86 =~ s/\$[1-2][2-4]_time_selected /""/ge;
$lang_txt86 =~ s/\$[dmy][dmy][dmy]_date_selected /""/ge;
$lang_txt86 =~ s/\$[a-e]_type_selected /""/ge;
$lang_txt86 =~ s/\$act/"install"/ge;
$lang_txt86 =~ s/\$button/$lang118/ge;
$lang_txt86 =~ s/\$script_con/""/ge;
} else {
my $i=1;
my $temp="";
while($db_lines[$i]) {
@db_data = split (/\=/, $db_lines[$i]);
chomp($db_data[0]);
chomp($db_data[1]);
$db_data[0] =~ s/ /""/ge;
$db_data[1] =~ s/\"/""/ge;
$db_data[1] =~ s/\;/""/ge;
$db_data[1] =~ s/ /""/ge;
$db_data[0] = "\\" . $db_data[0];
if ($db_data[0] eq '\$TimeFormat') {
my $temp_str = $db_data[1] . "_time_selected";
$lang_txt86 =~ s/\$$temp_str/"selected"/ge;
$lang_txt86 =~ s/\$[1-2][2-4]_time_selected /""/ge;
} elsif ($db_data[0] eq '\$DateFormat') {
my $temp_str = $db_data[1] . "_date_selected";
$lang_txt86 =~ s/\$$temp_str/"selected"/ge;
$lang_txt86 =~ s/\$[dmy][dmy][dmy]_date_selected /""/ge;
} elsif ($db_data[0] eq '\$DateTimeType') {
my $temp_str = $db_data[1] . "_type_selected";
$lang_txt86 =~ s/\$$temp_str/"selected"/ge;
$lang_txt86 =~ s/\$[a-e]_type_selected /""/ge;
} else {
$lang_txt86 =~ s/$db_data[0]/$db_data[1]/ge;
}
$i++;
}
my $uninstall = qq{<table border="1" cellspacing="0" cellpadding="0" bordercolor="#FF0000"><tr>
<td>
<form action="/" method="post" name="datetime_del" onSubmit="return comf_del();">
<input type="hidden" name="p" value="602">
<input type="hidden" name="lang" value="$lang">
<input type="hidden" name="act" value="Setting">
<input type="Hidden" name="act1" value="Uninstall">
<input type="submit" name="button" value=" $lang119 "></td>
</form>
</tr></table>
};
$lang_txt86 =~ s/\$uninstall/$uninstall/ge;
$lang_txt86 =~ s/\$act/"change"/ge;
$lang_txt86 =~ s/\$button/$lang117/ge;
$lang_txt86 =~ s/\$script_con/$script_con/ge;
my $lang_txt87=&lang_txt(87);
$db_lines[1] =~ s/\$prog_path = \"/""/ge;
$db_lines[1] =~ s/\"\;\n/""/ge;
my $link_src = "http://$user_domain$db_lines[1]";
$lang_txt87 =~ s/\$link_src/$link_src/ge;
$lang_txt86 .= "<p>".$lang_txt87;
}
} else {
my $lang120=&lang(120);
print $lang120;
}
$lang_txt86 =~ s/\$lang/$lang/ge;
print $lang_txt86;
}
}
sub page_603 {
my $act=$CGI_INPUT{'act'};
if ($act eq "Overview") {
my $lang_txt94=&lang_txt(94);
$lang_txt94 =~ s/\$lang/$lang/ge;
print $lang_txt94;
} else {
my $lang117=&lang(117); #change
my $lang118=&lang(118); #install
my $lang119=&lang(119); #uninstall
my $lang_txt95=&lang_txt(95);
my $config_path="/var/wcp4/$userid/config/FormProcess";
my $user_home = "/home/$userid/public_html";
if(-f $config_path) {
my $act1=$CGI_INPUT{'act1'};
if($act1 eq "modify") {
my $is_install = $CGI_INPUT{'install'};
my $prog_path = $CGI_INPUT{'prog_path'};
my $StatDir = $CGI_INPUT{'StatDir'};
my $def_email = $CGI_INPUT{'def_email'};
if($is_install ne "") {
if($prog_path eq "") { $prog_path = '/cgi-bin/default/FormProcess/'; }
if($StatDir eq "") { $StatDir = '/default_prog/FormProcess/'; }
my $wcp_prog = "/var/backend/wcp/program/FormProcess/";
my $temp_copy = "";
my $sys = `mkdir -p $user_home$prog_path`;
$sys = `mkdir -p $user_home$StatDir`;
$temp_copy = $wcp_prog . "FormProcess.cgi " . $user_home . $prog_path;
$sys = `cp $temp_copy`;
$temp_copy = $wcp_prog . "*.html " . $user_home . $StatDir;
$sys = `cp $temp_copy`;
$temp_copy = $wcp_prog . "*.txt " . $user_home . $StatDir;
$sys = `cp $temp_copy`;
$temp_copy = $wcp_prog . "*.jpg " . $user_home . $StatDir;
$sys = `cp $temp_copy`;
open(DATA,">$config_path");
print DATA "\$is_install = \"1\"\;\n";
print DATA "\$def_email = \'$def_email\'\;\n";
print DATA "\$prog_path = \"$prog_path\"\;\n";
print DATA "\$StatDir = \"$StatDir\"\;\n";
close(DATA);
my $lang121=&lang(121);
print qq{<script language="JavaScript"> <!--
alert("$lang121");
//--> </script> };
} else {
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
open(DATA,">$config_path");
print DATA "\$is_install = \"1\"\;\n";
print DATA "\$def_email = \'$def_email\'\;\n";
print DATA $db_lines[2];
print DATA $db_lines[3];
close(DATA);
my $lang122=&lang(122);
print qq{<script language="JavaScript"> <!--
alert("$lang122");
//--> </script> };
}
} elsif ($act1 eq "Uninstall") {
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
$db_lines[2] =~ s/\$prog_path = \"/""/ge;
$db_lines[2] =~ s/\"\;\n/""/ge;
$db_lines[3] =~ s/\$StatDir = \"/""/ge;
$db_lines[3] =~ s/\"\;\n/""/ge;
if($db_lines[2] =~ /^\/cgi-bin\/default\/FormProcess/) {
my $temp = $user_home.'/cgi-bin/default/FormProcess*';
my $sys = `rm -r $temp`;
} else {
my $temp = $user_home.$db_lines[2]."/FormProcess.cgi";
my $sys = `rm $temp`;
}
if($db_lines[3] =~ /^\/default_prog\/FormProcess*/) {
my $temp = $user_home.'/default_prog/FormProcess*';
my $sys = `rm -r $temp`;
} else {
my $temp = $user_home.$db_lines[3];
my $sys = `rm $temp`;
}
open(DATA,">$config_path");
print DATA "\$is_install = \"0\"\;\n";
close(DATA);
my $lang125=&lang(125);
print qq{<script language="JavaScript"> <!--
alert("$lang125");
//--> </script> };
}
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
chomp($db_lines[0]);
if ($db_lines[0] eq '$is_install = "0";') {
my $data_dir = $user_home."/default_prog/FormProcess";
my $temp="";
my $i=0;
if(!-d $user_home."/cgi-bin") {
my $sys=$user_home ."/cgi-bin";
my $err=`mkdir $sys`;
}
$temp=$user_home."/cgi-bin/default/FormProcess";
while(-d $temp) {
$temp=$user_home."/cgi-bin/default/FormProcess".$i;
$i++;
}
$temp =~ s/$user_home/""/ge;
my $prog_path = $temp;
$i=0;
$temp=$data_dir;
while(-d $temp) {
$temp=$data_dir.$i;
$i++;
}
$data_dir=$temp;
my $StatDir = $data_dir;
$StatDir =~ s/$user_home/""/ge;
$lang_txt95 =~ s/\$prog_path/$prog_path/ge;
$lang_txt95 =~ s/\$StatDir/$StatDir/ge;
$lang_txt95 =~ s/\$def_email/""/ge;
$lang_txt95 =~ s/\$uninstall/""/ge;
$lang_txt95 =~ s/\$act/"install"/ge;
$lang_txt95 =~ s/\$button/$lang118/ge;
$lang_txt95 =~ s/\$script_con/""/ge;
} else {
my $i=1;
my $temp="";
while($db_lines[$i]) {
@db_data = split (/\=/, $db_lines[$i]);
chomp($db_data[0]);
chomp($db_data[1]);
$db_data[0] =~ s/ /""/ge;
$db_data[1] =~ s/\"\;/""/ge;
$db_data[1] =~ s/\"/""/ge;
$db_data[1] =~ s/\'\;/""/ge;
$db_data[1] =~ s/\'/""/ge;
#$db_data[1] =~ s/\;/""/ge;
$db_data[1] =~ s/ /""/ge;
$db_data[0] = "\\" . $db_data[0];
$lang_txt95 =~ s/$db_data[0]/$db_data[1]/ge;
$i++;
}
my $uninstall = qq{<table border="1" cellspacing="0" cellpadding="0" bordercolor="#FF0000"><tr>
<td>
<form action="/" method="post" name="FormProcess_del" onSubmit="return comf_del();">
<input type="hidden" name="p" value="603">
<input type="hidden" name="lang" value="$lang">
<input type="hidden" name="act" value="Setting">
<input type="Hidden" name="act1" value="Uninstall">
<input type="submit" name="button" value=" $lang119 "></td>
</form>
</tr></table>
};
$lang_txt95 =~ s/\$uninstall/$uninstall/ge;
$lang_txt95 =~ s/\$act/"change"/ge;
$lang_txt95 =~ s/\$button/$lang117/ge;
$lang_txt95 =~ s/\$script_con/$script_con/ge;
$db_lines[3] =~ s/\$StatDir = \"/""/ge;
$db_lines[3] =~ s/\"\;\n/""/ge;
my $link_src = "http://$user_domain$db_lines[3]/sample.html";
$link_src = qq~<a href="$link_src" target="_blank">$link_src</a>~;
my $lang127=&lang(127);
$lang127 =~ s/\$link_src/$link_src/ge;
$lang_txt95 .= "<p>".$lang127
}
} else {
my $lang120=&lang(120);
print $lang120;
}
$lang_txt95 =~ s/\$lang/$lang/ge;
print $lang_txt95;
}
}
sub page_604 {
my $act=$CGI_INPUT{'act'};
if ($act eq "Overview") {
my $lang_txt96=&lang_txt(96);
$lang_txt96 =~ s/\$lang/$lang/ge;
print $lang_txt96;
} else {
my $lang118=&lang(118); #install
my $lang119=&lang(119); #uninstall
my $lang_txt97=&lang_txt(97);
my $config_path="/var/wcp4/$userid/config/postcard";
my $user_home = "/home/$userid/public_html";
if(-f $config_path) {
my $act1=$CGI_INPUT{'act1'};
if($act1 eq "modify") {
my $is_install = $CGI_INPUT{'install'};
my $prog_path = $CGI_INPUT{'prog_path'};
my $StatDir = $CGI_INPUT{'StatDir'};
my $image_path = $CGI_INPUT{'image_path'};
if($is_install ne "") {
if($prog_path eq "") { $prog_path = '/cgi-bin/default/postcard/'; }
if($StatDir eq "") { $StatDir = '/default_prog/postcard/'; }
if($image_path eq "") { $image_path = '/default_prog/postcard/images/'; }
my $wcp_prog = "/var/backend/wcp/program/postcard/";
my $temp_copy = "";
my $sys = `mkdir -p $user_home$prog_path`;
$sys = `mkdir -p $user_home$StatDir`;
$sys = `mkdir -p $user_home$image_path`;
$temp_copy = $wcp_prog . "postcard.cgi " . $user_home . $prog_path;
$sys = `cp $temp_copy`;
$temp_copy = $wcp_prog . "template.html " . $user_home . $StatDir;
$sys = `cp $temp_copy`;
$temp_copy = $wcp_prog . "cards_detail.txt " . $user_home . $StatDir;
$sys = `cp $temp_copy`;
$temp_copy = $wcp_prog . "images/* " . $user_home . $image_path;
$sys = `cp -r $temp_copy`;
open(DATA,">$config_path");
print DATA "\$is_install = \"1\"\;\n";
print DATA "\$prog_path = \"$prog_path\"\;\n";
print DATA "\$StatDir = \"$StatDir\"\;\n";
print DATA "\$image_path = \"$image_path\"\;\n";
close(DATA);
my $lang121=&lang(121);
print qq{<script language="JavaScript"> <!--
alert("$lang121");
//--> </script> };
}
} elsif ($act1 eq "Uninstall") {
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
$db_lines[1] =~ s/\$prog_path = \"/""/ge;
$db_lines[1] =~ s/\"\;\n/""/ge;
$db_lines[2] =~ s/\$StatDir = \"/""/ge;
$db_lines[2] =~ s/\"\;\n/""/ge;
$db_lines[3] =~ s/\$image_path = \"/""/ge;
$db_lines[3] =~ s/\"\;\n/""/ge;
if($db_lines[1] =~ /^\/cgi-bin\/default\/postcard/) {
my $temp = $user_home.'/cgi-bin/default/postcard*';
my $sys = `rm -r $temp`;
} else {
my $temp = $user_home.$db_lines[1]."/postcard.cgi";
my $sys = `rm $temp`;
}
if($db_lines[2] =~ /^\/default_prog\/postcard*/) {
my $temp = $user_home.'/default_prog/postcard*';
my $sys = `rm -r $temp`;
} else {
my $temp = $user_home.$db_lines[2];
my $sys = `rm $temp`;
}
open(DATA,">$config_path");
print DATA "\$is_install = \"0\"\;\n";
close(DATA);
my $lang125=&lang(125);
print qq{<script language="JavaScript"> <!--
alert("$lang125");
//--> </script> };
}
open(DATA,"<$config_path");
my @db_lines= <DATA>;
close(DATA);
chomp($db_lines[0]);
if ($db_lines[0] eq '$is_install = "0";') {
my $data_dir = $user_home."/default_prog/postcard";
my $temp="";
my $i=0;
if(!-d $user_home."/cgi-bin") {
my $sys=$user_home ."/cgi-bin";
my $err=`mkdir $sys`;
}
$temp=$user_home."/cgi-bin/default/postcard";
while(-d $temp) {
$temp=$user_home."/cgi-bin/default/postcard".$i;
$i++;
}
$temp =~ s/$user_home/""/ge;
my $prog_path = $temp;
$i=0;
$temp=$data_dir;
while(-d $temp) {
$temp=$data_dir.$i;
$i++;
}
$data_dir=$temp;
my $StatDir = $data_dir;
$StatDir =~ s/$user_home/""/ge;
my $image_path = $data_dir."/images";
$image_path =~ s/$user_home/""/ge;
$lang_txt97 =~ s/\$prog_path/$prog_path/ge;
$lang_txt97 =~ s/\$StatDir/$StatDir/ge;
$lang_txt97 =~ s/\$image_path/$image_path/ge;
$temp = qq{ <tr bgcolor="#EFEFEF"> <td> </td> <td class="font">
<input type="submit" name="install" value=" $lang118 "></td></tr> };
$lang_txt97 =~ s/\$button/$temp/ge;
$lang_txt97 =~ s/\$script_con/""/ge;
} else {
my $i=1;
while($db_lines[$i]) {
@db_data = split (/\=/, $db_lines[$i]);
chomp($db_data[0]);
chomp($db_data[1]);
$db_data[0] =~ s/ /""/ge;
$db_data[1] =~ s/\"/""/ge;
$db_data[1] =~ s/\;/""/ge;
$db_data[1] =~ s/ /""/ge;
$db_data[0] = "\\" . $db_data[0];
$lang_txt97 =~ s/$db_data[0]/$db_data[1]/ge;
$i++;
}
my $script_con = qq{<script language="JavaScript"> <!--
document.postcard.prog_path.disabled=true;
document.postcard.StatDir.disabled=true;
document.postcard.image_path.disabled=true;
//--> </script> };
$temp = qq{ <tr bgcolor="#EFEFEF">
<td> </td>
<td class="font">
<table border="0" cellspacing="0" cellpadding="0"><tr><td></form></td>
<td><table border="1" cellspacing="0" cellpadding="0" bordercolor="#FF0000"><tr>
<td>
<form action="/" method="post" name="postcard_del" onSubmit="return comf_del();">
<input type="hidden" name="p" value="604">
<input type="hidden" name="lang" value="$lang">
<input type="hidden" name="act" value="Setting">
<input type="Hidden" name="act1" value="Uninstall">
<input type="submit" name="button" value=" $lang119 "></td>
</form>
</tr></table>
</td></tr></table>
</td>
</tr>};
$lang_txt97 =~ s/\$button/$temp/ge;
$lang_txt97 =~ s/\$script_con/$script_con/ge;
$db_lines[1] =~ s/\$prog_path = \"/""/ge;
$db_lines[1] =~ s/\"\;\n/""/ge;
my $link_src = "http://$user_domain$db_lines[1]/postcard.cgi";
$link_src = qq~<a href="$link_src" target="_blank">$link_src</a>~;
my $lang127=&lang(127);
$lang127 =~ s/\$link_src/$link_src/ge;
$lang_txt97 .= "<p>".$lang127;
}
} else {
my $lang120=&lang(120);
print $lang120;
}
$lang_txt97 =~ s/\$lang/$lang/ge;
print $lang_txt97;
}
}
sub page_700 {
my $lang_txt77=&lang_txt(77);
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt77 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt77 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt77;
}
sub page_701 {
my $lang_txt78=&lang_txt(78);
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt78 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt78 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt78;
}
sub page_702 {
if (&check_valueadd($userid,"702") eq "Y") {
my $lang87=&lang(87);
my $lang_txt80=&lang_txt(80);
$lang_txt80 =~ s/\$userid/$userid/ge;
$lang_txt80 =~ s/\$usr_sitebox/$usr_sitebox/ge;
$lang_txt80 =~ s/\$lang87/$lang87/ge;
$lang_txt80 =~ s/\$lang/$lang/ge;
print $lang_txt80;
} else {
my $lang_txt79=&lang_txt(79);
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt79 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt79 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt79;
}
}
sub page_703 {
my $lang_txt81=&lang_txt(81);
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt81 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt81 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt81;
}
sub page_704 {
my $lang_txt82=&lang_txt(82);
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt82 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt82 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt82;
}
sub page_705 {
my $lang_txt83=&lang_txt(83);
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt83 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt83 =~ s/\$communilink_info/$temp_info/ge;
}
print $lang_txt83;
}
sub page_706 {
my $lang_txt84=&lang_txt(84);
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt84 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt84 =~ s/\$communilink_info/$temp_info/ge;
}
$lang_txt84=~ s/\$res_info_com/$res_info_com/ge;
$lang_txt84 =~ s/\$lang/$lang/ge;
print $lang_txt84;
}
sub page_707 {
my $lang_txt85=&lang_txt(85);
if($user_reseller eq "1"){
my $lang83=&lang(83);
$lang_txt85 =~ s/\$communilink_info/$lang83/ge;
} else {
my $temp_info=" ";
$lang_txt85 =~ s/\$communilink_info/$temp_info/ge;
}
$lang_txt85=~ s/\$res_info_com/$res_info_com/ge;
print $lang_txt85;
}
1;