LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1149|回复: 1

关于apache执行cgi的问题,帮帮忙,不知道为什么?

[复制链接]
发表于 2004-3-15 11:43:08 | 显示全部楼层 |阅读模式
#!/usr/bin/perl
##
##  printenv -- demo CGI program which just prints its environment
##

print "Content-type: text/plain\n\n";
foreach $var (sort(keys(%ENV))) {
    $val = $ENV{$var};
    $val =~ s|\n|\\n|g;
    $val =~ s|"|\\"|g;
    print "${var}=\"${val}\"\n";
}

以上脚本能够执行
但是下面的就不行
#!/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/      大家一起邮

#            

#  *************************

#  LB论坛推荐虚拟主机服务商:

#  雷傲科技:  http://www.leoboard.com.cn

#  全面支持LB所有功能,拥有2年提供LB论坛空间的以及500多个LB用户的经验,可以做的更好

#  **************************

#

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

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");

}

use LBCGI;

use Archive::Tar;

use Cwd;



$query = new LBCGI;

@params = $query->param;

        foreach $param(@params) {

                $theparam = $query->param($param);

        $theparam =~ s/\@/\\\@/g;

        $theparam =~ s/\'//g;

        $theparam =~ s/\"//g;

                      ${$param} = $theparam;

        if ($param ne "action") {

            $printme .= "\$" . "$param = \'$theparam\'\;\n";

            }

        }

$stylesheet =<<__end_of_sheet__;

<style>

<!--

                A:visited {        TEXT-DECORATION: none        }

                A:active  {        TEXT-DECORATION: none        }

                A:hover   {        TEXT-DECORATION: underline overline        }

                A:link           {        text-decoration: none;}

               

                A:visited {        text-decoration: none;}

                A:active  {        TEXT-DECORATION: none;}

                A:hover   {        TEXT-DECORATION: underline overline}

                

                .t     {        LINE-HEIGHT: 1.4                        }

                BODY   {        FONT-FAMILY: 宋体; FONT-SIZE: 9pt        }

                TD           {        FONT-FAMILY: 宋体; FONT-SIZE: 9pt        }

                SELECT {        FONT-FAMILY: 宋体; FONT-SIZE: 9pt;        }

                INPUT  {        FONT-FAMILY: 宋体; FONT-SIZE: 9pt; height:22px;        }

                TEXTAREA{        FONT-FAMILY: 宋体; FONT-SIZE: 9pt;        }

                DIV    {        FONT-FAMILY: 宋体; FONT-SIZE: 9pt        }

                FORM   {        FONT-FAMILY: 宋体; FONT-SIZE: 9pt        }

                OPTION {        FONT-FAMILY: 宋体; FONT-SIZE: 9pt        }

                P           {        FONT-FAMILY: 宋体; FONT-SIZE: 9pt        }

                TD           {        FONT-FAMILY: 宋体; FONT-SIZE: 9pt        }

                BR           {        FONT-FAMILY: 宋体; FONT-SIZE: 9pt        }



-->

</style>

__end_of_sheet__



$thisprog = "install.cgi"; $|=1;

$XHTML = 0;

if ($action ne "final_step" || !$action) { print header(-charset=>"gb2312"); print "<head><title>LB5000 MX 安装向导 -- CGI 编程者之家</title></head>$stylesheet<body>"; }



if ($action eq "step_two") {

       

        if (-e "${lbdir}cgi-bin.tar"){

        my $cwd = cwd();

        my $tar =  Archive::Tar->new();

        unless ($tar->read("${lbdir}cgi-bin.tar", 0)) {

                print qq~<td class='w' align='left' width='60%'>cgi-bin.tar不能读取,请检查是否使用二进制模式上传(一定要这个模式上传这个压缩包)</td></tr>~;

            exit;

        }

        chdir $lbdir;

        unless (-w $lbdir){

        chmod (0777,$lbdir) if ($lbdir !~ m/\/cgi-bin\/$/i);       

        opendir (FILE, ".");

        @filename = readdir(FILE);

        closedir (FILE);

        foreach (@filename) {

            next if (($_ eq ".")||($_ eq ".."));

            chmod(0755,"./$_");

        }

       }       

        my @files = $tar->list_files();

        $tar->extract(@files, $lbdir);

        chdir $cwd;

        }

        if (-e "${lbdir}non-cgi.tar"){

        my $cwd = cwd();

        my $tar =  Archive::Tar->new();

        unless ($tar->read("${lbdir}non-cgi.tar", 0)) {

                print qq~<td class='w' align='left' width='60%'>non-cgi.tar不能读取,请检查是否使用二进制模式上传(一定要这个模式上传这个压缩包)</td></tr>~;

            exit;

        }

        mkdir($imagesdir,0777);

        chdir $imagesdir;

        unless (-w $imagesdir){

        chmod (0777,$imagesdir);

        opendir (FILE, ".");

        @filename = readdir(FILE);

        closedir (FILE);

        foreach (@filename) {

        chmod(0777,"./$_");

        }

        }

        my @files = $tar->list_files();

        $tar->extract(@files, $imagesdir);

        chdir $cwd;

        }

               

$endprint = "1\;\n";



$errorflag = 0;



        $filetomake = "$lbdir" . "data/boardinfo.cgi";



        open(FILE,">$filetomake");

        print FILE "$printme";

        print FILE "\$adfoot = '&lt;a href=http://www.leobbs.com/ target=_blank&gt;&lt;img src=\$imagesurl/images/banner.gif border=0&gt;&lt;/a&gt;';\n";

        print FILE "\$adscript = '&lt;a href=http://www.leobbs.com/ target=_blank&gt;&lt;img src=\$imagesurl/images/banner.gif border=0&gt;&lt;/a&gt;';\n";

        print FILE "\n";

        print FILE $endprint;

        close(FILE);

        

#        &chmodfiles;

        

        if (-e $filetomake && -w $filetomake) {

            $saved_variables = qq(<font face="宋体">所有输入的信息已经成功的写入 ${lbdir}data/boardinfo.cgi 文件中。</font>);

            }

            else {

                $saved_variables = qq(<font face="宋体" color="#FF0000">对不起,不能够保存信息。<BR>

                                      请检测您输入的 ${lbdir}data 数据路径是否正确?是不是最后遗漏了除号 '/'?<BR>

                                      如果正确,请检查 'data' 目录属性是否设置正确。请返回修改后重新递交表单一次。);

                                       $errorflag = "1";

                }

      

        $filetocheck = "$lbdir" . "leoboard.cgi";

        if (-e $filetocheck) {

            $found_cgi = qq(<font face="宋体" color="#0000FF">正确</font>);

            }

            else {

                $errorflag = "1"; $found_cgi = qq(<font face="宋体" color="#FF0000">错误 - 找不到 $filetocheck,数据路径是不是最后遗漏了除号 '/'?请返回重新输入正确信息。</font>);

                }



opendir (DIRS, "$lbdir");

my @files2 = readdir(DIRS);

closedir (DIRS);

my @memdir = grep(/^members/, @files2);

$memdir=@memdir;

if ($memdir eq 0) {

        @memdir = grep(/^MEMBERS/, @files2);

        rename("${lbdir}MEMBERS","${lbdir}members");

}

if ($memdir eq 0) {

        @memdir = grep(/^Members/, @files2);

        rename("${lbdir}Members","${lbdir}members");

}

$memdir = $memdir[0];



if ($memdir eq "members") {

        srand;

        $x = rand;

        $x = int($x * 10000000);

        $x =sprintf("%08d",$x);

        rename("${lbdir}members","${lbdir}members$x");

        $memdir="members$x";

}



opendir (DIRS, "$lbdir");

my @files2 = readdir(DIRS);

closedir (DIRS);

my @memdir = grep(/^members/i, @files2);

$memdir = $memdir[0];

my @msgdir = grep(/^messages/i, @files2);

$msgdir = $msgdir[0];



        $dirtocheck = "$lbdir" . "data";

        if (-d "$dirtocheck") {

            $datadir = "找到";

            $makefile = "$lbdir" . "data/test.txt";

            open (TEST, ">$makefile") or $datawritable = "目录 data 为不可写,请改变属性为 777 。";

            print TEST "-";

            close (TEST);

            $datawritable = "属性为<b>可写</b>!" if (!$datawritable);

            unlink "$makefile";

            } else { $errorflag = "1"; $datadir = "<b>没有找到</b>!"; }



        $dirtocheck = "$lbdir" . "help";

        if (-d "$dirtocheck") {

            $helpdir = "找到";

            $makefile = "$lbdir" . "help/test.txt";

            open (TEST, ">$makefile") or $helpwritable = "目录 help 为不可写,请改变属性为 777 。";

            print TEST "-";

            close (TEST);

            $helpwritable = "属性为<b>可写</b>!" if (!$helpwritable);

            unlink "$makefile";

            } else { $helpdir = "<b>没有找到</b>!"; }



        $dirtocheck = "$lbdir" . "$memdir";

        if (-d "$dirtocheck") {

            $membersdir = "找到";

            $makefile = "$lbdir" . "$memdir/test.txt";

            open (TEST, ">$makefile") or $memberswritable = "目录 $memdir 为不可写,请改变属性为 777 。";

            print TEST "-";

            close (TEST);

            $memberswritable = "属性为<b>可写</b>!" if (!$memberswritable);

            unlink "$makefile";

            } else { $errorflag = "1"; $membersdir = "<b>没有找到</b>!"; }



        $dirtocheck = "$lbdir" . "$msgdir";

        if (-d "$dirtocheck") {

            $messagesdir = "找到";

            $makefile = "$lbdir" . "$msgdir/test.txt";

            open (TEST, ">$makefile") or $messageswritable = "目录 $msgdir 为不可写,请改变属性为 777 。";

            print TEST "-";

            close (TEST);

            $messageswritable = "属性为<b>可写</b>!" if (!$messageswritable);

            unlink "$makefile";

            } else { $errorflag = "1"; $messagesdir = "<b>没有找到</b>!"; }





        $filetocheck = "$imagesdir" . "images/logo.gif";

        if (-e $filetocheck) {

            $found_image = qq(<font face="宋体" color="#0000FF">正确</font>);

            }

            else {

                $errorflag = "1"; $found_image = qq(<font face="宋体" color="#FF0000">错误,请注意路径最后不要遗漏除号 '/',请点击后退填入正确的信息(是不是你遗漏上传了 images 下的 logo.gif 呢?程序是利用这个文件是否存在来判断你设置是否正确的)。</font>);

                }

         

        $dirtocheck = "$imagesdir" . "images";

        if (-d "$dirtocheck") { $images_dir = "找到!"; } else { $errorflag = "1"; $images_dir = "<b>没有找到</b>!"; }



        $dirtocheck = "$imagesdir" . "emoticons";

        if (-d "$dirtocheck") { $emoticonsdir = "找到!"; } else { $errorflag = "1"; $emoticonsdir = "<b>没有找到</b>!"; }



        $dirtocheck = "$imagesdir" . "avatars";

        if (-d "$dirtocheck") { $avatarsdir = "找到!"; } else { $errorflag = "1"; $avatarsdir = "<b>没有找到</b>!"; }



        $dirtocheck = "$imagesdir" . "usravatars";

        if (-d "$dirtocheck") {

            $usravatarsdir = "找到!";

            $makefile = "$dirtocheck" . "/test.txt";

            open (TEST, ">$makefile") or $usravatarswritabler = "目录 $dirtocheck 为不可写,请改变属性为 777 。";

            print TEST "-";

            close (TEST);

            $usravatarswritable = "属性为<b>可写</b>!" if (!$usravatarswritable);

            unlink "$makefile";

        } else { $errorflag = "1"; $usravatarsdir = "<b>没有找到</b>!"; }



        $dirtocheck = "$imagesdir" . "usr";

        if (-d "$dirtocheck") {

                $usrdir = "找到!";

            $makefile = "$dirtocheck" . "/test.txt";

            open (TEST, ">$makefile") or $usrwritabler = "目录 $dirtocheck 为不可写,请改变属性为 777 。";

            print TEST "-";

            close (TEST);

            $usrwritabler = "属性为<b>可写</b>!" if (!$usrwritabler);

            unlink "$makefile";

                } else { $errorflag = "1"; $usrdir = "<b>没有找到</b>!"; }



        $dirtocheck = "$imagesdir" . "btg";

        if (-d "$dirtocheck") { $btg = "找到!"; } else { $errorflag = "1"; $btg = "<b>没有找到</b>!"; }



        $dirtocheck = "$imagesdir" . "emot";

        if (-d "$dirtocheck") { $emot = "找到!"; } else { $errorflag = "1"; $emot = "<b>没有找到</b>!"; }



        @progs_to_search = ('admincenter.cgi', 'allnews.cgi', 'announcements.cgi', 'code.cgi', 'forumoptions.cgi', 'forums.cgi', 'help.cgi', 'install.cgi', 'index.html', 'lb.lib.pl', 'lbadmin.lib.pl', 'lbfriend.cgi', 'lbmail.lib.pl', 'leoboard.cgi', 'loginout.cgi', 'mailmembers.cgi', 'massmsg.cgi', 'memberlist.cgi', 'messanger.cgi', 'misc.cgi', 'news.cgi', 'noreg.cgi', 'pag.cgi', 'poll.cgi', 'post.cgi', 'postings.cgi', 'postjs.cgi', 'printpage.cgi', 'profile.cgi', 'register.cgi', 'remmail.cgi', 'search.cgi', 'setforums.cgi', 'setipbans.cgi', 'setmemberbak.cgi', 'setmembers.cgi', 'setmembertitles.cgi', 'setskin.cgi', 'setstyles.cgi', 'settemplate.cgi', 'setvariables.cgi', 'shareforums.cgi', 'team.cgi', 'topic.cgi', 'visitforum.lib.pl', 'whosonline.cgi', 'data/styles.cgi');



        

                print qq(

                    <font size="5" face="宋体" color="#000000">

                    <h1>LB5000 MX 安装向导</b></font></h1><font face="宋体" color="#000000">

                    程序编制:<a href="mailto:webmaster\@cgier.com">山鹰糊</a>  参与制作:<a href="mailto:info\@cgier.net">花无缺</a><BR>

                    版权所有:<a href="http://www.cgier.com/">CGI 编程者之家</a></font>

                    <hr noshade color="#000000">

                    <br>

                    <font face="宋体" color="#000000">

                    <b>欢迎使用 LB5000 MX 安装向导!</b>

                    <br><br>

                    <b>第二步:</b> 谢谢您写入信息,下面是尝试安装的结果。<br>如果您得到了错误信息提示,请确定您已经完整上传了本程序,以及目录属性、位置设定正确。</font><br>



                    <hr noshade color="#000000">

                    <font face="宋体" color="#0000FF">

                    <br><b>您键入的安装信息是否正确保存?</b></font>

                    <br>

                    $saved_variables

                    <br><br>

                    <hr noshade color="#000000">

                    <font face="宋体" color="#0000FF">

                    <br><b>路径预览</b></font>

                    <br>

                    <font face="宋体" color="#000000">

                    所有程序(*.cgi)的路径: $lbdir - $found_cgi

                    <br><br>

                    -- 查找 ${lbdir}data    - $datadir - $datawritable<br>

                    -- 查找 ${lbdir}help    - $helpdir - $helpwritable<br>

                    -- 查找 ${lbdir}$msgdir  - $messagesdir - $messageswritable<br>

                    -- 查找 ${lbdir}$memdir  - $membersdir - $memberswritable<br>

                    <br>

                    <br>

                    <font face="宋体" color="#000000">

                    所有非 CGI 文件(images)的路径: $imagesdir - $found_image

                    <br><br>

                    -- 查找 ${imagesdir}images   - $images_dir<br>

                    -- 查找 ${imagesdir}emoticons  - $emoticonsdir<br>

                    -- 查找 ${imagesdir}avatars   - $avatarsdir<br><br>

                    -- 查找 ${imagesdir}usravatars - $usravatarsdir - $usravatarswritable<br><br>

                    -- 查找 ${imagesdir}usr       - $usrdir - $usrwritabler<br><br>

                    -- 查找 ${imagesdir}btg     - $btg<br><br>

                    -- 查找 ${imagesdir}emot     - $emot<br><br>



                    <hr noshade color="#000000">

                    <font face="宋体" color="#0000FF">

                    <br><b>URL 预览</b></font>

                    <br>

                    <font face="宋体" color="#000000">

                    您输入的图片 URL: $imagesurl

                    <br>

                    <br>

                    -- 查找 $imagesurl/images/announce.gif - <img src="$imagesurl/images/announce.gif" border=0><br>

                    -- 查找 $imagesurl/emoticons/smile.gif - <img src="$imagesurl/emoticons/smile.gif" border=0><br>

                    -- 查找 $imagesurl/avatars/noavatar.gif - <img src="$imagesurl/avatars/noavatar.gif" border=0><br><br>

                    如果您看到的是错误的图片,请检查这个 $imagesurl 路径是否正确,同时也请确定图片文件是否是以 Binary 方式上传的。<BR><BR>

                    );

                    if ($errorflag eq "1") { print qq(<br><br><font color="#FF0000">LB5000 MX 安装向导发现错误,不能够继续。请返回重新填入正确的信息); print "</body></html>"; exit; }



                    

                    print qq(

                    <hr noshade color="#000000">

                    <font face="宋体" color="#0000FF">

                    <b>文件合法性检查</b></font>

                    <br>

                    <br>

                    <font face="宋体" color="#000000">

                    LB5000 MX 安装向导将检查您的所有 CGI 文件是否已上传,并且是以 ASCII 方式上传的

                    <br><br>);



                    foreach (@progs_to_search) {



                        $filetotest = "$lbdir" . "$_";

                        if (-e $filetotest) {

                            open (TEST, "$filetotest");

                            @testfile = <TEST>;

                                close (TEST);

                                if (grep(/\r/, @testfile) && $^O ne "MSWin32") {

                                        print "<b>找到 $_ ,但它好像是以 BINARY 方式上传的。请重新以 ASCII 方式上传!</b><br>";

                                }

                                else { print "找到 $_ - 上传正确!<br>"; }

                            }

                            else { print "<b>找不到 $_ ! - 是否上传了?</b><br>"; }



                            } # end foreach

    $server_port = "ENV{'SERVER_PORT'}" if ($ENV{'SERVER_PORT'} ne '80');

    if ($ENV{'HTTP_HOST'} ne "") { $fullurl = $ENV{'HTTP_HOST'}; } else { $fullurl = $ENV{'SERVER_NAME'}; }

    $fullurl     = "http://$fullurl$server_port$ENV{'SCRIPT_NAME'}";

    $myurl       = substr($fullurl,0,rindex($fullurl,"/"));

        $geturl="http://www.leoboard.com/cgi-bin/lbver.cgi?ver=LB5000&url=$myurl";



        $out=&lbagent($geturl);



                    print qq(

                        <br>

                        <hr noshade color="#000000">

                        <font face="宋体" color="#0000FF">

                        <br><b>报告结束</b></font>

                        <br>

                        <br>

                        <font face="宋体" color="#000000">

                        LB5000 MX 安装向导已经完成报告。如果您发现错误,请返回重新填写信息。

                        <br>同时,您也可以使用管理员身份在任何时间重新填写信息。

                        <br><br>

                        如果您不确定一些问题,或者出现一些未知的错误,请到 <a href="http://www.cgier.com/"><b>CGI 编程者之家</b></a> 的论坛中提出!

                        <br><br><i>报告结束</i>

                        <br><br>

                        <hr noshade color="#000000">

                        <font face="宋体" color="#0000FF">

                        <br><b>下一步做什么?</b></font>

                        <br>

                        <br>

                        <font face="宋体" color="#000000">

                        <b>如果您是从 LB5000 MX 的早期版本升级的,<a href="admincenter.cgi?action=remove">现在到管理中心界面</a></b>!

                        <br><br>从安全性上考虑,当你进入管理中心的同时,本安装文件将会被自动删除。<br>

                        当本安装文件存在的时候,管理中心是不能运行的!如果自动删除失败,那么请你自行利用 FTP 来删除这个本程序!

                        <br><br>

                        <b>如果你是第一次安装 LB5000 MX,那么请<a href="$thisprog?action=step_three">点击这里进入第三步</a></b>!</font>

                        <br><br><br><br><br>

                        );



                }





