#!/usr/bin/perl use CGI; use HTML::Template; $tmplfile = "index0.html"; $tpl = HTML::Template->new( filename => $tmplfile, loop_context_vars =>1, die_on_bad_params=>0); $cgi=new CGI; $pagecount=$cgi->param('text'); $page=$cgi->param('page'); $offset=$cgi->param('offset'); $set=$cgi->param('set'); $searchtext=$cgi->param('searchtext'); $class=$cgi->param('class'); $typ=$cgi->param('typ'); $search_typ=$cgi->param('search_typ'); $cpage=$cgi->param('cpage'); $submitgo=$cgi->param('submitgo'); $mode=$cgi->param('mode'); $typ=$cgi->param('typ'); $cat=$typ; $da=time()+1036800; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime($da); $year2=$year+1900; $mon2=$mon+1; $mday2=$mday; $searchtext=~ s/^\s+//; $searchtext=~ s/\s+$//; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); $year=$year+1900; $month=$mon+1; $day=$mday; $month=sprintf("%02d",$month); $day=sprintf("%02d",$day); $showday=60; $showday=600 if($searchtext); open (data,"data.txt"); @datas=; close(data); $total=@datas; $typ = "最新消息"; if($typ ne ""){ for ($k=$total-1;$k>-1;$k--){ $row=@datas[$k]; @fields=split(/\|/,$row); if($row=~ m/$searchtext/i&&@fields[0] eq $typ) { $row=@datas[$k]; $y=substr(@fields[3],0,4); $m=substr(@fields[3],4,2); $d=substr(@fields[3],6,2); $newday=$year*12*30+$month*30+$day-($y*12*30+$m*30+$d); #next if($newday>$showday); push(@new,$row); push (@no,$k); } } } else { for ($k=$total-1;$k>-1;$k--){ $row=@datas[$k]; @fields=split(/\|/,$row); if($row=~ m/$searchtext/i) { $row=@datas[$k]; $y=substr(@fields[3],0,4); $m=substr(@fields[3],4,2); $d=substr(@fields[3],6,2); $newday=$year*12*30+$month*30+$day-($y*12*30+$m*30+$d); next if($newday>$showday); push(@new,$row); push (@no,$k); }else{ push(@new,$row); push (@no,$k); } } } $total2=@new; if ($page eq "") { $page=1; } $pagecount=10; $pk=5; $offset=($page-1)*$pagecount; if ($offset eq "") { $offset=0; } if ($submitgo eq "go") { if ($cpage<=0) {$cpage=1;} $offset=($cpage-1)*$pagecount; $set=int($cpage/$pk); } $nr=$total2; $pages=int($nr/$pagecount)+1; #$pages变量现在包含所需的页数 if ($nr%$pagecount==0) { $pages=int($nr/$pagecount); } $kk=int(($pages)/$pk); if ($pages%$pk==0){ $kk=int($pages/$pk)-1; } if ($set eq "") { $set=0; } $show=$offset+$pagecount; if($show>$nr) { $show=$nr;} $from=$offset+1; $currpage=$offset/$pagecount+1; if ($pages==0){ $currpage=0; $from=0; } @fields=('cat','title','author','form_data','content'); @tpltitle = (); for ($j=$offset;$j<($offset+$pagecount);$j++){ if ($nr>$j){ $row2=@new[$j]; @field=split(/\|/,$row2); for($i=0;$i<@field;$i++){ $fff=@fields[$i]; $$fff=$field[$i]; } my %temp = (); $temp{lineno} = @no[$j]; $temp{title} = $title; push(@tpltitle,\%temp); } } $tpl->param(news_loop=>\@tpltitle); my $hd = *STDOUT; print $hd "Content-type: text/html\n\n"; $tpl->output(print_to=>$hd); sub selectindex { local($select_name,$selected)=@_; open(SE,"$select_name.txt"); @sel=; close(SE); undef $result; foreach $info (@sel) { chop($info); if($info eq $selected) { $result.="\n";} else { $result.="\n";} } return $result; } sub showcat { local($txt)=@_; open(SE,"$txt"); @sel=; close(SE); my $j=8; $result=""; for($i=0;$i<@sel;$i=$i+$j){ $result.=""; for($jj=0;$jj<$j;$jj++) { chop(@sel[$i+$jj]); $result.=""; } $result.=""; } $result.="
@sel[$i+$jj]
"; return $result; }