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

📄 delpost.cgi

📁 一个linux论坛
💻 CGI
📖 第 1 页 / 共 4 页
字号:
                        print FILE "$inmembername\t$topictitle\t$ENV{'REMOTE_ADDR'}\tyes\tyes\t$currenttime\t$newinpost\t$inposticon\t\n" if ($movetopicname eq "on");
                        close(FILE);
                    }
	            &winunlock($filetoopen) if ($OS_USED eq "Nt");

                    my $file = "$lbdir" . "forum$inforum/$intopic.pl";
                    open (ENT, $file);
                    $in = <ENT>;
                    close (ENT);
                    chomp $in;
                    ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $lastinposticon,$inposttemp) = split(/\t/,$in);
                    $threadposts ++ if ($movetopicname eq "on");
		    if (($threadstate eq "poll")||($threadstate eq "pollclosed")) { $threadstate = "pollclosed"; } else { $threadstate = "closed"; }
                    if (open(FILE, ">$file")) {
                        $inforumwrite = "$intopic\t$topictitle\t$moveinfoold\t$threadstate\t$threadposts\t$threadviews\t$startedby\t$startedpostdate\t$inmembername\t$currenttime\t$lastinposticon\t$inposttemp\t";
                        print FILE $inforumwrite;
                        close(FILE);
                    }
                    push (@inforumwrite, "$inforumwrite");
                }
            }
	    else {            

        	  unlink ("${lbdir}forum$inforum/$intopic.pl");
        	  unlink ("${lbdir}forum$inforum/$intopic.thd.cgi");
        	  unlink ("${lbdir}forum$inforum/$intopic.poll.cgi");
        	  unlink ("${lbdir}forum$inforum/$intopic.mal.pl");
        	  unlink ("${lbdir}forum$inforum/rate$intopic.file.pl");
        	  unlink ("${lbdir}forum$inforum/rateip$intopic.file.pl");

		  opendir (DIRS, "${imagesdir}usr/$inforum");
		  my @files = readdir(DIRS);
		  closedir (DIRS);
		  my @files = grep(/^$inforum\_$intopic/i, @files);

		  my @files1 = grep(/^$inforum\_$intopic./i, @files);
		  foreach (@files1) {
		      chomp $_;
		      unlink ("${imagesdir}usr/$inforum/$_");
    		  }

    		  my @files1 = grep(/^$inforum\_$intopic\_/i, @files);
    		  foreach (@files1) {
    		      chomp $_;
		      unlink ("${imagesdir}usr/$inforum/$_");
    		  }

	    }
        }

	if ($inleavemessage eq "no") {  #删除原来论坛的帖子,处理最新贴子中的数据
	    $filetomakeopen = "$lbdir" . "data/recentpost.cgi";
	    open(FILE, "$filetomakeopen");
	    @recentposts=<FILE>;
	    close(FILE);
	    
	    if (open (FILE, ">$filetomakeopen")) {
	        foreach (@recentposts) {
	            chomp $_;
	            ($inforumtemp, $intopictemp, $tempno3, $tempno4, $tempno5) = split (/\t/,$_);
	            next if (($inforumtemp !~ /^[0-9]+$/)||($intopictemp !~ /^[0-9]+$/));
	            if ($inforumtemp eq $inforum) {
	                my $checkme=0;
	                foreach $intopic (@intopic){
		            if ($intopictemp eq $intopic) {
		                $checkme=1;
		                last;
		            }
	                }
	                if ($checkme eq 0) {
		            print FILE "$_\n";
		        }
	                else {
	    	            print FILE "$movetoid\t$newthreadnumber\t$tempno3\t$tempno4\t$tempno5\t\n";
	                }
	            }
	            else {
	    	        print FILE "$_\n";
	            }
	        }
	        close(FILE);
	    }
	}

        $file = "$lbdir" . "boarddata/list$inforum.cgi";
        &winlock($file) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
        open (LIST, "$file");
        flock (LIST, 1) if ($OS_USED eq "Unix");
        @listall=<LIST>;
        close (LIST);
        $listall = @listall;
        if ($listall >= 300) {
            if (open (LIST, ">$file")) {
                flock (LIST, 2) if ($OS_USED eq "Unix");
		if ($inleavemessage eq "yes") {
                    foreach (@inforumwrite) {
                        chomp $_;
		        print LIST "$_\n" if ($_ ne "");
		    }
		}
                foreach (@listall) {
	            $_ =~ s/[\n\r]//isg;
                    (my $useid,my $no)=split(/\t/,$_);
		    my $checkme=0;
		    foreach (@intopic){
		        if ($useid eq $_) {
			    $checkme=1;
			    last;
		        }
		    }
                    if (($checkme == 0)&&($useid ne "")&&($useid =~ /^[0-9]+$/)){
	                print LIST "$_\n" ;
	            }
                }
                close (LIST);
            }
            &winunlock($file) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
        }
        else {
            &winunlock($file) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
            rebuildLIST(-Forum=>"$inforum");
        }
	undef @inforumwrite;
	undef @listall;
	
        $file = "$lbdir" . "boarddata/list$movetoid.cgi";
        &winlock($file) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
        open (LIST, "$file");
        flock (LIST, 1) if ($OS_USED eq "Unix");
        @listall=<LIST>;
        close (LIST);
	$listall = @listall;
	if ($listall >= 300) {
            if (open (LIST, ">$file")) {
                flock (LIST, 2) if ($OS_USED eq "Unix");
                foreach (@moveforumwrite) {
                    chomp $_;
	            print LIST "$_\n" if ($_ ne "");
		}
                foreach (@listall) {
		    $_ =~ s/[\n\r]//isg;
		    (my $useid,my $no)=split(/\t/,$_);
                    if (($useid ne "")&&($useid =~ /^[0-9]+$/)){
		        print LIST "$_\n" ;
                    }
                }
                close (LIST);
            }
            &winunlock($file) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
	}
	else {
            &winunlock($file) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
            foreach (@moveforumwrite) {
               chomp $_;
               my ($newid, $no) = split(/\t/, $_);
               open(FILE, ">${lbdir}forum$movetoid/$newid.pl");
               print FILE $_;
               close(FILE);
            }
            rebuildLIST(-Forum=>"$movetoid");
	}
	undef @moveforumwrite;
	undef @listall;
        $relocurl = "forums.cgi?forum=$inforum";
        $output .= qq~<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