elsif ($action eq "step_three") {



    print qq(

    <font size="5" face="宋体" color="#000000">

    <h1>LB5000 MX 安装向导</b></font></h1><font face="宋体" color="#000000">

    程序编制:<a href="mailto:webmaster\@cgier.com">山鹰糊</a> 参与制作:<a href="mailto:info\@cgier.net">花无缺</a><BR>

    版权所有:<a href="http://www.cgier.com/">CGI 编程者之家</a></font>

    <hr noshade color="#000000">

     <br>

    <font face="宋体" color="#FF0000">

    <b>你是否以前到过这一步?</b>

    <br><br>

    <font face="宋体" color="#000000">

    <b>如果您是从 LB5000 MX 的早期版本升级的,<a href="admincenter.cgi?action=remove">现在到管理中心界面</a></b>!

    <br><br>如果您运行这一步,您将<b>丢失</b>论坛的所有数据!!!

    <hr noshade color="#000000">

    <br>

    <b>第三步:</b><br>

    最后安装部分。这一步将完成论坛的安装,您将能够进入管理中心界面设置论坛风格、颜色等。

    <br>

    <hr noshade color="#000000">

    <br>

    <font face="宋体" color="#0000FF">

    <b>以管理员身份注册您自己</b></font>

    <br><br>

    <font face="宋体" color="#000000">

    您将以管理员身份注册自己,这样就可以正确访问管理中心界面</font>

    <br><br>

    <form action="$thisprog" method="post">

    <input type="hidden" name="action" value="final_step">

    <font face="宋体" color="#000000">

    输入您的管理员名称:(最大12字符)<br>

    <input type="text" name="membername" maxlength=12>

    <br><br>

    请输入管理员密码:<br>

    <input type="password" name="password_one" maxlength=20>

    <br><br>

    请重输管理员密码:<br>

    <input type="password" name="password_two" maxlength=20>

    <br><br>

    <input type="submit" value="提 交 这 个 信 息">

    </form>

    <hr noshade color="#000000">

    <br>

    <b>请仔细检查所有信息,并请紧记您的名称、密码。</b>

    <br><br>);



    } # end step 3



