トップページphp
17コメント8KB

CGIスクリプト評価スレッド

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/04/28 01:24ID:WlAStrLr
おまえらの作ったスクリプトを晒してください。
当方PerlしかわからないのでPerlのみで。
ただし自作スクリプトに限る。
0002nobodyさん02/04/28 01:48ID:b3pLvKk0
>1
まずはあんたのスクリプト公開せーや
0003nobodyさん02/04/28 01:50ID:???
>>2
くそ、3時間くらい放置して悲惨な1のいるスレにしようと思ったのに(ワラ
0004nobodyさん02/04/28 01:53ID:???





























0005nobodyさん02/04/28 01:54ID:???































0006102/04/28 02:02ID:???
正直、1つも作ったことがない。
0007nobodyさん02/04/28 02:11ID:???
じゃあ今から書いて公開すれ。
0008nobodyさん02/04/28 13:11ID:???
#!/usr/local/bin/perl

$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:???
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";
}
0012nobodyさん02/04/28 13:41ID:???
>8-
評価する価値もないね。 最低レベルのコードに目を覆いたくなるだけだ。

0013nobodyさん02/04/28 14:47ID:???
>>11

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:???
2行目って何か書いていいの?
0016nobodyさん02/07/20 15:26ID:w1bL2jRz
>>12
ウザイから消えろ!
お前は何もレスするな!
このスレから消えろ!
この板からも消えろ!
2chからも消えろ!
ネットからも消えろ!
社会からも消えろ!
地球からも消えろ!
100万光年先まで消えろ!
0017nobodyさん02/07/20 20:37ID:???
( ´,_ゝ`)プッ
■ このスレッドは過去ログ倉庫に格納されています