#!/usr/bin/perl # ######################################## ############## #文件路径和依赖于主机系统的URL定义。 ######################################## ############## # $cgiurl="http://cauzin.com/swtc/who.cgi"; # $orgForm="http://www.cauzin.com/swtc/_who/"; # $ headpath =“c:\\ sites \\ theForce.net \\ Active \\ swtc \\ _ who \\ cgi.head.html”; $ scalpath =“c:\\ sites \\ theforce.net \\ active \\ swtc \\ _ who \\ cgi.foot.html”; $ termpath =“c:\\ sites \\ theForce.net \\ Active \\ swtc \\ _ who \\ cgi.terms.html”; $ blurbpath =“c:\\ sites \\ theforce.net \\ active \\ swtc \\ _ who \\ cgi.blurb.html”; # $ datapath =“c:\\ sites \\ theForce.net \\ Active \\ swtc \\ _ who \\ pyper.txt”; # ######################################## ############## #重要标志变量的默认值。 ######################################## ############## # $formget=0; $secure=0; $diag=0; # $nfields=5; $showfields=3; # # ######################################## ############## # Old junk. ######################################## ############## # #$ sendmail =“/ usr / lib / sendmail”; $date = `date`; chop($date); # ######################################## ############## # Commence output. ######################################## ############## if($ diag){print(“content-type:text / plain \ n \ n”); }; #print“寻找头文件:”。 (-e“$ headpath”)。 “
\ n“; #print“寻找页脚文件:”。 (-e“$ speath”)。 “
\ n“; #print“寻找术语文件:”。 (-e“$ termpath”)。 “
\ n“; #print“寻找blurb文件:”。 (-e“$ blurbpath”)。 “
\ n“; #print“寻找人员文件:”。 (-e“$ datapath”)。 “
\ n“; #exit; #moved to HTMheader #print(“content-type:text / plain \ n \ n”); # #print(“时间是”,$ Date,“\ n”); # ######################################## ############## #处理表单变量。 ######################################## ############## # $query=&readcgivars; $ query =解码($查询); @cgiPairs = split("&",$query); # forach $ pai(@cgipairs){ ($ var,$ val)= split(“=”,$配对); #trust我在这个魔法上。 $val =~ s/\+/ /g; $ val =〜s /%(..)包(“c”,十六进制($ 1))/ ge; $ CGIVALS {“$ var”} =“$ val”; #if($ diag){print(“$ var = $ val
\ n“);} } # #if($ diag){exit(0); } # $收件人= $ CGIVALS {“完整”}; $ key = $ cgivals {“key”}; $合约= $ CGIVALS {“合同”}; # # #$收件人= trimwhite($收件人); if(!$收件人){ #没有人以表格命名。 #适当地修改此文本 打印(“位置:$ orgform \ n \ n”); # &HTMLheader("Unspecified Person"); # &HTMLfooter; exit(0); } # # if($收件人eq $ key){ $secure=1; } if ($formget) { $secure=0; } if($合同ne“商定”){ $secure=0; } # # ######################################## ##################### #搜索所请求的人名的数据文件。 ######################################## ##################### # 打开(数据文件,$ DataPath); # $found=0; $foundkey=0; do { @row=&readTR; $ name = trimwhite($行[0]); $ scramble =加入(“\ *”,split(//,$收件人)); if ($name eq $key) { $foundkey++; } if($ name eq $收件人){ # #foreach $ fld(@row){ #chomp($ fld); #打印(“。”。$ FLD。“。\ n”) # } #打印(“....... \ n”); # chomp($row[0]); #打印(“。”。$行[0]。“。\ n”); # $found++; if($found == 1) { &HTMLheader("Acknowledgements: $recipient"); if(! $secure) { print("
\ n“); } print("\ n“); } # $ Email = Trimwhite($行[1]); $ ack = trimwhite($行[2]); $ack=&parsecontributions($ack); $ url = trimwhite($行[$ nfields-2]); $ ihttp = index($ url,http“); if($ihttp ge 0) { $rs=$row[0]; $rs="$卢比“; $row[0]=$rs; } # print("\ n“); print("“); print("\ n“); print("\ n“); # print("\ n“); print("“); print("\ n“); print("\ n“); # print("\ n“); print("\ n“); print("\ n“); } else { $hyd=$name; print("\ n \ n“); print("“); print(" "); print("\ n“); } print("\ n“); # if ($url ne "") { print("\ n“); print("\ n“); print("\ n“); print("\ n“); } # @lines = ; } } whiled(($行[0] ne“^”)&&()); # close(DATAFILE); # if($found == 0) { &HTMLheader("Unknown Person"); } else { print("

名称:

\ n
\ n $ name \ n

确认:

\ n
\ n $ ack \ n

一致:

“); if($secure) { $Temail=&parseemail($email); $Temail=&atsymbol($Temail); print("\ n $Temail\n

link:

“); print("$url
\ n

\ n“); if(! $secure) { &HTMLterms; print("

\ n“); } } # &HTMLfooter; exit(0); # # # # sub error { # error routine ($message) = @_; print("错误:“, $message, "

