七行プログラミング (452レス)
七行プログラミング http://medaka.5ch.net/test/read.cgi/php/1036141603/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
276: 7Hoo [sage] 04/03/14 15:31 ID:??? use CGI":all";charset$c="EUC-JP";($p=path_info||Home)=~s!^/+|/+$!!g;chdir"./$p" ||die;$F='.7hoo';s/\s/ /g for@p=map{param$_}U,T,D;open(F,">>$F"),eval{flock F,2 },$"="\t",print F"@p\n"if@p;sub A{a{href,url.pop},$_}sub e{escapeHTML@N[@_]}put header,start_html(-title=>"7Hoo",encoding,$c,lang,ja),p(join" / ",map{A$i.="/". $_}split"/",$p),ul(li[map{A"/$p/$_"}grep-d,<*>]),open(F)&&hr.dl(map{@N=split/\t /x;dt(a{href,$N[0]},b e 1),dd e 2}<F>),hr,startform
(0,url."/$p"),p(join br,(map {textfield/(.)/,$_,40}Url,Title),textarea(D,"",3,40,1),submit),endform,end_html ・XSS 脆弱性の fix http://medaka.5ch.net/test/read.cgi/php/1036141603/276
277: SevenLines の中の人 [sage] 04/03/14 15:52 ID:??? >>274-276 の三つ、問題無いようでしたらサイトに載せます。 7uploader と 7Hoo は仕様や出力を随分いぢってしまったので、 軌道修正もお願いします。(w >原作者殿 作業用のアップローダ用意しましたので、ファイルの受け渡しに ご利用下さい。 http://cm.xrea.cc/upload.cgi TODO: 7rwcntr > telnetd > Unit7 > Store7 > 7vote telnetd と accesslog.cgi は 202 さんと 266 さんに掲載許可を 頂け次第サイトに載せようと思ってますので、適用ライセンス等 ご連絡下され
ば幸いです。 http://medaka.5ch.net/test/read.cgi/php/1036141603/277
278: 266 [] 04/03/15 14:12 ID:jJ3gsLA0 #! /usr/bin/perl sub r{$r=$_[0]?"tab-separated-values\nContent-Disposition: attachment;filenam". "e=log.csv":"plain";print"Content-Type: text/$r\n\n"}if(($a,$f,$t,$k)=split/&/, $ENV{QUERY_STRING}){r $a;for($f...$t){/^\d{8}$/x&&open F,"$_.txt";($k?/\Q$k/:1) &&(print)while<F>}}else{r;s/^\d$/0$&/for($s,$n,$h,$d,$m,$y)=localtime;$y+=1900; $m++;$m=~s/^\d$/0$&/;open F,">>$y$m$d.txt";print F join("\t",$h,$n,$s,@ENV{ REQUEST_URI,REMOTE_ADDR,HTTP_USER_AGENT,HTTP_RE
FERER}),"\n"} >>266です。 >>268はアクセスログ記録モードで呼び出したときもCSVのダウンロードダイアログが出る という致命的なバグがありました。すみません。 バグ修正と、さらにパラメータで画面に表示/ダウンロードを選択できるようにしました。 また、REQUEST_URIも記録するようにしたので、サイト全体の解析にも使えるようになったと思います。 スクリプト名は他にあわせて、7accesslog.cgi と変更しようと思います。 こんなので掲載していただけるのであれば是非お願いします。 このスレのおかげで完成したと思っているので、
私としては権利等の主張をする つもりはありませんのでGPLあたりの他のスクリプト同様のライセンスにしてください。 ■使用法 ・記録時はSSI等で呼び出します。>>271さんみたいにJavaScriptでも呼び出せそうな気はします。 ・表示およびダウンロード時はパラメータをつけて普通に呼び出します。 パラメータなし アクセスログを記録。 日付.txt に 時,分,秒,REQUEST_URI,REMOTE_ADDR,HTTP_USER_AGENT,HTTP_REFERER を記録します。 パラメータあり アクセスログを表示/ダウンロード 第1パラメータ ・・・ 0:表示 1:ダウンロード
第2パラメータ ・・・ ログの取得開始日(yyyymmdd) 第3パラメータ ・・・ ログの取得終了日(yyyymmdd) 第4パラメータ ・・・ ログ取得時の絞込みキーワード(省略すると全件取得) (例) http://hoge.com/7accesslog.cgi?1&20040301&20040331&MSIE この例では、2004年3月1日〜2004年3月31日までの「MSIE」を含むログがダウンロードされます。 http://medaka.5ch.net/test/read.cgi/php/1036141603/278
279: 7accesslog [sage] 04/03/16 15:40 ID:??? ($a,$f,$t,$k)=@ARGV;print"Content-Type: text/",!$a?plain:"tab-separated-values Content-Disposition: attachment;filename=log.csv","\n\n";$k=~s/%([\da-f]{2})/ pack"H2",$1/egi;$f?do{/^\d{8}$/&&(open(F,"$_.txt"),print grep$k?/\Q$k/o:1,<F>) for$f..$t||$f}:do{s/^\d$/0$&/for($s,$n,$h,$d,$m,$y)=localtime;$y+=1900;$m++;$m =~s/^\d$/0$&/;open F,">>$y$m$d.txt";print F join("\t",$h,$n,$s, @ENV{REQUEST_URI,REMOTE_ADDR,HTTP_USER_AGENT,HTTP_REFERER}),"\n"} ・検索ワ
ードを URI-unescape ・第 3 引数を省略可能に ・パラメータをクエリ渡しから引数渡しへ (例) http://hoge.com/7accesslog.cgi?1+20040301+20040331+MSIE%205 http://hoge.com/7accesslog.cgi?1+20040301 http://medaka.5ch.net/test/read.cgi/php/1036141603/279
280: 266 [sage] 04/03/16 18:36 ID:??? >7accesslog for で $f..$t ってやると、月や年をまたいだ時、 無駄なファイルオープン(できないやつ)が多発するので そこをなんとかしたいです・・・。 ヘタレな私にはいい方法が思いつきませんが。 http://medaka.5ch.net/test/read.cgi/php/1036141603/280
281: nobodyさん [sage] 04/03/16 22:51 ID:??? >>280 ・効率的な生成アルゴリズムを Web や本から探す。 ・思いつくまま色々書いて試す。 ・文字数を食っている機能を捨てる。 ・緩めのルール (shebang 無し 7 行 & モジュール可) で挑戦する。 とにかく足掻いて形にするのが大事。 http://medaka.5ch.net/test/read.cgi/php/1036141603/281
282: nobodyさん [sage] 04/03/16 23:11 ID:??? >>277 202です。 ライセンスとかようわからないですが、telnetdとStore7はほかのと同じようにして置いていただければ結構です。 http://medaka.5ch.net/test/read.cgi/php/1036141603/282
283: 266 [sage] 04/03/17 10:18 ID:??? ($a,$f,$t,$k)=@ARGV;$k=~s/%([\da-f]{2})/pack"H2",$1/egi;$l=$f.($t?"-$t":"").($k ?"-$k":"");print"Content-Type: text/",$a?"tab-separated-values\nContent-Dispo". "sition: attachment;filename=log$l.csv":plain,"\n\n";$f?do{/^\d{4}(\d\d)(\d\d)$ /x&&$1*$2&&$1<13&&$2<32&&(open(F,"$_.txt"),print grep$k?/\Q$k/o:1,<F>)for$f..$t ||$f}:do{s/^\d$/0$&/for($s,$n,$h,$d,$m,$y)=localtime;$y+=1900;$m++;$m=~s/^\d$/0 $&/x;open F,">>$y$m$d.txt";print F join("\t",$y,$m,$d,$
h,$n,$s,@ENV{REQUEST_URI ,REMOTE_ADDR,HTTP_USER_AGENT,HTTP_REFERER}),"\n"} ■記録時 ・ログファイルに日付も記録するよう変更。 (日付範囲を指定してログ表示した際に日付が無いとわけわからないため) ■閲覧時 ・ダウンロード時のファイル名に抽出条件を盛り込むよう変更。 ・1〜12月の1〜31日の間だけファイルオープンを試みるよう変更。 いろいろ増やしたらshebang無し七行になっちゃいました。 http://medaka.5ch.net/test/read.cgi/php/1036141603/283
284: nobodyさん [sage] 04/03/17 11:13 ID:??? トイレに行かせただけで動作未確認。 ($k=$ARGV[3])=~s/%([\da-f]{2})/pack"H2",$1/egi;/\D/&&die for($a,$f,$t)=@ARGV; print"Content-Type: text/",$a?"tab-separated-values\nContent-Disposition: atta" ."achment;filename=log$f".($t&&"-$t").($k&&"-$k").'.csv':plain,"\n\n";$f?do{/^. ...(..)(..)$/x&&$1*$2&&$1<13&&$2<32&&(open(F,"$_.txt"),print grep$k?/\Q$k/o:1, <F>)for$f..$t||$f}:do{($d,$m,$y)=(localtime)[3,4,5];open F,sprintf">>%d%02d%02" ."d.txt",$y+190
0,$m+1,$d;print F join("\t",''.localtime,@ENV{REQUEST_URI, REMOTE_ADDR,HTTP_USER_AGENT,HTTP_REFERER}),"\n"} ログの日付を scalar localtime に変更。 http://medaka.5ch.net/test/read.cgi/php/1036141603/284
285: nobodyさん [sage] 04/03/17 14:13 ID:??? ($a,$f,$t,$k)=@ARGV;$k=~s/%([\da-f]{2})/pack"H2",$1/egi;print"Content-Type: ". "text/",$a?"tab-separated-values\nContent-Disposition: attachment;filename=l". "og$f".($t&&"-$t").($k&&"-$k").'.csv':plain,"\n\n";$f?do{/^....(..)(..)$/&&$1* $2&&$1<13&&$2<32&&(open(F,"$_.txt"),print grep$k?/\Q$k/o:1,<F>)for$f..$t||$f}: do{($d,$m,$y)=(localtime)[3,4,5];open F,sprintf">>%d%02d%02d.txt",$y+1900,$m+1 ,$d;print F join("\t",''.localtime,@ENV{REQUEST_URI,R
EMOTE_ADDR, HTTP_USER_AGENT,HTTP_REFERER}),"\n"} >>284 1行目ってなんで変えたの?>>283の1行目で動くようなので戻すことで若干縮め。 あとattachmentのつづり直した。もう少しでshebang含7行。 http://medaka.5ch.net/test/read.cgi/php/1036141603/285
286: nobodyさん [sage] 04/03/17 15:03 ID:??? >>285 コードそのまま。$a, $f, $t に数字以外の文字が 含まれない事を保障する為。 まぁここはチェック飛ばしても穴にはならんかな。 http://medaka.5ch.net/test/read.cgi/php/1036141603/286
287: nobodyさん [sage] 04/03/17 17:14 ID:??? >>285 78文字+改行になってるよw さらに強引に短くしてみた。 変更点 pack"H2"→pack H2 DLファイル名→$f-$t-$k.log $1*$2→$1のみ判定 [3,4,5]→[3..5] #! perl ($a,$f,$t,$k)=@ARGV;$k=~s/%([\da-f]{2})/pack H2,$1/egi;print"Content-Type: te". "xt/",$a?"tab-separated-values\nContent-Disposition: attachment;filename=$f".($ t&&"-$t").($k&&"-$k").'.log':plain,"\n\n";$f?do{/^....(..)(..)$/&&$1&&$1<13&&$2 <32&&(open(F,"$_.txt"),print grep$k?/\Q$k/o:1,<F>)f
or$f..$t||$f}:do{($d,$m,$y)= (localtime)[3..5];open F,sprintf">>%d%02d%02d.txt",$y+1900,$m+1,$d;print F join ("\t",''.localtime,@ENV{REQUEST_URI,REMOTE_ADDR,HTTP_USER_AGENT,HTTP_REFERER}), "\n"} あと5バイト http://medaka.5ch.net/test/read.cgi/php/1036141603/287
288: nobodyさん [sage] 04/03/17 17:15 ID:??? 汎用 TSV ヴューア #!/usr/local/bin/perl use CGI":all";charset$C='EUC-JP';*P=*param;($f=P(f))=~/[^\w*\-.?\[\\\]]/&¨$ w=P(w)||"\t";chomp(@l=map{open(_)?grep(/\Q$w/,<_>):()}grep/$f/o&&-f,<*>)if$f;%l =(f,"target file regex",w,"search word",o,"output file name");put(($o=P(o))?( "Content-Type: text/tab-separated-values\nContent-Disposition: attachment;file" ."name=$o\n\n",@l):(header,start_html(-title=>'7tsview',encoding,$C,lang,ja), table({border,
1},Tr[map{td[split/\t/]}@l]),startform(0,url),p(map{$l{$_}, textfield($_,'',40).br}f,w,o),endform,end_html)) http://medaka.5ch.net/test/read.cgi/php/1036141603/288
289: nobodyさん [sage] 04/03/17 17:27 ID:??? use CGI":all";charset$C='EUC-JP';*P=*param;($f=P(f))=~/[^\w*\-.?\[\\\]]/&¨$ w=P(w)||"\t";chomp(@l=map{open(_)?grep(/\Q$w/,<_>):()}grep/$f/o&&-f,<*>)if$f;%l =(f,"target file regex",w,"search word",o,"output file name");put(($o=P(o))?( "Content-Type: text/tab-separated-values\nContent-Disposition: attachment;file" ."name=$o\n\n",@l):(header,start_html(-title=>'7tsview',encoding,$C,lang,ja), table({border,1},Tr[map{td[split/\t/]}@l]),startform(0,
url),p(map{$l{$_}, textfield($_,'',40).br}f,w,o),submit(0,go),endform,end_html)) submitを追加 http://medaka.5ch.net/test/read.cgi/php/1036141603/289
290: nobodyさん [sage] 04/03/17 17:31 ID:??? 動作未確認。末尾に空フィールドができるけどゴメンして。 ($a,$f,$t,$k)=@ARGV;$k=~s/%([\da-f]{2})/pack H2,$1/egi;print"Content-Type: te". "xt/",$a?"tab-separated-values\nContent-Disposition: attachment;filename=$f".($ t&&"-$t").($k&&"-$k").'.log':plain,"\n\n";sub l{localtime}$f?do{/^....(..)(..)$ /x&$1<13&$2<32&&(open(F,"$_.txt"),print grep$k?/\Q$k/o:1,<F>)for$f..$t||$f}:do{ ($d,$m,$y)=(l)[3..5];open F,sprintf">>%d%02d%02d.txt",$y+1900,$m+1,$d;pr
int F join"\t",''.l,@ENV{REQUEST_URI,REMOTE_ADDR,HTTP_USER_AGENT,HTTP_REFERER},"\n"} http://medaka.5ch.net/test/read.cgi/php/1036141603/290
291: 266 [] 04/03/18 14:52 ID:vM8w8oY1 #! /usr/bin/perl ($a,$f,$t,$k)=@ARGV;$k=~s/%([\da-f]{2})/pack H2,$1/egi;print"Content-Type: te". "xt/",$a?"tab-separated-values\nContent-Disposition: attachment;filename=$f".($ t&&"-$t").($k&&"-$k").'.log':plain,"\n\n";sub l{localtime}$f?do{/^....(..)(..)$ /x&$1*$2&$1<13&$2<32&&(open(F,"$_.txt"),print grep$k?/\Q$k/o:1,<F>)for$f..$t||$ f}:do{open F,sprintf">>%d%02d%02d.txt",(l)[5]+1900,(l)[4]+1,(l)[3];print F join ("\t",''.l,@ENV{REQUEST_URI,REMOTE_AD
DR,HTTP_USER_AGENT,HTTP_REFERER}),"\n"} ・書き込み時のファイル名構築の際に関数lを使用するよう変更 ・0月も0日も除外するようあらためて変更 ・>>290さんの末尾の空フィールドができないよう変更 皆さんのおかげで再びshebang入り七行達成しました。 しかし、>>288-289のツールがあるなら、閲覧モードは不要だったりして・・・。 http://medaka.5ch.net/test/read.cgi/php/1036141603/291
292: SevenLines の中の人 [sage] 04/03/23 12:22 ID:??? 7wiki (>>274) 、7Hoo (>>276) 、7accesslog (>>291) を載せました。 README の変更等ありましたらココかアップローダにお願いします。 http://medaka.5ch.net/test/read.cgi/php/1036141603/292
293: nobodyさん [] 04/03/23 16:33 ID:C7ISjwar #! /usr/bin/perl use CGI":all";charset$c='EUC-JP';opendir(H,"./");$s='7editor';while($i=readdir H){$l.=li a {href,"$s.cgi?$i"},$i}if(request_method eq'POST'){$p=param(f);open( H,">$p");print H param(t);print"Location: $s.cgi?$p\n\n"}else{$q=$ARGV[0];if($q ){open H,$q;$f.=$_ while(<H>)}put header,start_html(-title=>$s,encoding,$c,lang ,ja),h1($s),ul($l),startform(post,"$s.cgi"),p(textfield f,$q),p(textarea t,$f,9 ,82),p(submit regist),endform,end_htm
l} ●7editor.cgi サーバ上のファイルを直接編集できます。ファイル名欄を変えれば新規作成も可能です。 textareaのサイズは、一応七行プログラミングを組みやすいかと思われる82x9にしてみました。 ToDo: ・セキュリティ対策 ・ディレクトリ移動 ・ファイル削除くらいはできた方がいいかも とりあえずたたき台ってことで。 http://medaka.5ch.net/test/read.cgi/php/1036141603/293
294: nobodyさん [sage] 04/03/23 17:07 ID:??? 縮め&書き込み確認ダイアログ #! /usr/bin/perl use CGI":all";charset$c='EUC-JP';opendir H,"./";$s='7editor';while($i=readdir H ){$l.=li a{href,"$s.cgi?$i"},$i}if(request_method eq'POST'){$p=param(f);open H, ">$p";print H param(t);put"Location: $s.cgi?$p\n\n"}else{if(open H,$q=$ARGV[0]) {$f.=$_ while(<H>)}put header,start_html(-title=>$s,encoding,$c,lang,ja),h1($s) ,ul($l),startform(-onSubmit=>"return confirm('OK?')",post,"$s.cgi"),p(textfield f,$q)
,p(textarea t,$f,9,82),p(submit regist),endform,end_html} http://medaka.5ch.net/test/read.cgi/php/1036141603/294
295: nobodyさん [sage] 04/03/23 18:36 ID:??? #! /usr/bin/perl use CGI":all";charset$c='EUC-JP';*b=*param;opendir H,"./";while($i=readdir H){$ l.=li a{href,($s='7editor').".cgi?$i"},$i}if(request_method=~/POST/){open H,">" .($n=b F);$_=b T;s/[\r\n|\r[^\n]]/\n/g;print H;put redirect"$s.cgi?$n"}else{if( open H,$q=$ARGV[0]){$f.=$_ while<H>}put header,start_html(-title=>$s,encoding,$ c,lang,ja),h1($s),ul($l),startform(-onSubmit=>"return confirm('OK?')",,"$s.cgi" ),p(textfield F,$q),p(textarea T,$
f,9,82),p(submit regist),endform,end_html} 環境によって改行コードが変わってしまうバグを修正。結構ギリギリ。 http://medaka.5ch.net/test/read.cgi/php/1036141603/295
296: nobodyさん [] 04/03/24 11:46 ID:/Yo7kiNa #! perl use CGI":all";charset$c='EUC-JP';opendir H,".".($d=path_info);while($_=readdir H){if(!/^\.+$/){$l.=li a{href,script_name."$d".(-d".$d/$_"?"/":"?").$_},$_}}if( request_method=~/P/){open H,">.$d/".($n=param F);$_=param T;s/\r\n|\r[^\n]/\n/g ;print H}if(open H,".$d/".($q=$ARGV[0])){$f.=$_ while<H>}put header,start_html( -title=>"7editor",encoding,$c,lang,ja),h1($d||"/"),ul($l),startform(-onSubmit=> "return confirm('OK?')"),p(textfield(F,$q),
br,textarea(T,$f,9,82),br,submit),endform,end_html ディレクトリを移動できるように 「.」「..」は非表示 h1要素は現在位置を表示 スクリプト名は自由(7editorじゃなくても可)に でも14文字ほどハミ出た。 http://medaka.5ch.net/test/read.cgi/php/1036141603/296
297: nobodyさん [sage] 04/03/24 14:15 ID:??? use CGI":all";charset$c='EUC-JP';($d=path_info)=~s|/*$|/|;if(request_method=~PO ){open H,">.$d".($n=param F);$_=param T;s/\x0D\x0A/\n/g;tr/\r/\n/;print H}$/=() ,$f=<H>if open H,".$d".($q=pop);opendir H,".$d";$l.=li a{href,url.$d.(-d".$d$_" ?$_:"?$_")},$_ for grep!/^\.+$/,readdir H;put header,start_html(-encoding=>$c, lang,ja,Title,"7editor"),h1($d),ul($l),startform(-onSubmit=>"return confirm( 'OK?')"),p(textfield(F,$q),br,textarea(T,$f,9,82),br,su
bmit),endform,end_html http://medaka.5ch.net/test/read.cgi/php/1036141603/297
298: nobodyさん [sage] 04/03/24 15:33 ID:??? ・.で画面リロード、..で親DIRへ移動 ・ディレクトリはお尻に「/」 use CGI":all";charset$c='EUC-JP';($d=path_info)=~s|/*$|/|;if(request_method=~PO ){open H,">.$d".($n=param F);$_=param T;s/\x0D\x0A/\n/g;tr/\r/\n/;print H}$/=() ,$f=<H>if open H,".$d".($q=pop);opendir H,".$d";$l.=li a{href,url.$d.(($h=-d".$ d$_")?$_:"?$_")},($_.($h&&"/"))for readdir H;put header,start_html(-encoding=>$ c,lang,ja,Title,"7editor"),h1($d),ul($l),startform(-onSubmit=>"retu
rn confirm( 'OK?')"),p(textfield(F,$q),br,textarea(T,$f,9,82),br,submit),endform,end_html http://medaka.5ch.net/test/read.cgi/php/1036141603/298
299: nobodyさん [sage] 04/03/24 20:28 ID:??? #!/usr/bin/perl use IO::Socket;$S=new IO::Socket::INET(Listen,1,LocalPort,1029,Reuse,1);sub p{ print@_}sub g($){($_=getc$C)eq pop}$n="\x0D\x0A";sub o{$c=pop;g"\x01"?($e=$c&2) :/\x22/?($c&1or$e=0):($c=1);p pack(C2,255,250+(4,2,2,4,3,2,1,4)[$c&1?$c:$c+4]), $_}{binmode($C=$S->accept);select$C;$e=1;$b='';p$p='$ ';{g"\xFF"?g"\xF7"?chop$b :/\xF8/?($b=''):/\xFB/?o 0:/\xFC/?o 1:/\xFD/?o 2:/\xFE/?o 3:0:/\x00/?do{$b=~s/[ $n]+\z//x;"exit"eq$b&&last;s/\s+\z/$n/for@o=`$b`
;p$n,@o,$p;$b=''}:(/\x08/?chop$ b:($b.=$_),/[$n]/||$e&&p$_);redo}close$C;redo} ttp://www5e.biglobe.ne.jp/~aji/3min/53.html を読みながら色々 実装してみるも、>>207 に負けてる telnetd 。;) 動作確認: TeraTermPro → Win98SE (command.com + KI-Shell) TeraTermPro → FreeBSD 4-STABLE (tcsh) telnet(1) (line mode) → Win98SE (command.com + KI-Shell) telnet(1) (line mode) → FreeBSD 4-STABLE (tcsh) TODO: cd http://medaka.5ch.net/test/read.cgi/php/1036141603/299
300: 7telnetd [sage] 04/03/25 10:13 ID:??? cd 実装。 #!/usr/bin/perl use IO::Socket;$S=new IO::Socket::INET(Listen,1,LocalPort,1029,Reuse,1);sub p{ print$C @_}sub g($){($_=getc$C)eq pop}$n="\x0D\x0A";{binmode($C=$S->accept);$e= 1;$b='';p$p='$ ';{g"\xFF"?g"\xF7"?chop$b:/\xF8/?($b=''):/[\xFB-\xFE]/?do{$c=ord ()-251;g"\x01"?($e=$c&2):/\x22/?($c&1or$e=0):($c=1);p pack(C2,255,250+(4,2,2,4, 3,2,1,4)[$c&1?$c:$c+4]),$_}:0:/\x00/?(($_,$b)=$b,s/[$n]+\z//,/^exit$/&&last,p$n ,(/^cd\s+/?chdir$':map{s/\s+\z/$n/;$_}`
$_`),$p):(/\x08/?chop$b:($b.=$_),/[$n]/ ||$e&&p$_);redo}close$C;redo} http://medaka.5ch.net/test/read.cgi/php/1036141603/300
301: クダランけど [sage] 04/03/25 11:06 ID:??? ■ 7jump.cgi(ime.nuクローン) ttp://hoge.com/7jump.cgi/http://www.2ch.net/ スキーマ指定可能 ttp://hoge.com/7jump.cgi/www.2ch.net/ 省略時はhttp:// #! perl use CGI":all";charset$c='EUC-JP';$_=path_info;s|^/||;s/\"/"/g;s/\'/?/g ;s/</</g;s/>/>/g;s/&(?![\#0-9a-zA-Z]+;?)/&/g;$_="http://$_"if!/:/;($m ,$a)=<DATA>;put header,start_html(-title=>"7jump",encoding,$c,lang,ja),p(strong (a{href,$_},$_).br.$m),hr,address($a),end_html; __DATA__
別のサイトにジャンプしようとしています。宜しければ上記のリンクをクリックしてください Powered by WebProg http://medaka.5ch.net/test/read.cgi/php/1036141603/301
302: 実体参照忘れてたスマソ [sage] 04/03/25 11:08 ID:??? #! perl use CGI":all";charset$c='EUC-JP';$_=path_info;s|^/||;s/\"/"/g;s/\'/'/g ;s/</</g;s/>/>/g;s/&(?![\#0-9a-zA-Z]+;?)/&/g;$_="http://$_"if!/:/;($m ,$a)=<DATA>;put header,start_html(-title=>"7jump",encoding,$c,lang,ja),p(strong (a{href,$_},$_).br.$m),hr,address($a),end_html; __DATA__ 別のサイトにジャンプしようとしています。宜しければ上記のリンクをクリックしてください Powered by WebProg http:/
/medaka.5ch.net/test/read.cgi/php/1036141603/302
303: nobodyさん [sage] 04/03/25 11:55 ID:??? use CGI":all";charset$c='EUC-JP';$_=path_info;/:/?s|^/||:($_="http:/$_");put header,start_html(-Title,"7jump",encoding,$c,lang,ja),p(strong(a{href,$_}, escapeHTML$_).br.<DATA>),hr,address(<DATA>),end_html http://medaka.5ch.net/test/read.cgi/php/1036141603/303
304: nobodyさん [sage] 04/03/29 10:25 ID:??? 巻き戻り分。 304 :7uploader :04/03/25 21:16 ID:??? use CGI":all";$CGI::POST_MAX=1<<20;$/=\4096;chdir D;sub v{open(F,pop)?binmode F :die}if(($f=upload f)=~/\.\w+$/){v">".time.$&;print F while<$f>;close F}++$i<51 ?push@f,$_:unlink for sort{$b<=>$a}<*>;($_=param d)?(v($_),put header(-type, 'application/octet-stream',Content_length,-s,attachment,$_),<F>):put(header, start_html,start_multipart_form,filefield(
f),submit,endform,table({border,1},Tr [map{td[a({href,"?d=$_"},$_),''.localtime+(stat)[9],(-s>>10).KB]}@f]),end_html) ・ファイルサイズを KB で表示。 http://medaka.5ch.net/test/read.cgi/php/1036141603/304
305: Unit7.pm [sage] 04/03/29 10:31 ID:??? #!perl if(!caller){my$p=pop;eval"use $p;1"?new$p->run:die$@}package Unit7;sub p{print" @_\n"}sub new{bless{},shift}sub run{$N=$O=0;for(grep/^test/,keys%{ref($s=shift) ."::"}){$T=$n=$o=0;$N++;set_up$s;$s->$_();tear_down$s;$n-$o||$O++;$T||p"$N) $S" ;print"$o/$n ok\n"}p$N-$O?("Run: $N, Failures:",$N-$O):"OK ($N tests)"}*set_up= *tear_down=sub{};sub assert{($s,$f,$m)=@_;($S)=(caller 1)[3]=~/\w+$/g;$n++;$o++ ,return if$f;$T++||p"$N) $S";print"\t$m\n"}$VERSION=1.0
0 ・出力フォーマットの変更 ・簡易 TestRunner.pl を内包 (> perl ./Unit7.pm My::TestCase::Class) http://medaka.5ch.net/test/read.cgi/php/1036141603/305
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 147 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s