したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

プログラムスレッド

48女傑 ◆nDpXSJz8i.:2012/04/20(金) 13:14:10
読書のためのCGI(適宜、改行してください)

#!/usr/local/bin/perl
require './cgi-lib.pl';
&ReadParse(*in);
$story = $in{'story'};
$page = $in{'page'};
$story =~ tr/+/ /;
$story =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$page =~ tr/+/ /;
$page =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
if ($story =~/\W+$/) { &error("禁則文字が使われています"); }
if ($page =~/\W+$/) { &error("禁則文字が使われています"); }
if ($story eq "") { &error("ストーリーの名前の入力がありません"); }
if ($page eq "") { &error("ページ番号の入力がありません"); }
$file = "./$story/$page\.cgi";
if (!(-e $file)) { &error("存在しません"); }
elsif (-z $file) { &error("ファイルが異状です"); }
flock(IN, LOCK_EX);
if (!open(IN,"$file")) { &error("ファイルが開けません"); }
@lines = <IN>;
close(IN);
flock(IN, LOCK_NB);
print "Content-type: text/html\n\n";
print <<"EOF";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html><head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<meta name="robots" content="noindex,nofollow">
<meta name="googlebot" content="noindex,nofollow,noarchive">
<meta name="Berry" content="no">
<title></title></head>
<BODY BGCOLOR=#FFFFFF>
<font>
EOF
foreach (0..12) {
chomp($file) if $file =~ /\n$/;
($name,$value) = split(/,/,$lines[$_],0);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/\t//g;
$value =~ s/\r//g;
$value =~ s/\n//g;
$value =~ s/\.//g;
$value =~ s/\///g;
$value =~ s/&/&/g;
$value =~ s/"/"/g;
$value =~ s/</</g;
$value =~ s/>/>/g;
if ("$name$value" ne "") {
print "<p>$name$value</p>";
}
}
1;
print <<"EOF";
</font>
</body></html>
EOF
exit;
sub error {
local (@msg) = @_;
local ($i);
print "Content-type: text/html\n\n";
print <<"EOF";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML><HEAD>
<TITLE></TITLE>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<meta name="robots" content="noindex,nofollow">
<meta name="googlebot" content="noindex,nofollow,noarchive">
<meta name="Berry" content="no">
</HEAD>
<BODY BGCOLOR=#FFFFFF>
<font>$msg[0]</font>
EOF
if ($msg[1] ne '') {

print "<ul>\n";
foreach $i (1 .. $#msg) { print "<li>$msg[$i]\n"; }
print "</ul>\n";
}
print <<"EOF";
<font><A HREF=./>最初に戻る</A></font>
</body></html>
EOF
exit;
}


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板