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

📄 mnews.pl

📁 网络时代程序源代码从—c++源程序,包含.exe文件等
💻 PL
📖 第 1 页 / 共 2 页
字号:
#!/usr/local/bin/perl
#=====================================================================
#版权声明 (Male Nurse News v1.0)
#
#本软体为男丁格尔(nursing@tacocity.com.tw)所撰写
#特作此版权说明,请大家遵守
#
#本软体为共享软体(shareware)提供所有网站免费使用
#请勿非法转载, 散播, 或用于其他图利行为, 并请勿删除版权声明
#
#男丁格尔(nursing@tacocity.com.tw)
#
#本软体中,引用了 Very Thanks Soho 取参数传递资料的写法。
##########################################################################
#### 读入设定资料档####
$setup_path="/home/city1/个人帐号名称/www/cgi-bin/mnews_setup.pl";   #设定资料档的绝对路径
require $setup_path;
########################
#$|=1;

&get_form;
&set_var;



if ($job eq "") {
   &view_1 if ($view_show == 1);
   &view_2 if ($view_show == 2);
   &view_3 if ($view_show == 3);
   exit 0;
}


print "Content-type: text/html\n\n";

if ($job eq "manage") {
   &manage;
   exit 0;
}
elsif ($job eq "password_check") {
   &password_check;
   exit 0;
}
elsif ($job eq "add") {
   &add;
   exit 0;
}
elsif ($job eq "views") {
   &views;
   exit 0;
}
elsif ($job eq "manage_del") {
   &manage_del;
   exit 0;
}
elsif ($job eq "manage_change") {
   &manage_change;
   exit 0;
}
elsif ($job eq "add_change") {
   &add_change;
   exit 0;
}

