XXX邮件的一段代码

不小心点开了邮件的一段代码

这是什么语言写的?

#!/usr/bin/perl -w

use strict;
use POSIX;
use IO::Socket;
use CGI::Fast qw(:standard);
use CGI::Cookie;
use LWP::UserAgent;
use URI::Escape;

use lib '/home/apache/fcgi_files';
use Util;
use CMAPI;
use MySes;
use Grade;
use UserInfo;
use MyLog;
#use URI::Escape;
#use MIME::Base64;

sub handle_term;

$SIG{'TERM'} = /&handle_term;
$SIG{'INT'} = /&handle_term;
$SIG{'ABRT'} = /&handle_term;
$SIG{'CHLD'} = 'IGNORE';

my $domain = 'XXX.com';

#my $title = "query";
#my $LOGDIR = "/home/coremail/logs";
my $LOGDIR = "/home/webedit/young/logs";
my $logname = "Grade_XXX";

my $PAGEDIR = '/home/apache/fcgi_files/html/XXX';

# read page
open(INDEX,"$PAGEDIR/index.htm") || exit(0);#die "Open login.htm: $!";
my @page_index = <INDEX>;
close(INDEX);

open(LOGIN,"$PAGEDIR/login.htm") || exit(0);#die "Open login.htm: $!";
my @page_login = <LOGIN>;
close(LOGIN);

=head
open(ERROR,"$PAGEDIR/error.htm") || die "Open error.htm: $!";
my @page_error = <ERROR>;
close(ERROR);
=cut

my $errmsg = "系统繁忙,暂时未能响应你的请求,请稍候。";
my $loginerrmsg = "验证失败,请先登录";
my $loginblockmsg = "失败尝试次数过多,请稍后再登录";
#my $pre_url = "http://reg.XXXcom/servlet/netease.user.Login2Servlet?username=&password=&userip=";

my $ua = LWP::UserAgent->new(
    'keep_alive'    =>  30,
    'timeout'       =>  1,
);

#my $sesh = MySes->connect || die "Connect mysql err: $!";

my $logdate = POSIX::strftime("%y%m%d",localtime);
my $statlog = "$LOGDIR/$logname/_$logdate.log";
&InitMyLog($statlog);

my $cmapi_host = 'api.XXX.internal';
my $cmapi_port = 2700;