联系上一页的作者以获取帮助\ n“); exit(0); } # #程序检查setuid位是否打开 sub checkSUID { return( -u $_[0] ); } # # # sub readTD { #过程从文件中读取表元素 $tdstr="“; $nonwhite = 0; $number=0; if (!eof DATAFILE) { $key = ; chomp($key); if (length($key) > 0) { if (index($key,"|") > 0) { $key =~ s/\|//g; $tdstr=$key; } elsif (length($key) > 1) { $v = "“; $tdstr=$key; 而(索引($ v,“|”)!= 0){ $v = ; chomp($v); if(索引($ v,“|”)!= 0){$ TDSTR。=“\ n”。 $ v; } } } else { $tdstr=$key; } } } #print(“:”。$ tdstr。“:\ n”); return($tdstr); } # # sub readTR { #过程从文件中读取表行 @row=(); $t="“; 虽然($ t ne“^”&&(!eof数据文件)){ $t=&readTD; if ($t eq "|") { push(@row,"“); } elsif ($t ne "") { push(@row,$t); } } return(@row); } # # sub HTMLheader { ($tit)= @_; if(-e“$ headpath”){ 打开(HTML,$ HEADPATH); @temp = ; close(HTML); $all=join("“,@temp); $ss="INSERT"; @bits = split(/插入/,$全部); $所有=加入(“$山雀”,@ bits); if (index($tit,"Unknown") >=0) { $all .= qq[


全名:

]; } } else { $all="\ n $山雀 \ n \ n

\ n“; } #打印(“content-type:text / html \ n”); #打印(“content-type:text / html \ n \ n”); print($all); } # # sub HTMLfooter { if(-e“$ spoarpath”){ 打开(HTML,$ SPATPHATH); @temp = ; close(HTML); print(@temp); } else { print("

\ n

\ n \ n“); } } # # sub HTMLblurb { if(-e'$ blurbpath“){ 打开(html,$ blurbpath); @temp = ; close(HTML); print(@temp); } else { print("

\ n“); } } # # sub HTMLterms { if(-e“$ termpath”){ 打开(html,$ termpath); @temp = ; close(HTML); print(@temp); } else { print("NO TERMS

\ n“); } } # # sub HTMLdie { ($tit)= @_; &HTMLhead($tit); &HTMLfoot; exit(0); } # # sub trimwhite { #子程序从字符串中删除一些空格字符 ($temp)= @_; $ temp =加入(“”,拆分(/ \ n + /,$ temp)); $ temp =加入(“”,拆分(/ \ t + /,$ temp)); $ temp =加入(“”,split(/ \ r + /,$ temp)); $ temp =加入(“”,split(/ \ 0 + /,$ temp)); return($temp); } # # sub atsymbol { ($temp)= @_; $temp=join("@“,拆分(/ @ /,$ temp)); return($temp); } # # sub parseemail { ($temp)= @_; @ tarr = split(/ \ s + /,$ temp); $ temp =加入(“”,@ tarr); @ tarr = split(/,/,$ temp); for($l=0;$l<=$#tarr;$l++) { $t=$tarr[$l]; $ihttp = index($t,"http"); if($ihttp >= 0) { $tarr[$l]="$ t.“; } else { $tarr[$l]="$ t.“; } } $ temp =加入(“,\ n”,@ tarr); return($temp); } # # # 子Parsecontibutions { ($temp)= @_; @ tarr = split(“::”,$ temp); $temp=join("
",@tarr); return($temp); } # # sub decode($) { $ _ [0] =〜s / \ + / / g; ###更改+到空间 我的(@parts)= split /%/,$ _ [0]; 我的($ retchstring)=“”; (($ _ [0] =〜m / ^ \%/)?(shift(@parts)):( $ retchstring = shift(@parts))); my($part); forach $ part(@parts) { $ retchntring。= chr(hex(substr($ part,0,2))); 我的($ tail)= substr($零件,2); $ retchingstring。= $尾巴(定义($尾)); } 返回($ retchingstring); } # # # sub readcgivars { #无论方法如何,用于读取CGI变量的广义过程。 if(($ env {'request_method'} eq'get')|| ($ ENV {'Request_Method'} EQ'头')){ #使用此表单使用方法= get $ in = $ env {'query_string'}; $formget=1; $secure=0; } elsif($ env {'request_method'} eq' post'){ #使用方法= post for表单 if($ env {'content_type'} =〜 m#^ application / x-www-form-ullencoded $#i){ 长度($ env {'content_length'}) || &HTMLdie("POST request has no Content-Length."); 阅读(STDIN,$ IN,$ ENV {'content_length'}); } else { $ mess =“不支持的内容类型:”; $ mess =“$ sall $ env {'content_type'}” &HTMLdie($mess); } $formget=0; } else { &HTMLdie("Script was called with unsupported REQUEST_METHOD."); } return($in); }