#############标准程序############################################
sub get_form {
@querys = split(/&/, $ENV{'QUERY_STRING'});
foreach (@querys) {
  ($name,$value) = split(/=/, $_);
  $value = &decode($value);
  $value = &filterhtml($value);
  &setvaluetoform($name, $value); 
}

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach (@pairs) {
  ($name, $value) = split(/=/, $_);
  $value = &decode($value);
  $value = &filterhtml($value);
  &setvaluetoform($name, $value); 
}
}
#==============================================
sub decode {
local($return)=$_[0];
$return =~ tr/+/ /;
$return =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
return $return;
}
#==============================================
sub filterhtml {
local($return)=$_[0];
$return =~ s/<!--(.|\n)*-->//g;
if ($show_html != 1) {
   $return =~ s/<([^>]|\n)*>//g;
   $return =~ s/<//g;
}
$return =~ s/script|meta//gi;
return $return;
}
#==============================================
sub setvaluetoform {
if ($FORM{$_[0]}) {
   $FORM{$_[0]}="$FORM{$_[0]}§$_[1]";
}
else {
   $FORM{$_[0]}=$_[1];
}
}
#==============================================
sub set_var {
$job             =&get_var('job'            ,'\n|∥');
$title           =&get_var('title'            ,'\n|∥');
$comments        =&get_var('comments'            ,'\n|∥');
$num             =&get_var('num'            ,'\n|∥');
$chdaten         =&get_var('chdaten'            ,'\n|∥');
$chtimen         =&get_var('chtimen'            ,'\n|∥');
$ck              =&get_var('ck'            ,'\n|∥');
$news_set        =&get_var('news_set'            ,'\n|∥');
$chk_name        =&get_var('chk_name'            ,'\n|∥');
$chk_pass        =&get_var('chk_pass'            ,'\n|∥');
$see             =&get_var('see'            ,'\n|∥');
$nk              =&get_var('nk'            ,'\n|∥');
$nk2             =&get_var('nk2'            ,'\n|∥');
$img_url         =&get_var('img_url'            ,'\n|∥');
$next_url        =&get_var('next_url'            ,'\n|∥');



($secn,$minn,$hourn,$dayn,$monn,$yearn,$weekn,$yeardayn,$isdst) = localtime(time+(3600*$time_miss));
$monn=$monn+1;
if ($monn<10)  {$monn="0$monn";}
if ($dayn<10)  {$dayn="0$dayn";}
if ($hourn<10) {$hourn="0$hourn";}
if ($minn<10)  {$minn="0$minn";}
if ($secn<10)  {$secn="0$secn";}
$yearn=$yearn+1900;
$daten="$yearn/$monn/$dayn";
$timen="$hourn\:$minn\:$secn";
$newuserno="$yearn$monn$dayn$hourn$minn$secn";
}
#==============================================
sub get_var {
local($return)="";
$return="$FORM{$_[0]}" if ($FORM{$_[0]});
$return=~ s/$_[1]//g;
return $return;
}
#==============================================
sub readtxtfile {
open(READTXTFILE,"$_[0]");
flock(READTXTFILE,2);
@readtxtfile=<READTXTFILE>;
flock(READTXTFILE,8);
close(READTXTFILE);
return @readtxtfile;
}
#==============================================
sub HTMLHeader {
print "<HTML>\n";
print "<HEAD><TITLE>$_[0]</TITLE>\n";
print "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=BIG5\">\n";
&style if ($_[1] == 1);
print "</HEAD>\n";
print "<BODY>\n";
}
#==============================================
sub HTMLFooter {
print "<br><P><CENTER><!--\#echo banner=\"\"--></CENTER>\n";
print "</BODY>\n";
print "</HTML>\n";
}
#==============================================
sub style {
print "<STYLE TYPE=\"text/css\">\n";
print "<!--\n";
print "A:link  {color: rgb(0,0,255); font-style: normal; text-decoration: none; cursor: hand}\n";
print "A:visited  {color:rgb(255,0,0); font-style: normal; text-decoration: none}\n";
print "A:active  {color:rgb(255,0,0); font-style: normal; text-decoration: none}\n";
print "body,th,td,input,select,textarea {font:9pt 新细明体}\n";
print "a:hover {color:rgb(255,0,0);text-decoration:none}\n";
print "a {text-decoration:none; color:#000000}\n";
print "-->\n";
print "</STYLE>\n";
}
#==============================================
sub succ {
&HTMLHeader($_[0],1);
print "<CENTER><TABLE width=60%>\n";
print "<TR><TD align=\"center\">$_[0]<hr></TD></TR>\n";
print "<TR bgcolor=$view1_color><TD align=\"center\">【<a href=$news_html>回首页</a>】</TD></TR>\n" if ($_[1] ne "1");
print "<TR bgcolor=$view1_color><TD align=\"center\">【<a href='javascript:history.go(-1);'>回上一页</a>】</TD></TR>\n" if ($_[1] eq "1");
print "</TABLE></CENTER>\n";	
&HTMLFooter;
}
################标准程序结束###############

####管理介面###############################
sub manage {
&HTMLHeader("管理介面",1);
print "<FORM METHOD=\"Post\" ACTION=\"$cgiurl?job=password_check\">\n";
print "<CENTER><TABLE Border=1>\n";
print "<TR><TD colspan=2>\n";
print "<INPUT TYPE=Radio NAME=\"news_set\" VALUE=\"ch_1\">新增新闻</TD></TR>\n";
print "<TR><TD colspan=2>\n";
print "<INPUT TYPE=Radio NAME=\"news_set\" VALUE=\"ch_2\">修改与删除</TD></TR>\n";
print "<TR><TD><FONT COLOR=\"#000000\">管理员名称:</TD><TD><INPUT TYPE=Text NAME=\"chk_name\" SIZE=10 MAXLENGTH=8></TD></TR>\n";
print "<TR><TD><FONT COLOR=\"#000000\">管理员密码:</TD><TD><INPUT TYPE=Password NAME=\"chk_pass\" SIZE=10 MAXLENGTH=8></TD></TR>\n";
print "<TR><TD colspan=2 align=center>\n";
print "<INPUT TYPE=Submit VALUE=\"送出\">\n";
print "<INPUT TYPE=Reset VALUE=\"取消\">\n";
print "</TD></TR>\n";
print "</TABLE></FORM></CENTER>\n";
&HTMLFooter;	
}
####密码确认###############################
sub password_check {

&succ("姓名或密码错误!",1) if (($chk_name eq "") or ($chk_pass eq ""));	
if (($chk_name ne "") or ($chk_pass ne "")) {
   
  if ($manage{$chk_name} eq $chk_pass) {
	if ($news_set eq "ch_1") {
		&add_news;
		exit 0;
        } elsif ($news_set eq "ch_2") {
                &change_and_delete;
                exit 0;
                   
        }
   } elsif ($manage{$chk_name} ne $chk_pass) {
       &succ("姓名或密码错误!",1);
}}
}

####增加新闻介面###############################
sub add_news {
&HTMLHeader("增加新闻",1);
print "<form method=\"post\" action=\"$cgiurl?job=add\">\n";
print "<center><table border=0>\n";
print "<tr><td align=center bgcolor=\"\#66ccff\">标题</td></tr>\n";
print "<tr><td align=center><input type=text name=\"title\" size=30></td></tr>\n";
print "<tr><td align=center bgcolor=\"\#66ccff\">内容</td></tr>\n";
print "<tr><td align=center><TextArea NAME=\"comments\" ROWS=5 COLS=40></TextArea></td></tr>\n";
print "<tr><td align=center bgcolor=\"\#66ccff\">图片网址</td></tr>\n";
print "<tr><td align=center><input type=text name=\"img_url\" size=30  value=\"[none]\"></td></tr>\n";
print "<tr><td align=center bgcolor=\"\#66ccff\">跳页位置</td></tr>\n";
print "<tr><td align=center><input type=text name=\"next_url\" size=30  value=\"[none]\"></td></tr>\n";
print "<tr><td colspan=2 align=center>\n";
print "<INPUT type=\"submit\" value=\"送出\"><INPUT type=\"reset\" value=\"清除\">\n";
print "</td></tr></table></form>\n";
&HTMLFooter;
}
####增加新闻主程式###############################
sub add {
$click=0;
dbmopen(%USERFILE,"$filehead$news_data",0666);
$USERFILE{$newuserno}="yuko∥$daten∥$timen∥$title∥$comments∥$click∥$img_url∥$next_url∥\n";
dbmclose(%USERFILE);

#=====删除多出的新闻==========

      dbmopen(%TEMP,"$filehead$news_data",0666);
      %USERFILE=%TEMP;
      dbmclose(%TEMP);
	
      @userno=keys %USERFILE;
      @userno=sort {$b<=>$a} @userno;
      $usertotal=$#userno;

      if ($usertotal >= $set_num) {
       dbmopen(%USERFILE,"$filehead$news_data",0666);
      	for ($i=$usertotal;$i>=$set_num;$i=$i-1) {
      		$over=$userno[$i];
                delete $USERFILE{$over};
         }
       dbmclose(%USERFILE);
}
#=============================
  &succ("加入完成!",0);	
}

#######显示新闻######################################
sub view_1 {
	#print "Content-type: text/html\n\n";
	
      dbmopen(%TEMP,"$filehead$news_data",0666);
      %USERFILE=%TEMP;
      dbmclose(%TEMP);
	
      @userno=keys %USERFILE; 
      @userno=sort {$b<=>$a} @userno;
      $usertotal=$#userno+1;
      
       if (defined @userno) {
      	$vb=0;
      }else {
	$vb=1;
	}
      
      $count=0;
 
        print "<CENTER><TABLE Border=\"0\"  CELLSPACING=\"0\" CELLPADDING=\"2\" width=100%>\n";
        print "<TR><TD  bgcolor=$view1_color colspan=3  align=center>目前没有任何资料存在</TD></TR>\n" if ($vb != 0);      
    foreach $userno1 (@userno) {
          @co=split(/∥/,$USERFILE{$userno1});
          $count++;
             $co[4] =~ s/<([^>]|\n)*>//g;
             $co[4] =~ s/<//g;
             $co[4] =~ s/script|meta//gi;
        if (length($co[4]) > $text_length ) {

⌨️ 快捷键说明

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