elsif ($action eq "final_step") {



                $namecookie = cookie(-name    =>   "adminname",

                                     -value   =>   "$membername");



                $passcookie = cookie(-name    =>   "adminpass",

                                     -value   =>   "$password_one");



                print header(-cookie=>[$namecookie, $passcookie],-charset=>"gb2312"); print "<head><title>LB5000 MX 安装向导 -- CGI 编程者之家</title></head>$stylesheet<body>";



                print qq(

                <font size="5" face="宋体" color="#000000">

                   <h1>LB5000 MX 安装向导</b></font></h1><font face="宋体" color="#000000">

                程序编制:<a href="mailto:webmaster\@cgier.com">山鹰糊</a> 参与制作:<a href="mailto:info\@cgier.net">花无缺</a><BR>

                版权所有:<a href="http://www.cgier.com/">CGI 编程者之家</a></font>

                <hr noshade color="#000000">

                <br>

                <font face="宋体" color="#000000">

                <b>欢迎使用 LB5000 MX 安装向导!</b>

                <br><br>

                <b>最后一步:</b><br>

                LB5000 MX 安装向导现在建立您的管理员账号。

                <br>

                <hr noshade color="#000000">

                <br>

                );



                require "${lbdir}data/boardinfo.cgi";



                $currenttime = time;

                $blanks = "yes" if (!$membername);

                $blanks = "yes" if (!$password_one);

                $blanks = "yes" if (!$password_two);



                if ($blanks) { print qq(<br><br><font color="#FF0000">请填写完所有选项,使用后退返回上一步。); print "</body></html>"; exit; }

                if ($password_one ne $password_two)  { print qq(<br><br><font color="#FF0000">输入的两次密码不同,请返回上一步重新输入。); print "</body></html>"; exit; }

                if(length($membername)<2)  { print qq(<br><br><font color="#ff0000">管理员用户名太短了!); print "</body></html>"; exit; }

                if($membername =~ /^客人/) { print qq(<br><br><font color="#ff0000">管理员用户名不能为客人字样!);print "</body></html>";exit; }

                if($membername =~ /_/) { print qq(<br><br><font color="#ff0000">请不要在管理员帐号名中使用下划线!); print "</body></html>";exit;}

                if($membername =~ /\t/) { print qq(<br><br><font color="#ff0000">请不要在管理员帐号名中使用特殊字符!);print "</body></html>";exit; }

                if(($password_one =~ /\t/)||($password_two =~ /\t/)) { print qq(<br><br><font color="#ff0000">请不要在密码中使用特殊字符!); print "</body></html>";exit;}

                if(length($password_one)<6) { print qq(<br><br><font color="#ff0000">管理员密码太短了,请更换!密码必须 6 位以上!); print "</body></html>";exit;}

                if ($password_one =~ /^[0-9]+$/) { print qq(<br><br><font color="#ff0000">管理员密码请不要全部为数字,请更换!); print "</body></html>";exit;}

                if ($password_one =~ /[^a-zA-Z0-9]/) { print qq(<br><br><font color="#ff0000">管理员密码只允许大小写字母和数字的组合,请更换!); print "</body></html>";exit;}



opendir (DIRS, "$lbdir");

my @files2 = readdir(DIRS);

closedir (DIRS);

my @memdir = grep(/^members/i, @files2);

$memdir = $memdir[0];



                $memberfilename = $membername;

                $memberfilename =~ y/ /_/;

                $memberfilename =~ tr/A-Z/a-z/;

                $membersdir = "$lbdir" . "$memdir";



                $filetomake = "$lbdir" . "$memdir/$memberfilename.cgi";



                open (ADMIN, ">$filetomake");

                print ADMIN "$membername\t$password_one\tmember\tad\t0\t$adminemail_in\tno\t保密\t\t\t\t\t\t$currenttime\t\t";

                close (ADMIN);



            if (-e $filetomake) {

                $filerequire = "$lbdir"."data/boardinfo.cgi";

                if (-e $filerequire) {

                }else {

                         print qq(

                        <font face="宋体" color="#FF0000">

                        <b>错误!不能够找到 $filerequire 文件!</b>

                        <br><br>

                        请检查 data 目录属性是否正确: $lbdir/data );

                         print "</body></html>"; exit;

                }



                print qq(

                <font face="宋体" color="#000000">

                <b>恭喜,您的 LB5000 MX 已经成功安装好了!</b>

                <br><br>

                现在,您可以<a href="admincenter.cgi?action=remove">进入管理中心</a>设置您的论坛。<br>从安全角度考虑,本自动安装程序将会被自动删除,以免您的论坛受到不安全的威胁!<br>

                同时我们已经安装了两个论坛附加功能:<br>

                1. LB5000 MX 论坛新新贴子,显示整个论坛的最新贴 ver 1.2<br>

                ############################################################################<br>

                # 使用办法: allnews.cgi&maxlength=标题长度<br>

                # 例: 在你主页的适当位置加入以下语句<br>

                #      &lt;script src="$boardurl/allnews.cgi&maxlength=20&display=1"&gt;&lt;/script&gt;<br>

                #      这样就可以在相应位置显示整个论坛的最新贴,标题长度 20,显示发贴时间<br>

                #                                            (display=0 表示不显示发贴时间)<br>

                # <br>

                #    对于显示贴子个数,请在 LB5000 MX 中的管理区设置<br>

                #    所有参数均可以省略<br>

                ############################################################################<br>

                2. LB5000 MX 分论坛新新贴子 ver 1.2<br>

                ###################################################################################<br>

                # 使用办法: news.cgi?forum=分论坛号&max=显示几条贴子&maxlength=标题长度&display=1<br>

                # 例: 在你主页的适当位置加入以下语句<br>

                #      &lt;script src="$boardurl/news.cgi?forum=1&max=10&maxlength=20"&gt;&lt;/script&gt;<br>

                #      这样就可以在相应位置显示1号论坛的最新10个贴子,标题长度为 20,显示发贴时间<br>

                #                                                   (display=0 表示不显示发贴时间)<br>

                #      所有参数均可以省略<br>

                ###################################################################################<br>

                3. LB5000 MX 分论坛精华贴子显示 ver 1.2<br>

                ###################################################################################<br>

                # 使用办法: newsjh.cgi?forum=分论坛号<br>

                # 例: 在你主页的适当位置加入以下语句<br>

                #      &lt;script src="newsjh.cgi?forum=1"&gt;&lt;/script&gt;<br>

                #      这样就可以在相应位置显示1号论坛的最新20个贴子<br>

                ###################################################################################<br>

                4. LB5000 MX 公告显示 ver 1.2<br>

                ###################################################################################<br>

                # 使用办法: getanc.cgi<br>

                # 例: 在你主页的适当位置加入以下语句<br>

                #      &lt;script src="getanc.cgi"&gt;&lt;/script&gt;<br>

                #      这样就可以在相应位置显示论坛的最新公告<br>

                ###################################################################################<br>

                <br><br>

                还有8个附加功能存放在 addon 目录中,是<br>

                1. bm2lb5000.cgi "UBB=>LB5000 MX 用户资料转换器"<br>

                2. ubb2lb5000.cgi "bm=>LB5000 MX 用户数据转换 v0.2" <br>

                3. yuzi2lb5000.cgi "yuzi BBS2000(3000)=>LB5000 MX 用户资料转换器"<br>

                4. ys2lb5000.cgi "一山草堂 BBS=>LB5000 MX 用户资料转换器"<br>

                5. yaBB2LB5000.cgi "YaBB=>LB5000 MX 用户资料转换器"<br>

                6. bbs2lbt.cgi "yuzi BBS3000=>LB5000 MX 贴子资料转换器"<br>

                7. ys2lbt.cgi "一山草堂 BBS=>LB5000 MX 贴子资料转换器"<br>

                8. u2lbt.cgi  "UBB=>LB5000 MX 贴子资料转换器"<br>

                );

            }

            else {

                print qq(

                <font face="宋体" color="#FF0000">

                <b>错误!不能够建立 admin 文件!</b>

                <br><br>

                请检查 $memdir 目录是否正确: $membersdir );

                 print "</body></html>"; exit;

            }



      $filetomake = "$lbdir" . "data/boardstats.cgi";

        

        

        

       open(FILE, ">$filetomake");

       print FILE "\$lastregisteredmember = \'$membername\'\;\n";

       print FILE "\$totalmembers = \'1\'\;\n";

       print FILE "\$totalthreads = \'0\'\;\n";

       print FILE "\$totalposts = \'0\'\;\n";

       print FILE "\n1\;";

       close (FILE);



                print qq(

                <br><br>

                <hr noshade color="#000000">

                <font face="宋体" color="#0000FF">

                感谢你使用 LB5000 MX!</font>

                <br><br>

                <font face="宋体" color="#000000">

                我们希望安装向导对您安装本论坛是有帮助的。<br>

                如果您还有其他问题,请参观 <a href="http://www.cgier.com/"><b>CGI 编程者之家</b></a> 的论坛,本站提供 LB5000 MX 的完全技术支持!

                <br><br>

                );



                } # end final step   

   



            else {

    if ($ENV{'SERVER_SOFTWARE'} =~ /apache/i) {

        if ($ENV{'SCRIPT_FILENAME'}=~ /cgiwrap/i) {

            $temp=$ENV{'PATH_TRANSLATED'};

        }

        else {

            $temp=$ENV{'SCRIPT_FILENAME'};

        }

        $temp=~ s/\\/\//g if ($temp=~/\\/);

        $mypath=substr($temp,0,rindex($temp,"/"));

    }

    else {

        $mypath=substr($ENV{'PATH_TRANSLATED'},0,rindex($ENV{'PATH_TRANSLATED'},"\\"));

        $mypath=~ s/\\/\//g;

    }

    $server_port = "ENV{'SERVER_PORT'}" if ($ENV{'SERVER_PORT'} ne '80');

    if ($ENV{'HTTP_HOST'} ne "") { $fullurl = $ENV{'HTTP_HOST'}; } else { $fullurl = $ENV{'SERVER_NAME'}; }

    $fullurl     = "http://$fullurl$server_port$ENV{'SCRIPT_NAME'}";

    $myurl       = substr($fullurl,0,rindex($fullurl,"/"));



    $website_url = "http://$ENV{'HTTP_HOST'}";

   

    $html_dir = "";

    $html_url = "";



                        if ($mypath =~ m|(.*)/(.+)|) {

                           $base = $1;

                        } else {

                           $base = $mypath;

                        }



                        if ($myurl =~ m|(.*)/(.+)|) {

                           $base1 = $1;

                        } else {

                           $base1 = $myurl;

                        }

                        $base1 =~ s/\/cgi-bin//;

                        if ((-e "$base/non-cgi/index.html")&&($html_dir eq "")) { $html_dir = "$base/non-cgi"; $html_url = "$base1/non-cgi"; }

                        if ((-e "$base/lb5000/index.html")&&($html_dir eq "")) { $html_dir = "$base/lb5000"; $html_url = "$base1/lb5000"; }

                        if ((-e "$base/ib2000/index.html")&&($html_dir eq "")) { $html_dir = "$base/ib2000"; $html_url = "$base1/ib2000"; }

                        if ((-e "$base/lb/index.html")&&($html_dir eq "")) { $html_dir = "$base/lb"; $html_url = "$base1/lb"; }

                        if ((-e "$base/bbs/index.html")&&($html_dir eq "")) { $html_dir = "$base/bbs"; $html_url = "$base1/bbs"; }

                       

                if ($html_dir eq "") {

                        if ($base =~ m|(.*)/(.+)|) {

                           $base = $1;

                        }

                        if ($base1 =~ m|(.*)/(.+)|) {

                           $base1 = $1;

                        } else {

                           $base1 = $base1;

                        }

                        $base1 =~ s/\/cgi-bin//;

                       

                        if ((-e "$base/non-cgi/index.html")&&($html_dir eq "")) { $html_dir = "$base/non-cgi"; $html_url = "$base1/non-cgi"; }

                        if ((-e "$base/lb5000/index.html")&&($html_dir eq "")) { $html_dir = "$base/lb5000"; $html_url = "$base1/lb5000"; }

                        if ((-e "$base/ib2000/index.html")&&($html_dir eq "")) { $html_dir = "$base/ib2000"; $html_url = "$base1/ib2000"; }

                        if ((-e "$base/lb/index.html")&&($html_dir eq "")) { $html_dir = "$base/lb"; $html_url = "$base1/lb"; }

                        if ((-e "$base/bbs/index.html")&&($html_dir eq "")) { $html_dir = "$base/bbs"; $html_url = "$base1/bbs"; }

                }



                if ($html_dir eq "") {

                        if ($ENV{'DOCUMENT_ROOT'} ne "") {

                        $base = $ENV{'DOCUMENT_ROOT'};

                        if ((-e "$base/non-cgi/index.html")&&($html_dir eq "")) { $html_dir = "$base/non-cgi"; $html_url = "$website_url/non-cgi"; }

                        if ((-e "$base/lb5000/index.html")&&($html_dir eq "")) { $html_dir = "$base/lb5000"; $html_url = "$website_url/lb5000"; }

                        if ((-e "$base/ib2000/index.html")&&($html_dir eq "")) { $html_dir = "$base/ib2000"; $html_url = "$website_url/ib2000"; }

                        if ((-e "$base/lb/index.html")&&($html_dir eq "")) { $html_dir = "$base/lb"; $html_url = "$website_url/lb"; }

                        if ((-e "$base/bbs/index.html")&&($html_dir eq "")) { $html_dir = "$base/bbs"; $html_url = "$website_url/bbs"; }

                    }

                }



                        if (-e "C:/" || $^O eq "MSWin32") { $OS_USED = 'NT'; }

                        $adminemail_in = "incoming\@yourdomain.com";

                        $adminemail_out = "outgoing\@yourdomain.com";

                        $timezone_choice = "<select name=\"timezone\"><option value=\"-23\">- 23<option value=\"-22\">- 22<option value=\"-21\">- 21<option value=\"-20\">- 20<option value=\"-19\">- 19<option value=\"-18\">- 18<option value=\"-17\">- 17<option value=\"-16\">- 16<option value=\"-15\">- 15<option value=\"-14\">- 14<option value=\"-13\">- 13<option value=\"-12\">- 12<option value=\"-11\">- 11<option value=\"-10\">- 10<option value=\"-9\">- 9<option value=\"-8\">- 8<option value=\"-7\">- 7<option value=\"-6\">- 6<option value=\"-5\">- 5<option value=\"-4\">- 4<option value=\"-3\">- 3<option value=\"-2\">- 2<option value=\"-1\">- 1<option value=\"0\" selected>0<option value=\"1\">+ 1<option value=\"2\">+ 2<option value=\"3\">+ 3<option value=\"4\">+ 4<option value=\"5\">+ 5<option value=\"6\">+ 6<option value=\"7\">+ 7<option value=\"8\">+ 8<option value=\"9\">+ 9<option value=\"10\">+ 10<option value=\"11\">+ 11<option value=\"12\">+ 12<option value=\"13\">+ 13<option value=\"14\">+ 14<option value=\"15\">+ 15<option value=\"16\">+ 16<option value=\"17\">+ 17<option value=\"18\">+ 18<option value=\"19\">+ 19<option value=\"20\">+ 20<option value=\"21\">+ 21<option value=\"22\">+ 22<option value=\"23\">+ 23</select>";

                        $time_is_now = localtime;

                        $website_url = "http://$ENV{'HTTP_HOST'}";

                        $mailprogram = &mailprogram;  #自动测试 Sendmail 路径

                    print qq~

                                    <form action="$thisprog" method="post">

                                    <input type="hidden" name="action" value="step_two">

                                    <font size="5" face="宋体" color="#000000">

                                    <h1>LB5000 MX 安装向导</b></font></h1><font face="宋体" color="#000000">

                                    程序编制:<a href="mailto:webmaster\@cgier.com">山鹰糊</a> 参与制作:<a href="mailto:info\@cgier.net">花无缺</a><BR>

                                        版权所有:<a href="http://www.cgier.com/">CGI 编程者之家</a></font>

                                    <hr noshade color="#000000">

                                    <br>

                                    <font face="宋体" color="#000000">

                                    <b>欢迎使用 LB5000 MX 安装向导!</b>

                                    <br><br>

                                    <b>第一步:</b> 在递交表单前,请仔细查看整个下面的内容指示,并检查自动提供的数据是否正确!<br>

                                    当你递交表单后,本安装向导会检测所有你输入的数据,如果数据输入错误,将会有详细的提示!<br><br>

                                    <b>在执行本程序下一步之前,请确定你已经把本程序完整上传,并已经将所有文件的属性设置正确了!</b><br><br>

                                    下面的所有设置数据都可以在 LB5000 MX 的管理中心中重新设置。为了安全起见,本程序在成功完成设置任务后,将会自毁。

                                    如果你希望重新利用本程序来设置的话,请重新上传运行本程序。</font><br>



                                    <hr noshade color="#000000">



                                    <br>

                                    <font face="宋体" color="#000000">

                                    <b>请选择运行本程序的操作系统平台用于文件加锁</b><br>

                                    如果你是 Windows 系列的主机,请千万不要选成 Unix,否则会有意想不到的错误发生!<BR>

                                    文件加锁可以有效的防止贴子数据丢失等问题,但会影响速度,请自己衡量!<br>

                                    <br>

                                    <select name="OS_USED">

                                    <option value="NT" selected>Windows 系列

                                    <option value="Unix">Unix 系列

                                    <option value="No">不加锁

                                    </select>



                                    <br>

                                    <br>

                                    <hr noshade color="#000000">

                                    <br>

                                    <font face="宋体" color="#000000">

                                    <b>文件路径设置</b><br><br>

                                    下面的默认设置仅仅适用于大部分安装本程序的客户,不是所有的客户都适用。如果有错误,请自行修改成正确的值。<font color="#FF0000"><br>

                                    请仔细检查所有的设置,如果你对这些设置有任何的疑问,请询问你的主机提供商!</font><br><br>

                                    <font color="#FF0000">如果你使用的是 Windows 系列操作系统,请使用除号来代替反斜杠(比如:c:/path/to/lb5000/)!

                                    <br><br><font color="#000000"><b>设置时请务必在路径的最后加上除号 '/'。</b>

                                    <br><br>

                                    <font face="宋体" color="#0000FF">

                                    <b>设置 *.cgi 脚本的安装路径。</b></font><br>

                                    <font face="宋体" color="#000000">

                                    在这里设置的是安装“路径”,不是 URL,所以它肯定<B>不是</B> 'http://' 开头的。<br>

                                    这个位置包含了所有 LB5000 MX 中的 *.cgi 文件。

                                    要注意,下列目录程序会自动建立。

                                    <ul>

                                    <li>data

                                    <li>members

                                    <li>messages

                                    </ul>

                                    <input type="text" size="70" name="lbdir" value="$mypath/">

                                    

                                    <br><br><br>

                                    <font face="宋体" color="#0000FF">

                                    <b>设置 image 图像文件的安装路径。</b></font><br><br>

                                    <font face="宋体" color="#000000">

                                    在这里设置的是安装“路径”,不是 URL,所以它肯定<B>不是</B> 'http://' 开头的。<br>

                                    这个位置包含了所有 LB5000 MX 中的图像文件。

                                    要注意,下列目录程序会自动建立。

                                    <ul>

                                    <li>images

                                    <li>avatars

                                    <li>usravatars

                                    </ul>

                                    <b>请注意,<B>不要</B>在路径的最后加 'images/' !</b><BR><BR>

                                    

                                    <input type="text" size="70" name="imagesdir" value="$html_dir/">

                                    <br><BR>



                                    <hr noshade color="#000000">

                                    <br>

                                    <font face="宋体" color="#000000">

                                    <b>设置你网站的 URL 路径</b><br><br>

                                    下面的默认设置仅仅适用于大部分安装本程序的客户,不是所有的客户都适用。如果有错误,请自行修改成正确的值。<font color="#FF0000"><br>

                                    请仔细检查所有的设置,如果你对这些设置有任何的疑问,请询问你的主机提供商!</font><br><br>

                                    <b>请不要在每个 URL 地址结尾加反斜杠 '/' !</b>

                                    <br><br>



                                    <font face="宋体" color="#0000FF">

                                    <b>设置图片文件 URL 路径。</b></font><br>

                                    <font face="宋体" color="#000000">

                                    这里是 URL 路径。<b>必须</b>以 'http://' 开始。<br>

                                    这个路径包含了所有的 LB5000 MX 图片。

                                    <br><br>

                                    <input type="text" size="70" name="imagesurl" value="$html_url">

                                    <br><br><br>

                                    

                                    <font face="宋体" color="#0000FF">

                                    <b>设置您主页的 URL 地址。</b></font><br>

                                    <font face="宋体" color="#000000">

                                    这里是 URL 路径。<b>必须</b>以 'http://' 开始。<br>

                                    简单的说,就是你在浏览器上输入的访问你主页的地址。

                                    <br><br>

                                    <input type="text" size="70" name="homeurl" value="$website_url">



                                    <br><br><br>

                                    <font face="宋体" color="#0000FF">

                                    <b>LB5000 MX 的 URL 路径。</b></font><br>

                                    <font face="宋体" color="#000000">

                                    这里是 URL 路径。<b>必须</b>以 'http://' 开始。<br>

                                    <b>请不要在结尾加 CGI 文件名。这里是目录地址,不是文件地址。</b>

                                    <br><br>

                                    <input type="text" size="70" name="boardurl" value="$myurl"><br><br>



                                    <hr noshade color="#000000">

                                    <br>

                                    <font face="宋体" color="#000000">

                                    <b>个性化图片和表情自动转换</b><br><br>

                                    <font face="宋体" color="#000000">

                                    使用个性化图片,每个用户将拥有有自己特色的头像。<br>

                                    字符自动转换,会自动将输入的表情字符自动转换成图片形式(如输入 将自动转换成图片形式)。

                                    <br>

                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>你是否使用个性化图片?</b></font><br>

                                    <font face="宋体" color="#000000">

                                    <br>

                                    <select name="avatars">

                                    <option value="on" selected>使用

                                    <option value="off">不使用

                                    </select>



                                    <br>

                                    <br><br>

                                    <font face="宋体" color="#0000FF">

                                    <b>您是否使用表情自动转换?</b></font><br>

                                    <font face="宋体" color="#000000">

                                    <br>

                                    <select name="emoticons">

                                    <option value="on" selected>使用

                                    <option value="off">不使用

                                    </select><br><br>



                                    <hr noshade color="#000000">

                                    <br>

                                    <font face="宋体" color="#000000">

                                    <b>邮件功能</b><br><br>

                                    下面的默认设置仅仅适用于大部分安装本程序的客户,不是所有的客户都适用。如果有错误,请自行修改成正确的值。<br><font color="#FF0000">

                                    请仔细检查所有的设置,如果你对这些设置有任何的疑问,请询问你的主机提供商!</font>

                                    <br>

                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>您是否希望在论坛上使用邮件功能?</b></font><br>

                                    <font face="宋体" color="#000000">

                                    <br>

                                    <select name="emailfunctions">

                                    <option value="off">关闭邮件功能

                                    <option value="on" selected>使用邮件功能

                                    </select>

                                    <br><br><br>

                                    <font face="宋体" color="#0000FF">

                                    <b>您使用何种邮件发送协议?</b></font><br>

                                    <font face="宋体" color="#000000">

                                    Unix 类主机请选择 Sendmail,Windows 类主机请选择 SMTP 或者 ESMTP,如果你的主机采用了是 Blat 邮件发送程序,那么请选择 Blat。

                                    <br><BR>

                                    <select name="emailtype">

                                    <option value="smtp_mail" selected>SMTP

                                    <option value="esmtp_mail">ESMTP

                                    <option value="send_mail">Sendmail

                                    <option value="blat_mail">Blat

                                    </select>

                                    <br><br><br>

                                    <font face="宋体" color="#0000FF">

                                    <b>Sendmail 路径(只有当你选择了 Sendmail 来发信此项才有效)。</b></font><br><br>

                                    <input type=text size="60" name="SEND_MAIL" value="$mailprogram">

                                    <br><br>

                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>SMTP 服务器(只有当你选择了 SMTP 或 ESMTP 来发信,此项才有效)。</b></font><br><br>

                                    <input type=text size="60" name="SMTP_SERVER" value="localhost">

                                    <br><br>

                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>SMTP 的端口(只有当你选择了 SMTP 或 ESMTP 来发信此项才有效)。</b></font><br><br>

                                    <input type=text size="60" name="SMTP_PORT" value="$SMTP_PORT">

                                    <br><br>

                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>ESMTP 的用户名(只有当你选择了 ESMTP 来发信此项才有效)。</b></font><br><br>

                                    <input type=text size="60" name="SMTPUSER" value="$SMTPUSER">

                                    <br><br>

                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>ESMTP 的密码(只有当你选择了 ESMTP 来发信此项才有效)。</b></font><br><br>

                                    <input type=text size="60" name="SMTPPASS" value="$SMTPPASS">

                                    <br><br>

                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>您的发送邮件地址。</b></font><br><br>

                                    <input type=text size="60" name="adminemail_in" value="$adminemail_in">

                                    <br><br>

                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>您的接收邮件地址。</b></font><br><br>

                                    <input type=text size="60" name="adminemail_out" value="$adminemail_out">

                                    <br><br>

                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>您是否希望使用邮件来发送用户在论坛中的密码?</b></font><br>

                                    <font face="宋体" color="#000000">

                                    如果你发送邮件是有问题的话,那么请务必不要使用这个功能!!

                                    <br><br>

                                    <select name="passwordverification">

                                    <option value="no" selected>不要

                                    <option value="yes" >需要

                                    </select><br><br><br>

                                    

                                    <font face="宋体" color="#0000FF">

                                    <b>有新用户注册是否用邮件通知您?</b></font>

                                    <br><br>

                                    <select name="newusernotify">

                                    <option value="no">不要

                                    <option value="yes" selected>需要

                                    </select><br><br>



                                    <hr noshade color="#000000">

                                    <br>

                                    <font face="宋体" color="#000000">

                                    <b>您论坛的详细资料</b><br><br>

                                    这里将询问您的 LB5000 MX 论坛的一些详细资料。</font>

                                    <br>

                                    

                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>论坛名称</b></font><br>

                                    <input type=text size="60" name="boardname" value="CGI 编程者之家的论坛">

                                    <br>



                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>论坛描述</b></font><br>

                                    <input type=text size="60" name="boarddescription" value="我的 LB5000 MX 论坛,好酷酷 ">

                                    <br><br>

                                    <font face="宋体" color="#0000FF">

                                    <b>您的版权信息</b><br>这里不需要加 '&copy\;',程序会自动产生。<br>

                                    &copy\;</font><input type=text size="58" name="copyrightinfo" value="中文版权所有: <a href=http://www.cgier.com>CGI 编程者之家</a>">

                                    <br><br>

                                    <font face="宋体" color="#0000FF">

                                    <b>您的主页名称</b></font><br>

                                    <input type=text size="60" name="homename" value="CGI 编程者之家">

                                    <br><br><br>

                                    <font face="宋体" color="#0000FF">

                                    <b>是否采用灌水预防机制?</b></font><br>

                                    <font face="宋体" color="#000000">

                                    灌水预防机制将控制您的用户在一定的时间内不能重复发贴。 避免了一些用户为了升级而进行的灌水。<BR>

                                    但这个功能不会影响论坛的坛主和版主的连续发贴。

                                    <br>

                                    <br>

                                    <select name="floodcontrol">

                                    <option value="off">关闭灌水预防机制

                                    <option value="on" selected>打开灌水预防机制

                                    </select>

                                    <br><br>

                                    

                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>用户发言相隔时间(只有当灌水预防机制启动后,此项才有效)。</b></font><br>

                                    <input type=text size="10" name="floodcontrollimit" value="30"> &nbsp; 秒

                                    <br><br>



                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>服务器时差设置</b></font><br>

                                    <font face="宋体" color="#000000">

                                    您的服务器现在时间是 $time_is_now。如果不正确,请使用下面的表单来改变服务器时差。

                                    <br>

                                    <br>

                                    $timezone_choice 小时

                                    <br><br>

                                    <br>

                                    <font face="宋体" color="#0000FF">

                                    <b>您所在的时区</b></font><br><br>

                                    <input type=text size="60" name="basetimes" value="北京时间">

                                    <br><br>

                                    <input type=hidden name="announcements" value="yes">

                                         <input type=hidden name="addtype" value="gif,jpg,bmp,zip,png,swf,doc,txt,htm,html">

               

                                    <hr noshade color="#000000">

                                    <br>

                                    <font face="宋体" color="#000000">

                                    <b>请仔细检查上面您输入的信息</b><br>

                                    </font>

                                    <br>

                                    

                                    <input type=submit value="OK,进入下一步">

                                    </form>~;

                                    }

    print "</body></html>";

    exit(0);



sub check { local ($dr) = @_; return 0 if $dr eq ""; if (-e "$dr/$prog") { $true_path = $dr; return 1; } }



sub mailprogram

{

    $mailprogram='/usr/sbin/sendmail';

    if (!(-e $mailprogram)) {$mailprogram='/usr/bin/sendmail';}

    if (!(-e $mailprogram)) {$mailprogram='/bin/sendmail';}

    if (!(-e $mailprogram)) {$mailprogram='/lib/sendmail';}

    if (!(-e $mailprogram)) {$mailprogram='/usr/slib/sendmail';}

    if (!(-e $mailprogram)) {$mailprogram='sendmail';}

    if (!(-e $mailprogram)) {$mailprogram='/usr/lib/sendmail';};

    if (!(-e $mailprogram)) {$mailprogram='perlmail';};

    if (!(-e $mailprogram)) {$mailprogram="没有找到 Sendmail 路径,可能你的主机不支持";};

    return $mailprogram;

}



sub chmodfiles {

opendir (FILE, ".");

@filename = readdir(FILE);

closedir (FILE);

foreach (@filename) {

next if (($_ eq ".")||($_ eq "..")||$_ eq "install.cgi");

chmod(0755,"./$_") if ($_ !~/forum/isg);

}



chmod(0755,"./forums.cgi");

chmod(0755,"./shareforums.cgi");

chmod(0755,"./forumoptions.cgi");

chmod(0755,"./setforums.cgi");

chmod(0777,"data");

chmod(0777,"help");

chmod(0777,"$memdir");

chmod(0777,"memfav");

chmod(0777,"memfriend");

chmod(0777,"backup");

chmod(0777,"lock");

chmod(0777,"forumdata");

chmod(0777,"$msgdir");

chmod(0777,"search");

chmod(0777,"Archive");



opendir (FILE, "./data");

@filename = readdir(FILE);

closedir (FILE);

foreach (@filename) {

    chmod(0777,"data/$_");

}

opendir (FILE, "./data/skin");

@filename = readdir(FILE);

closedir (FILE);

foreach (@filename) {

    chmod(0777,"data/skin/$_");

}

opendir (FILE, "./Archive");

@filename = readdir(FILE);

closedir (FILE);

foreach (@filename) {

    chmod(0777,"Archive/$_");

}

opendir (FILE, "./URI");

@filename = readdir(FILE);

closedir (FILE);

foreach (@filename) {

    chmod(0777,"URI/$_");

}



opendir (FILE, "./$msgdir");

@filename = readdir(FILE);

closedir (FILE);

foreach (@filename) {

    chmod(0777,"$msgdir/$_");

}

}





