📄 loginout.cgi
字号:
#!/usr/bin/perl
#############################################################
# Ikonboard v2.1
# Copyright 2000 Ikondiscussion.com - All Rights Reserved
# Ikondiscussion is a trademark of Ikondiscussion.com
#
# Software Distributed by: Ikondiscussion.com
# Visit us online at http://www.ikondiscussion.com
# Email us on boards@ikondiscussion.com
#
# All files written by Matthew Mecham
#############################################################
#use CGI::Carp "fatalsToBrowser"; # Output errors to browser
use CGI qw(:standard); # Saves loads of work
$CGI::POST_MAX=1024 * 150; # limit post data
$CGI::DISABLE_UPLOADS = 1; # Disable uploads
eval {
($0 =~ m,(.*)/[^/]+,) and unshift (@INC, "$1");
($0 =~ m,(.*)\\[^\\]+,) and unshift (@INC, "$1");
require "ikon.lib"; # Require ikonboard ()
require "data/progs.cgi"; # Require prog names
require "data/boardinfo.cgi";# Require board info
require "data/styles.cgi"; # Require styles info
};
if ($@) {
print header(-charset=>"gb2312"); print start_html(-title=>"ib2000 出错!");
print "不能够找到文件:$@\n如果您使用的是 Windows 类操作系统,请在每一个程序中更改 require 的设置,填入绝对路径!";
print end_html; exit;
}
$|++; # Unbuffer the output
#################--- Begin the program ---###################
$thisprog = "loginout.cgi";
$query = new CGI;
$boardurltemp =$boardurl;
$boardurltemp =~ s/http\:\/\/(\S+?)\/(.*)/\/$2/;
$cookiepath = $boardurltemp;
$cookiepath =~ s/$thisprog//sg;
for ('inmembername','inpassword','action') {
next unless defined $_;
next if $_ eq 'SEND_MAIL';
$tp = $query->param($_);
$tp = &unHTML("$tp");
${$_} = $tp;
}
if (! $inmembername) { $inmembername = cookie("amembernamecookie"); }
if (! $inpassword) { $inpassword = cookie("apasswordcookie"); }
if ($inmembername eq "") {
$inmembername = "客人";
}
else {
&getmemberstime("$inmembername");
}
&title;
$output .= qq~
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center>
<tr>
<td width=30% rowspan=2 valign=top><img src="$imagesurl/images/$boardlogo" border=0></td>
<td valign=top align=left><font face="$font" color=$fontcolormisc>
<font face="$font" color=$fontcolormisc>
<img src="$imagesurl/images/closedfold.gif" border=0> <a href="$forumsummaryprog">$boardname</a>
<br>
<img src="$imagesurl/images/bar.gif" border=0><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%>
~;
if ($action eq "login") {
&getmember("$inmembername");
&whosonline("$inmembername|论坛登陆|none|登陆论坛|");
if (($userregistered ne "no") && ($inpassword eq $password)) {
# 删除自身为客人时的在线状态
$filetoopen = "$ikondir" . "data/onlinedata.dat";
$filetoopen = &stripMETA($filetoopen);
open(FILE,"$filetoopen");
@onlinedata = <FILE>;
close(FILE);
open(FILE,">$filetoopen");
flock(FILE, 2) if ($OS_USED eq "Unix");
$ipaddresstemp = $ENV{'REMOTE_ADDR'};
foreach $line (@onlinedata) {
chomp $line;
($savedusername, $savedtime, $savedwhere) = split(/\|/, $line);
print FILE "$line\n" if ($savedusername ne "客人($ipaddresstemp)");
} # end foreach
close(FILE);
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo valign=middle align=center><font face="$font" color=$fontcolormisc><b>感谢你登陆 $inmembername</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>
情况:
<ul>
<li><a href="$forumsummaryprog">进入论坛</a>
<meta http-equiv="refresh" content="3; url=$forumsummaryprog">
</ul>
</tr>
</td>
</table></td></tr></table>
<meta http-equiv="refresh" content="2; url=$forumsummaryprog">
~;
$namecookie = cookie(-name => "amembernamecookie",
-value => "$inmembername",
-path => "$cookiepath",
-expires => "+30d");
$passcookie = cookie(-name => "apasswordcookie",
-value => "$inpassword",
-path => "$cookiepath",
-expires => "+30d");
print header(-cookie=>[$namecookie, $passcookie], -charset=>"gb2312");
}
else {
print header(-charset=>"gb2312");
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo valign=middle align=center><font face="$font" color=$fontcolormisc><b>登陆错误</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>
登陆错误的可能原因:
<ul>
<li>密码错误
<li>用户名错误
<li>您不是<a href="$registerprog">注册</a>用户
</ul>
</tr>
</td>
</table></td></tr></table>
~;
}
}
elsif ($action eq "logout") {
# 删除在线状态
$filetoopen = "$ikondir" . "data/onlinedata.dat";
$filetoopen = &stripMETA($filetoopen);
open(FILE,"$filetoopen");
@onlinedata = <FILE>;
close(FILE);
open(FILE,">$filetoopen");
flock(FILE, 2) if ($OS_USED eq "Unix");
foreach $line (@onlinedata) {
chomp $line;
($savedusername, $savedtime, $savedwhere) = split(/\|/, $line);
print FILE "$line\n" if ($savedusername ne $inmembername);
} # end foreach
close(FILE);
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo valign=middle align=center><font face="$font" color=$fontcolormisc><b>您现在已经退出论坛</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>
具体选项:
<ul>
<li><a href="$forumsummaryprog">返回论坛</a>
<li>关闭您的浏览器。
</ul>
</tr>
</td>
</table></td></tr></table>
~;
$namecookie = cookie(-name => "amembernamecookie",
-path => "$cookiepath",
-value => "",
-expires => "now");
$passcookie = cookie(-name => "apasswordcookie",
-value => "",
-path => "$cookiepath",
-expires => "now");
$trashcookie = cookie(-name => "templastvisit",
-path => "$cookiepath",
-value => "",
-expires => "now");
print header(-cookie=>[$namecookie, $passcookie, $trashcookie], -charset=>"gb2312");
}
else {
print header(-charset=>"gb2312");
$inmembername =~ s/\_/ /g;
&whosonline("$inmembername|论坛登陆|none|登陆论坛|");
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center>
<form action="$thisprog" method="post">
<input type=hidden name="action" value="login">
<font face="$font" color=$fontcolormisc><b>请输入您的用户名、密码登陆</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>请输入您的用户名</font></td>
<td bgcolor=$miscbackone valign=middle><input type=text name="inmembername" value="$inmembername"0> <a href="$registerprog"><font face="$font" color=$fontcolormisc>没有注册?</font></a></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>请输入您的密码</font></td>
<td bgcolor=$miscbackone valign=middle><input type=password name="inpassword" value="$inpassword"0> <font face="$font" color=$fontcolormisc><a href="$profileprog?action=lostpass">忘记密码?</a></font></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>
~;
}
&output(
-Title => "$boardname - 登陆/退出",
-ToPrint => $output,
-Version => $versionnumber
);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -