CGIスクリプト評価スレッド
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/04/28 01:24ID:WlAStrLr当方PerlしかわからないのでPerlのみで。
ただし自作スクリプトに限る。
0002nobodyさん
02/04/28 01:48ID:b3pLvKk0まずはあんたのスクリプト公開せーや
0004nobodyさん
02/04/28 01:53ID:???0005nobodyさん
02/04/28 01:54ID:???00061
02/04/28 02:02ID:???0007nobodyさん
02/04/28 02:11ID:???0008nobodyさん
02/04/28 13:11ID:???$Pass = "pass"; #パスワード
$File_Access = "log.txt"; #ログファイル
$File_Print = "print.txt"; #プリントファイル
$max_log = 100; #最大保存件数
$prt_log = 10; #表示件数
#引数チェック
if ($ENV{'REQUEST_METHOD'} eq "GET") { $buffer = $ENV{'QUERY_STRING'}; }
else{ read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
unless($buffer){ &lock; }
if($buffer eq $Pass){ &print; }
exit;
#ロック処理開始
sub lock{
$rename = "lock".time(); $cnt = 0; $check = 0;
while($cnt > -1){
if(rename("lock",$rename)){
#リネームできたら処理をする
&count;
#処理が終わったら名前を戻し、ループを抜ける
rename($rename,"lock");
last;
}else{
#リネームできなかったら1秒待って繰り返す
$x[$cnt] = substr(<lock*>,4); sleep(1); $cnt++;
#5秒待ってリネームできない場合は「以前に異常終了していた」とみなす
if($cnt > 4){ rename("lock".$x[0], "lock"); $cnt = 0; $check++;}
if($check > 1){ exit; }
}
}
}
0009nobodyさん
02/04/28 13:12ID:???sub count{
#アクセスログファイルオープン
open(IN,"$File_Access"); $log = <IN>; close(IN);
#各構成子作成
$count = substr($log,0,index($log,",")) + 1;
$referer = $ENV{'HTTP_REFERER'};
$addr = $ENV{'REMOTE_ADDR'};
$host = $ENV{'REMOTE_HOST'};
$agent = $ENV{'HTTP_USER_AGENT'};
if ($host eq "") { $host = gethostbyaddr(pack('C4',split(/\./,$addr)),2)
|| $addr; }
elsif ($host eq $addr) { $host =
gethostbyaddr(pack('C4',split(/\./,$host)),2) || $addr; }
$ENV{'TZ'} = "JST-9";
($sec, $min, $hour, $mday, $mon, $year) = localtime(time());
$date_now = sprintf("%02d/%02d/%02d", $year - 100, $mon + 1, $mday);
$time_now = sprintf("%02d:%02d:%02d", $hour, $min, $sec);
$times = $date_now."-".$time_now;
#構成子整理
if($log){ $log = "$count,$times,$agent,$addr,$host,$referer<>$log"; }
else{ $log = "$count,$times,$agent,$addr,$host,$referer"; }
0010nobodyさん
02/04/28 13:12ID:???($sec, $min, $hour, $mday, $mon, $year) = localtime(time() - 86400);
$date_yes = sprintf("%02d/%02d/%02d", $year - 100, $mon + 1, $mday);
@log = split(/<>/,$log);
($t,$y) = (0,0);
foreach $x (@log){
@x = split(/,/,$x);
if($date_now eq substr($x[1],0,8)){ $t++; }
elsif($date_yes eq substr($x[1],0,8)){ $y++; }
else{ last; }
}
$print = "Total: <b>".$count."</b> Hit<br>[T]".$t."/[Y]".$y;
open(OUT,"> $File_Print"); print(OUT $print); close(OUT);
if($#log >= $max_log){ @log = @log[0..($max_log - 1)]; $log = join("<>",@log); }
#アクセスログファイル書き込み
open(OUT,"> $File_Access"); print(OUT $log); close(OUT);
}
0011nobodyさん
02/04/28 13:13ID:???print "Content-type: text/html\n\n";
print "\n";
print "<html>\n";
print "<body bgcolor=#eeeeee text=#000000>\n";
open(IN,$File_Access); $log = <IN>; close(IN);
@log = split(/<>/,$log);
$cnt = 0;
while($cnt < $prt_log){
@x = split(/,/,$log[$cnt]);
print "$x[0] $x[1]<br>\n";
print "[USER_AGENT] : $x[2]<br>\n";
print "[REMOTE_ADDR] : $x[3]<br>\n";
print "[REMOTE_HOST] : $x[4]<br>\n";
print "[REFERER] : <a href=$x[5] target=_blank>$x[5]</a><br>\n";
print "<hr>\n";
$cnt++;
}
print "</body></html>\n";
}
0012nobodyさん
02/04/28 13:41ID:???評価する価値もないね。 最低レベルのコードに目を覆いたくなるだけだ。
0013nobodyさん
02/04/28 14:47ID:???sub print{
print "Content-type: text/html\n\n";
print "\n";
print "<html>\n";
print "<body bgcolor=#eeeeee text=#000000>\n";
open(IN,$File_Access); $log = <IN>; close(IN);
@log = split(/<>/,$log);
$cnt = 0;
while($cnt < $prt_log){
@x = split(/,/,$log[$cnt]);
print "$x[0] $x[1]<br>\n";
print "[USER_AGENT] : $x[2]<br>\n";
print "[REMOTE_ADDR] : $x[3]<br>\n";
print "[REMOTE_HOST] : $x[4]<br>\n";
print "[REFERER] : <a href=$x[5] target=_blank>$x[5]</a><br>\n";
print "<hr>\n";
$cnt++;
}
print "</body></html>\n";
}
ダメな奴は何をやってもダメ。
0014nobodyさん
02/07/20 14:26ID:Q8IDA5BM━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■ 評価を依頼する手順 ■■
※以下の手順【1】【2】を踏んでいない依頼はすべて『無視』されます。
……………………………………………………………………………………………
【1】まず、スクリプトのソースの2行目に# 2ちゃんねるで評価中と加えてください。
……………………………………………………………………………………………
【2】次に、このスレッドに
●スクリプトのソースのURL ●スクリプトの簡単な説明 ●実際走らせてる場所のURL
●特に評価を希望するポイント
の4点を書き込んでください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■ 評価を依頼する時の注意 ■■
・評価対象HPの制作・管理者本人以外は依頼できません。
・まだ制作途中でコンテンツが不十分な段階での評価依頼は避けましょう。
・過去に評価を受けたスクリプトを修正して再評価を依頼する時は、その旨を書き添え
ましょう。なお、同一スクリプトの評価は3回程度までとします。
・評価依頼を終了したい時は、このスレッドでその意思を明示したうえで
コメントタグを削除してください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■ 評価する時の注意 ■■
・上記の手順を踏んでいない依頼や煽りレスはすべて『無視』してください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
0015nobodyさん
02/07/20 14:31ID:???0016nobodyさん
02/07/20 15:26ID:w1bL2jRzウザイから消えろ!
お前は何もレスするな!
このスレから消えろ!
この板からも消えろ!
2chからも消えろ!
ネットからも消えろ!
社会からも消えろ!
地球からも消えろ!
100万光年先まで消えろ!
0017nobodyさん
02/07/20 20:37ID:???■ このスレッドは過去ログ倉庫に格納されています