sub lbagent {

    my $out="";

    my $url=shift;

    $url =~ m@http://(.*?)/(.*)@;

    my ($host,$path) = ($1,$2);

    my $port = 80;

    if ($host =~ /(.*)\d+)/) { $host = $1; $port = $2; }

    my $file;

    if ($path =~ m@.*/(.*)@) { $file = $1; } else { $file = $path; }

    my ($name,$aliases,$addrtype,$len,@addrs) = gethostbyname($host);

    my ($a,$b,$c,$d) = unpack("C4",$addrs[0]);

    my $that = pack('S n C4 x8',2,$port,$a,$b,$c,$d);

    select (sock);

    $|=1;

    select (STDOUT);

    socket(sock,2,1,0);

    my $result = connect(sock,$that);

    if ($result != 1) { $out="error!"; }

    else {

        print sock "GET /$path HTTP/1.1\r\n";

        print sock "Host: $host\r\n";

        print sock "Accept: */*\r\n";

        print sock "User-Agent: LeoBoard Agent 1.1\r\n";

        print sock "ragma: no-cache\r\n";

        print sock "Cache-Control: no-cache\r\n";

        print sock "Connection: close\r\n";

        print sock "\r\n";

        my @out = <sock>;

        foreach (@out){

            $out=$out.$_;

        }

        close(sock);

    }

    return $out;

}



也就是说少了print "Content-type: text/plain\n\n";
这一行就不行,apache的error_log说是malformed header from script. Bad header,畸形的头什么的,各位高手,帮帮忙啊
发表于 2004-3-17 12:31:28 | 显示全部楼层
所以不能少了这一行!
加在第一个输出之前。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表