OUTER: while(my $req = new CGI::Fast)
{
my $cmh;
eval{
my %replace = ();
my $today = POSIX::strftime("%y%m%d",localtime);
    unless($today eq $logdate)
    {
        $logdate = $today;
        $statlog = "$LOGDIR/$logname/_$logdate.log";
        &InitMyLog($statlog);
    }
my $logfile = "$LOGDIR/$logname/_$today.err";
my $sid = $req->param('sid');
my $username = $req->param('username');
my $password = $req->param('password');
my $uid=$req->param('uid');
    my $userip = $ENV{'REMOTE_ADDR'};
    my $fullname;
    my $dispname;
unless($uid || $username || $sid)
{
print $req->header(-charset=>'gb2312');
PrintPage(/@page_index,/%replace);
die;
}
if($uid)
    {
$uid = uri_unescape($uid);
$cmh = CM_Conn($cmapi_host,$cmapi_port);
        unless($cmh)
        {
            print $req->header(-charset=>'gb2312');
PrintPage(/@page_index,/%replace);
            die;
        }
my $ret = CheckSesTimeOut($cmh,$uid);
$fullname = $$ret{'uid'};
        unless($fullname)
        {
            print $req->header(-charset=>'gb2312');
PrintPage(/@page_index,/%replace);
            die;
        }
        $username = (split(/@/,$fullname))[0];
        #my $session = MySes->new($sesh);
#my $session = MySes->new($uid);
my $session = MySes->new();
        my $sess_ret = $session->WriteSes($fullname);
        unless($sess_ret)
        {
            print $req->header(-charset=>'gb2312');
Error($errmsg);
            die;
        }
        $sid = $session->GetSid;
CM_Close($cmh);
    }
elsif($sid)
{
        #my $session = MySes->new($sesh,$sid);
my $session = MySes->new($sid);
        unless($fullname=$session->CheckSes())
        {
            print $req->header(-charset=>'gb2312');
#$replace{'errmsg'} = $loginerrmsg;
#PrintPage(/@page_error,/%replace);
Error($loginerrmsg);
            die;
        }
        $username = (split(/@/,$fullname))[0];
    }
    elsif($username)
    {
        unless($password)
        {
            print $req->header(-charset=>'gb2312');
#$replace{'title'} = $replace{'errmsg'} = "未输入密码";
#PrintPage(/@page_error,/%replace);
Error("请输入密码");
            PrintErr($logfile,"$username|password required");
            die;
        }
        $username = uri_unescape($username);
        $password = uri_unescape($password);
        if($username =~ /@/)
        {
            $fullname = $username;
            $username = (split(/@/,$fullname))[0];
        }else
        {
            $fullname = $username."/@$domain";
        }
my $cmh = CM_Conn($cmapi_host,$cmapi_port);
        unless($cmh)
        {
            print $req->header(-charset=>'gb2312');
PrintPage(/@page_index,/%replace);
            die;
        }
        my $ret = CheckPass($cmh,$fullname,$password);
        unless($ret == 0)
        {
            print $req->header(-charset=>'gb2312');
PrintPage(/@page_index,/%replace);
            CM_Close($cmh);
            die;
        }
        CM_Close($cmh);
        #my $session = MySes->new($sesh);
        my $session = MySes->new();
        $session->WriteSes($fullname);
        $sid = $session->GetSid;
    }
    #undef $session;

# 验证完成

##############################################################

    my ($jifen,$level,$rcode);

    $|=1;
    $fullname = "$username/@$domain";
    WriteLog("Login: $fullname($userip)");
    #my $grade = Grade->new('192.168.2.106',7788);
    my $grade = new Grade($ua);
unless($grade){
print $req->header(-charset=>'gb2312');
        #$replace{'title'} = $replace{'errmsg'} = "积分对象创建失败";
#$replace{'title'} = $replace{'errmsg'} = $errmsg;
#PrintPage(/@page_error,/%replace);
Error($errmsg);
PrintErr($logfile,"Can't new Grade:$!");
die;
}
    my $ret = $grade->Query($fullname);
unless($ret){
print $req->header(-charset=>'gb2312');
        #$replace{'title'} = $replace{'errmsg'} = "服务器内部通信失败";
#$replace{'title'} = $replace{'errmsg'} = $errmsg;
#PrintPage(/@page_error,/%replace);
Error($errmsg);
PrintErr($logfile,"Can't connect to server:$!");
die;
}
$rcode = $grade->rcode;
if($rcode <= 0)
{
print $req->header(-charset=>'gb2312');
        #$replace{'title'} = $replace{'errmsg'} = "数据库出错";
#$replace{'title'} = $replace{'errmsg'} = $errmsg;
#PrintPage(/@page_error,/%replace);
Error($errmsg);
PrintErr($logfile,"$username|DB server error: $rcode");
die;
}
    $jifen = $grade->grade;
    $level = $grade->level;

    my $uinfo = UserInfo->new($ua,$fullname);
    if($uinfo)
    {
        my %user_info = $uinfo->QueryBatch('nickname','realname');
        if( %user_info && $user_info{'rcode'}>=-1 )
        {
            $dispname ||= $user_info{'nickname'};
            $dispname ||= $user_info{'realname'};
        }
    }
    #print STDERR "here $username/n";
    $dispname ||= $username;

# 页面输出
    $replace{'uname'} = $dispname;
    $replace{'sid'} = $sid;


    $replace{'jifen'} = $jifen;
    $replace{'level'} = $level;

=head_暂不提供用户查询
    $replace{'jifen'} = 0;
    $replace{'level'} = '<img src="http://mimg.XXX.com/jsstyle/icon/jifen/jf_null.gif" border="0" />';
=cut

    my $cookie_jifen = new CGI::Cookie(-name=>"jifenXXX_$username",-value=>$jifen,-domain=>'mail.XXX.com');
    my $cookie_level = new CGI::Cookie(-name=>"levelXXX_$username",-value=>$level,-domain=>'mail.XXX.com');
my $cookie_name = new CGI::Cookie(-name=>'nameXXX',-value=>$dispname,-domain=>'mail.XXX.com');
    #my $cookie_sid = new CGI::Cookie(-name=>'grade_sid',-value=>$sid);
   
print $req->header(-charset=>'gb2312',-cookie=>[$cookie_jifen,$cookie_level,$cookie_name]);
    PrintPage(/@page_login,/%replace);
};
if($@){
if($cmh){
CM_Close($cmh);
}
}
sub handle_term
{
#next OUTER;
=head
if($sesh)
    {
        $sesh->disconnect;
    }
=cut
print CGI::header;
if($cmh){
CM_Close($cmh);
}
exit(0);
}
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值