<tr><td><table cellpadding=6 cellspacing=1 border=0 width=100%>
<tr><td bgcolor=$miscbacktwo align=center><font color=$fontcolormisc><b>主题已经移动</b></font></td></tr>
<tr><td bgcolor=$miscbackone><font color=$fontcolormisc>具体情况:<ul>
<li><a href="forums.cgi?forum=$inforum">返回原论坛</a>
<li><a href="forums.cgi?forum=$movetoid">返回新论坛</a>
<li><a href="leoboard.cgi">返回论坛首页</a>
</ul></tr></td></table></td></tr></table>
<meta http-equiv="refresh" content="3; url=$relocurl">
~;
    $checked = "no";
    }
    else {
        $jumphtml .= "<option value=\"\">选择一个论坛\n</option>";
        $a=0;
        foreach $forum (@forums) {
	    $a  = sprintf("%09d",$a);
            chomp $forum;
	    next if ($forum eq "");
            ($movetoforumid, $category, $categoryplace, $forumname, $forumdescription, $noneed ,$noneed ,$noneed ,$noneed, $noneed ,$noneed ,$noneed, $noneed, $noneed, $noneed, $ratings, $noneed,$forumpass,$hiddenforum,$indexforum,$teamlogo,$teamurl, $fgwidth, $fgheight, $miscadd3, $miscadd4, $miscad5) = split(/\t/,$forum);
    	    next if ($movetoforumid !~ /^[0-9]+$/);
    	    next if ($categoryplace !~ /^[0-9]+$/);
	    $categoryplace  = sprintf("%09d",$categoryplace);
            $rearrange = ("$categoryplace\t$a\t$category\t$forumname\t$forumdescription\t$movetoforumid\t$forumgraphic\t$ratings\t$misc\t$forumpass\t$hiddenforum\t$indexforum\t$teamlogo\t$teamurl\t$fgwidth\t$fgheight\t$miscadd3\t$miscadd4\t$miscad5\t");
            push (@rearrangedforums, $rearrange);
            $a++;
        }
        @finalsortedforums = sort (@rearrangedforums);
        foreach $sortedforums (@finalsortedforums) {
            ($categoryplace,my $a, $category, $forumname, $forumdescription, $movetoforumid, $forumgraphic, $ratings, $misc,$forumpass,$hiddenforum,$indexforum,$teamlogo,$teamurl, $fgwidth, $fgheight, $miscadd3, $miscadd4, $miscad5) = split(/\t/,$sortedforums);
	    $categoryplace  = sprintf("%01d",$categoryplace);

            $child=($category =~/^childforum-[0-9]+/)?" |":"";
            if ($categoryplace ne $lastcategoryplace) {
                $jumphtml .= "<option value=\"\" style=background-color:$titlecolor>╋$category\n</option>";
                $jumphtml .= "<option value=\"$movetoforumid\">$child |- $forumname\n</option>";
            }
            else {
                $jumphtml .= "<option value=\"$movetoforumid\">$child |- $forumname\n</option>";
            }
            $lastcategoryplace = $categoryplace;
        }
        @intopic = $query -> param('topic');
        if ($movetopicname eq "on") {
           $movetopicnameset = qq~<br><input name="deletepost" type="checkbox" value="yes" checked> 於贴子下显示转移字样?~; 
        }
        $output .= qq~<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
<tr><td><table cellpadding=6 cellspacing=1 border=0 width=100%>
<tr><td bgcolor=$miscbacktwo align=center colspan=2>
<form action="$thisprog" method="post">
<input type=hidden name="action" value="movetopic">
<input type=hidden name="checked" value="yes">
<input type=hidden name="forum" value="$inforum">
<input type=hidden name="topic" value="@intopic">
<font color=$fontcolormisc><b>请输入您的用户名、密码进入版主模式 [移动主题]</b></font></td></tr>
<tr><td bgcolor=$miscbackone width=40%><font color=$fontcolormisc><b>请输入您的用户名</b></font></td>
<td bgcolor=$miscbackone><input type=text name="membername" value="$inmembername"</td></tr>
<tr><td bgcolor=$miscbackone><font color=$fontcolormisc><b>请输入您的密码</b></font></td>
<td bgcolor=$miscbackone><input type=password name="password" value="$inpassword"> &nbsp; <font color=$fontcolormisc><a href="profile.cgi?action=lostpass" style="cursor:help">忘记密码?</a></font></td></tr>
<tr><td bgcolor=$miscbackone><font color=$fontcolormisc>
<b>移动选项</td>
<td bgcolor=$miscbackone><font color=$fontcolormisc>
<input name="leavemessage" type="radio" value="yes"> 移动并保留一个已经锁定的主题在原论坛<br><input name="leavemessage" type="radio" value="no" checked> 移动并将此主题从原论坛中删除$movetopicnameset</font>
</td></tr>
<tr><td bgcolor=$miscbackone valign=top><font color=$fontcolormisc><b>当前心情</b><br><li>将放在贴子的前面<BR></font></td>
<td bgcolor=$miscbackone valign=top>
~;

        open (FILE, "${lbdir}data/lbpost.cgi");
        my @posticondata = <FILE>;
        close (FILE);
        chomp @posticondata;

        $tempiconnum=1;
#       $tempselect = "checked";
        foreach $picture (@posticondata) {
            $posticonname = $picture;
            $posticonname =~ s/\.gif$//ig;
            if ($tempiconnum > 12) {
    	        $tempiconnum = 1;
    	        $output .= qq~<BR>~;
            }
            if ($picture eq $posticon) {$tempselect = "checked";} else {$tempselect = "";}
            $output .= qq~<input type=radio value="$picture" name="posticon" $tempselect><img src="$imagesurl/posticons/$picture" border=0>&nbsp;~;
            $tempiconnum ++;
#           $tempselect = "";
        }
        $output .= qq~</td></tr><tr><td bgcolor=$miscbackone valign=top><font color=$fontcolormisc><b>信息:</b><p>
这个是可选的,可以填入一些说明信息。<p> 移动后的目标地址会自动输入在主题中。</font></td>
<td bgcolor=$miscbackone><textarea cols=80 rows=9 wrap="soft" name="inpost"></textarea></td></tr>
<tr><td bgcolor=$miscbackone valign=top><font color=$fontcolormisc><b>转移至:</b></font></td>
<td bgcolor=$miscbackone valign=top><font color=$fontcolormisc><select name="movetoid">$jumphtml</select></font></td></tr>
<tr><td bgcolor=$miscbacktwo colspan=2 align=center><input type=submit name="submit" value="提 交"></td></tr></form></table></td></tr></table>
</table></td></tr></table>
~;
    }
}

END {
  if ($cpudisp eq "1") {
    $spent_time = sprintf ("%.2f", ((times)[0] + (times)[1] - $start_time)*1000);
    print "<center><font color=#c0c0c0>当前页面执行消耗时间: $spent_time 毫秒";
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -