⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loginout.cgi

📁 绿叶网络小学校园网-完全适合小学的网站
💻 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>
	    &nbsp;&nbsp;<img src="$imagesurl/images/closedfold.gif" border=0>&nbsp;&nbsp;<a href="$forumsummaryprog">$boardname</a>
	    <br>
        &nbsp;&nbsp;<img src="$imagesurl/images/bar.gif" border=0><img src="$imagesurl/images/openfold.gif" border=0>&nbsp;&nbsp;登陆/退出
        </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> &nbsp; <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> &nbsp; <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 + -