📄 profile.cgi
字号:
#!/usr/bin/perl
#############################################################
# LeoBoard ver.5000 / LB5000 / 雷傲超级论坛 ver.5000
#
# 版权所有: 雷傲工作室(原蓝宝石软件工作室)
#
# 制作人 : 山鹰糊 (Shining Hu)
# 花无缺 (Ifairy Han)
#
# 主页地址: http://www.CGIer.com/ CGI 编程者之家
# http://www.LeoBoard.com/ 雷傲论坛支持主页
# http://www.leoBBS.com/ 本论坛直通车
# http://mail@17do.com/ 大家一起邮
#
#############################################################
BEGIN {
$LBPATH = '.';
my $pgm = $0;
$pgm =~s/\\/\//g;
$pgm =~s/^.*\/([^\/]+)$/$1/g;
unless (-e $LBPATH.'/'.$pgm) {
foreach ($0, $ENV{'SCRIPT_FILENAME'}, $ENV{'PATH_TRANSLATED'}) {
s!\\!/!g; s/^(.*)\/[^\/]+$/$1/g;
if (-e $_ . '/' .$pgm) { $LBPATH = $_; last; }
}
}
unshift (@INC, "$LBPATH");
# $ENV{'TMP'}="$LBPATH/lock"; #如果你不能上传图片,请去掉前面的#
# $ENV{'TEMP'}="$LBPATH/lock";#如果你不能上传图片,请去掉前面的#
}
use LBCGI;
$LBCGI::POST_MAX=1024*150;
$LBCGI::DISABLE_UPLOADS = 0;
$LBCGI::HEADERS_ONCE = 1;
require "code.cgi";
require "data/boardinfo.cgi";
require "data/styles.cgi";
require "data/membertitles.cgi";
require "lbmail.lib.pl";
require "lb.lib.pl";
$|++; # Unbuffer the output
$thisprog = "profile.cgi";
$query = new LBCGI;
&ipbanned; #封杀一些 ip
if ($COOKIE_USED eq 1) {$cookiepath ="";}
else {
$boardurltemp =$boardurl;
$boardurltemp =~ s/http\:\/\/(\S+?)\/(.*)/\/$2/;
$cookiepath = $boardurltemp;
$cookiepath =~ s/\/$//;
# $cookiepath =~ tr/A-Z/a-z/;
}
$addme=$query->param('addme');
if ($arrowavaupload ne "on") { undef $addme; }
$action = $query -> param('action');
$inmember = $query -> param('member');
$inmember =~ s/\///g;
$inmember =~ s/\.\.//g;
$inmembername = $query -> param("membername");
$inpassword = $query -> param("password");
$oldpassword = $query -> param("oldpassword");
$action = &cleaninput("$action");
$inmember = &cleaninput("$inmember");
$inmembername = &cleaninput("$inmembername");
$inpassword = &cleaninput("$inpassword");
$oldpassword = &cleaninput("$oldpassword");
if (! $inmembername) { $inmembername = $query->cookie("amembernamecookie"); }
if (! $inpassword) { $inpassword = $query->cookie("apasswordcookie"); }
$inmembername =~ s/[\a\f\n\e\0\r\t\`\~\!\@\#\$\%\^\&\*\(\)\+\=\\\{\}\;\'\:\"\,\.\/\<\>\?]//isg;
$inpassword =~ s/[\a\f\n\e\0\r\t\|\@\;\#\{\}\$]//isg;
if (($inmembername eq "")&&($action ne "lostpass")&&($action ne "lostpassword")&&($action ne "sendpassword")){
$inmembername = "客人";
$userregistered = "no";
if ($dispprofile eq "no") {
print header(-charset=>gb2312);
&error("查看会员资料&客人无权查看会员资料!")
}
}
else {
# &getmember("$inmembername");
&getmembernolock("$inmembername");
&error("普通错误&此用户根本不存在!") if (($userregistered eq "no")&&($action ne "lostpass")&&($action ne "lostpassword")&&($action ne "sendpassword"));
&error("普通错误&密码与用户名不相符,请重新登录!") if ($inpassword ne $password && $action eq "show");
}
if ($arrawsignpic eq "on") { $signpicstates = "允许";} else {$signpicstates = "禁止";}
if ($arrawsignflash eq "on") { $signflashstates = "允许";} else {$signflashstates = "禁止";}
if ($arrawsignfontsize eq "on") { $signfontsizestates = "允许";} else {$signfontsizestates = "禁止";}
if ($arrawsignsound eq "on") { $signsoundstates = "允许";} else {$signsoundstates = "禁止";}
# Print the page title
&title;
if ($boardlogo =~ /\.swf$/i) {$forumgraphic = qq~<PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><embed src=$imagesurl/myimages/$boardlogo quality=high width=$boardlogow height=$boardlogoh pluginspage="http:\/\/www.macromedia.com\/shockwave\/download\/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application\/x-shockwave-flash"><\/embed>~}
else {$forumgraphic = qq~<img src=$imagesurl/myimages/$boardlogo>~};
$output .= qq~
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center>
<tr>
<td width=30% rowspan=2 valign=top>
$forumgraphic
</td>
<td valign=top align=left>
<font color=$fontcolormisc>
<img src="$imagesurl/images/closedfold.gif" border=0> <a href="leoboard.cgi">$boardname</a><br>
<img src="$imagesurl/images/bar.gif" border=0 width=15 height=15><img src="$imagesurl/images/openfold.gif" border=0> 用户资料
</td>
</tr>
</table>
<p>
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
<tr><td>
<table cellpadding=6 cellspacing=1 border=0 width=100%>
~;
my %Mode = (
'show' => \&showprofile,
'shows' => \&showprofile,
'process' => \&savemodify,
'lostpassword' => \&lostpasswordform,
'lostpass' => \&lostpasswordform,
'sendpassword' => \&sendpassword,
'modify' => \&modify,
);
if($Mode{$action}) {
$Mode{$action}->();
}
else{
$inmembername =~ s/\_/ /g;
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center>
<form action="$thisprog" method="post">
<input type=hidden name="action" value="modify">
<font color=$fontcolormisc><b>请登录后修改你的个人资料</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font color=$fontcolormisc>请输入您的用户名</font></td>
<td bgcolor=$miscbackone valign=middle><input type=text name="membername" value="$inmembername"></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font color=$fontcolormisc>请输入您的密码</font></td>
<td bgcolor=$miscbackone valign=middle><input type=password name="password" value="$inpassword"></td></tr>
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><input type=submit name="submit" value="登 陆"></td></form></tr></table></td></tr></table>
~;
} # end else
print header(-charset=>gb2312);
&output(
-Title => $boardname,
-ToPrint => $output,
-Version => $versionnumber
);
# lost password routine
sub lostpasswordform {
$helpurl = &helpfiles("遗忘密码");
$helpurl = qq~$helpurl<img src="$imagesurl/images/help_b.gif" border=0></a>~;
$output =~ s/\ \;用户资料/\ \;忘记密码/g;
$output .= qq~
<p>
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center>
<form action="$thisprog" method="post">
<input type=hidden name="action" value="sendpassword">
<font color=$fontcolormisc><b>请输入您的用户名,我们可以将您的密码通过邮件发给您!</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone><font color=$fontcolormisc>请输入您的用户名</td>
<td bgcolor=$miscbackone><input type=text name="membername"> $helpurl</td></tr>
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center>
<font color=$fontcolormisc><b>如你没有填写正确的E-Mail可以输入密码提示问题和答案取得密码!</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone><font color=$fontcolormisc>请输入密码提示问题</td>
<td bgcolor=$miscbackone><input type=text size=20 name="getpassq"></td></tr>
<tr>
<td bgcolor=$miscbackone><font color=$fontcolormisc>请输入密码提示答案</td>
<td bgcolor=$miscbackone><input type=text size=20 name="getpassa"></td></tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><input type=submit name=submit value="提 交">
</td></form></tr></table></td></tr></table>
~;
} # end lost password form.
sub sendpassword {
$ingetpassq = &cleaninput($query -> param("getpassq"));
$ingetpassa = &cleaninput($query -> param("getpassa"));
# &getmember("$inmembername");
if (($membercode eq "ad")||($membercode eq "smo")) { &blocked; }
elsif(($ingetpassq ne "")&&($ingetpassa ne "")){
my ($getpassq, $getpassa) =split(/\|/,$userquestion);
if(($ingetpassq eq $getpassq)&&($ingetpassa eq $getpassa)&&($membercode ne "mo")&&($membercode ne "cmo")){
$output .= qq~
<tr><td bgcolor=$miscbacktwo valign=middle align=center><font color=$fontcolormisc><b>你好,$inmembername</b></font></td></tr>
<tr><td bgcolor=$miscbackone align=center><font color=$fontcolormisc>应您的要求,现将您的密码显示!</td></tr>
<tr><td bgcolor=$miscbackone align=center><font color=$fontcolormisc>
您的用户名称:$inmembername<br>
您的密码是:$password
</td></tr></table></td></tr></table>
~;
}else{
$output .= qq~
<tr><td bgcolor=$miscbacktwo valign=middle align=center><font color=$fontcolormisc><b>非常抱歉,$inmembername</b></font></td></tr>
<tr><td bgcolor=$miscbackone align=center><font color=$fontcolormisc>
你所输入的密码提示问题和答案不正确,或是你没有在个人资料中填写! (注:如果你是斑竹,出于安全考虑,请用邮件取回密码!)
</td></tr></table></td></tr></table>
~;
}
}
elsif ($emailfunctions eq "off") { # if close Email functions
$output .= qq~
<tr><td bgcolor=$miscbacktwo valign=middle align=center><font color=$fontcolormisc><b>非常抱歉,$inmembername</b></font></td></tr>
<tr><td bgcolor=$miscbackone align=center><font color=$fontcolormisc>
由于这个论坛的发送邮件功能已经关闭,请通过另外的途径来联系坛主而拿取您的密码!
</td></tr></table></td></tr></table>
~;}
elsif ($userregistered ne "no") { # start emailing functions
$message .= "\n";
$message .= "$boardname <br>\n";
$message .= "$boardurl/leoboard.cgi \n<br><br>\n";
$message .= "------------------------------------<br>\n";
$message .= "应您的要求,现将您的密码寄给您!\n <br><br>\n";
$message .= "您的用户名:$inmembername <br>\n";
$message .= "您的密码是:$password\n <br><br>\n";
$message .= "------------------------------------<br>\n";
$to = $emailaddress;
$from = $adminemail_out;
$subject = "忘记密码[$boardname]";
&sendmail($from, $from, $to, $subject, $message );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -