X



自作CGIを評価するスレ
0001Premature end of script headers : /this/thread
垢版 |
03/04/05 12:47ID:tIET0nhf
自分の作ったCGIをみんなに評価してもらうスレだよ。言語は問わないよ。
よほどプログラムが短くないかぎりはアプロダにでもアップしてね。
0521nobodyさん
垢版 |
04/01/18 02:22ID:???
ところで、ちゃんと評価してるのって最初のほうだけだね。
0522nobodyさん
垢版 |
04/01/18 03:41ID:???
>>521
・ここは見た目じゃなくコードを評価するスレだ。
・use strict; しろ。
・perlstyle 読め。
・デカいの持ってきても面倒だから読まんぞ。

…のどれかに該当していたら、まともなレスは返ってこない。
0523nobodyさん
垢版 |
04/01/18 21:22ID:???
コードの見た目を評価するスレの間違い。
0524>>516
垢版 |
04/01/25 15:17ID:yPaa9elS
DirectoryIndexの設定をしているtoktokも問題かと思うが。

Forbiddenにしたみたいだけど、
せめてファイル名変えなよ。
0525nobodyさん
垢版 |
04/03/06 14:54ID:???
誰も居ない……ケチつけるなら今のうち。

if-elsifの書き方、
if{
..
}elsif{
..
}
より
if{
..
}
elsif{
..
}
の方が俺にとっては読み易いんだコンチクショー。
0526nobodyさん
垢版 |
04/03/19 18:15ID:???
>>522
perlstyleなんて知らなかった…ありがとう、勉強になったよ。
0528nobodyさん
垢版 |
04/05/09 20:52ID:???
例えば既成の掲示板のCGIとかから

require 'axlog.pl';
AxLog::getlog('ログファイル名','ログ最大記録数');

の用に呼び出して使うアクセス解析。

何となく作ったんですが評価お願いします。

アクセス解析 http://torihamlog.s55.xrea.com/search/axlog.pl.txt
ログビューワー http://torihamlog.s55.xrea.com/search/axlogv.cgi.txt

ここにログビューワを設置して、それにアクセス解析しこんでます。
リモホとかIPとか晒す事になるので困る人は見ないで下さい。
パスワードは 1234 です。
http://torihamlog.s55.xrea.com/search/axlogv.cgi

念のため…コレ呼び出すとログを削除します。
http://torihamlog.s55.xrea.com/search/dellog.cgi
0530nobodyさん
垢版 |
04/05/09 21:49ID:???
>>529
とりあえず axlog.pl をザッと見た感じ。

> 39: my $logfile = ($_[0]) ? $_[0] : "log.dat";
my $logfile = $_[0] || "log.dat";

my $logfile = defined $_[0] && length $_[0] ? $_[0] : "log.dat";

> 48: $ENV{'TZ'} = "JST-9";
local するか、呼び出し元と条件を揃える (設定しない) 。

> 58 〜 62
my($path) = $ENV{'SCRIPT_NAME'} =~ m|^(.*/)|;

ログに ASCII 以外の文字を吐くのはあまりお勧めしない。

あと axlog.pl.txt や axlog.cgi.txt でも「.pl」や「.cgi」は含まれて
いるので CGI プログラムとして動く。Apache のマニュアル参照。
0531nobodyさん
垢版 |
04/05/09 22:26ID:???
>>529
axlogv.cgi 。

> 6: use vars qw/$pw $logfile $gzip_send $gzip/;
不要。

> 47 〜 53:
my $gzip = $^O =~ /Win/
  ? "gzip.exe -1 -c"
  : "/bin/gzip -1 -c"
;

> 69: if ($mode eq "css") { Style_Sheets(); }
わざわざ CGI で吐かせる理由は?

> 74: else { print "Status: 403 Forbidden\n\n"; exit; }
エラーメッセージを吐いた方が親切。

> 256: Content-type: text/plain; charset=Shift_JIS
text/css
0532528
垢版 |
04/05/10 19:23ID:???
>>530-531
評価ありがとうございます。
色々参考になります。

cssについてはファイルを一つにまとめたかったからです。
やっぱあんまり良くないですか?

>> 74: else { print "Status: 403 Forbidden\n\n"; exit; }
>エラーメッセージを吐いた方が親切。

if ($mode eq "css") { Style_Sheets(); }
elsif ($pass ne $pw) { Error('パスワードが違います。') }
elsif (($pass eq $pw) && ($mode eq "view") && ($ENV{'REQUEST_METHOD'} eq "POST")) { View(); }
else { Pass_form(); }

こうゆう風にしようと思っています。
0533nobodyさん
垢版 |
04/05/11 00:31ID:???
>>532
・CSS を変更する為にスクリプトを編集する危険を冒す必要がある。
・外部に CSS を持つのに対し、常に二倍の回数実行される。
・CSS を使い回す時に悩む事になる。

これらのデメリットを考慮の上で、なお一つにまとめるメリットの方が
勝ると判断したならいいんじゃないか?
0534528
垢版 |
04/05/14 20:45ID:1r/FkAS3
>>532
自己レス
すげー馬鹿なこと書いていた

if ($mode eq "css") { Style_Sheets(); }
elsif (($pass) && ($pass ne $pw)) { Error('パスワードが違います。') }
elsif (($pass eq $pw) && ($mode eq "view") && ($ENV{'REQUEST_METHOD'} eq "POST")) { View(); }
else { Pass_form(); }

たぶんコレでいいかな…

作った動機はなんとなくなんだけど、実用性とかどうでせう?
一応CGIの設置とかできて、ほんのちょっとだけいじれる程度人向けのつもりです。
0537nobodyさん
垢版 |
04/07/04 05:07ID:???
>>535
とりあえず画像のファイル名を変えた方が良いよw
20点頂きました
0538nobodyさん
垢版 |
04/07/04 05:12ID:???
>>535
もじゅーるは使えない鯖なんでつか?
使えるんなら使ったほうがいいでつよ。
Image::Magick、CGI、Jcode等々
何に使うのかは自分で調べてね。

EUCで書いたり表示したりしたほうがいいと思うけど、Shift_JISでやりたいのなら反対しないさ。

所々myを付けているが、どうせなら全部に付けちゃいな。
strictしろってこった。
ついでにHTML的にも4.01strict すれば?
0540nobodyさん
垢版 |
04/10/08 20:39:40ID:HUGW4EIR
タイトル::時刻::内容\n

というようなデータが数行あるような場合
それらを読んできて切り分けるって処理を
してます。
これの評価お願いします。

sub split_data{

my @ref,@tmp,%hush;
@tmp = @_;

for (@tmp){
chomp;
($hush{title},$hush{time},$hush{contents}) = split /::/;
push (@ref,{%hush});
}

return(@ref);

}

@tmp = ("a::b::c\n","d::e::f\n","g::h::i\n");

@ref = split_data(@tmp)

for(0..$#ref){
print "title:".$ref[$_]->{title};
print " time:".$ref[$_]->{time};
print " contents:".$ref[$_]->{contents}."\n";
}
0541nobodyさん
垢版 |
04/10/09 00:21:55ID:???
>>540
myで複数宣言するときは()がいる
hushじゃなくてたぶんhashね. 連想配列っていみなら

ハッシュのスライスを使うとエレガントかも
@hash{qw/title time contents/} = split /::/;

foreachつかえよ
for(...$#ref)
0542540
垢版 |
04/10/09 02:08:52ID:???
541>

>ハッシュのスライスを使うとエレガントかも
>@hash{qw/title time contents/} = split /::/;

ありがと、参考になりました。

my は複数でも()いりませんよ。バージョンによるだろうけど
最後に、今更foreach使ってる人いるんですか?w
0543nobodyさん
垢版 |
04/10/09 02:43:14ID:???
>>542
#--- test.p ---
use strict;
my $foo, $bar, $baz;
__END__

> /usr/local/bin/perl -v
This is perl, v5.8.5 built for i386-freebsd-64int
<snip>
> /usr/local/bin/perl -wc test.p
Parentheses missing around "my" list at test.p line 2.
Global symbol "$bar" requires explicit package name at test.p line 2.
Global symbol "$baz" requires explicit package name at test.p line 2.
test.p had compilation errors.

> /usr/bin/perl -v
This is perl, version 5.005_03 built for i386-freebsd
<snip>
> /usr/bin/perl -wc test.p
Parens missing around "my" list at test.p line 2.
Global symbol "$bar" requires explicit package name at test.p line 2.
Global symbol "$baz" requires explicit package name at test.p line 2.
test.p had compilation errors.
0544nobodyさん
垢版 |
04/10/09 03:20:52ID:???
>>541 >foreachつかえよ
>>542 >今更foreach使ってる人いるんですか?w

for と foreach は単なるシノニムなので、その表現は正しくないな。
foreach (LIST) BLOCK を for (LIST) BLOCK と略せるのと同様に、
for (EXPR; EXPR; EXPR) BLOCK を foreach (EXPR; EXPR; EXPR)
BLOCK と書いてもエラーにならない。

foreach ループを意味するところで foreach と「書け」という >>541
アドヴァイスは論拠の確かな正しいものだ。しかし Perl では C 風の
for ループを使う機会が foreach ループに比べて圧倒的に少ない上、
人間の目からも for ループと foreach ループの区別は容易なので、
砕けた流暢な Perl を目指すならこだわる必要のない部分だと思うな。
0545nobodyさん
垢版 |
04/10/09 05:06:54ID:???
>>540
%hush(多分hash?)の宣言の位置。
GCのコストを考慮した場合に、変数の再利用をするはあるけど...、
ループないで初期化してないとフィールドの数が少ない時に困るよ。

split/::/の代わりに正規表現を使ってデータを切り出すと、
データのチェックとsplitを同時にできて便利。

chompはデータ格納前に済ませておいた方が良いんじゃないかな。chomp(@tmp)
もしくは、大抵はファイルから読み込むだろうからその時に。

0546540
垢版 |
04/10/09 05:35:12ID:???
>>544
どうもありがとう。foreachは普通に使えるんだろうけど、
大抵forで済ませてしまうのです。言い方悪かったです、スイマセン。

>>545
ありがとうございます。

>ループないで初期化してないとフィールドの数が少ない時に困るよ。
というのは、forのループ内で undef(%hush); (ほんとはhashでしたw)
でいいですか?
あと、フィールドの数が少ない時というのはどういうことでしょうか?

>split/::/の代わりに正規表現を使ってデータを切り出すと
どう書いたらいいのか思いつきません。宜しかったらご教授下さい。

>chompはデータ格納前に済ませておいた方が良いんじゃないかな。
そうですね。

open(FH,"file_name");
@tmp = <FH>;
chomp(@tmp);
close(FH);

0547541
垢版 |
04/10/09 11:14:32ID:???
言いたかったのはforeach (@ref)にしろよってことね
別にfor (@ref)でもいいかもしれんが
あと>>543読んだか? myは複数宣言するときは()いる

>>546
>ループ内で初期化
for(hoge){
my %hash;
statement;
}
こういう事だと思う
0548540
垢版 |
04/10/09 12:28:12ID:???
my () つけなくてもエラー出てないです。 という事は
省略も可って事ではないでしょうか?
0549nobodyさん
垢版 |
04/10/09 14:26:51ID:???
>>548
エラーにならないのは strict 'vars' 宣言が無いからだ。
my $foo, $bar, $baz; という文自体は文法的には間違いじゃないが、
my は , より優先順位が高いので、my($foo), $bar, $baz; と書くのと
等価になる。

#--- test.p ---
my $foo, $bar, $baz;
print defined $main::{$_} ? "'$_' is global.\n" : "'$_' is rexical.\n"
  for qw(foo bar baz);
__END__

> perl -w test.p
Parentheses missing around "my" list at test.p line 1.
Useless use of a variable in void context at test.p line 1.
Useless use of a variable in void context at test.p line 1.
Name "main::bar" used only once: possible typo at test.p line 1.
Name "main::baz" used only once: possible typo at test.p line 1.
'foo' is rexical.
'bar' is global.
'baz' is global.
0550nobodyさん
垢版 |
04/10/09 17:41:00ID:???
>>546
> あと、フィールドの数が少ない時というのはどういうことでしょうか?
これは、今回のケースでは問題なかったです。

でも、変数を再利用する時は気を付けないと、前の値が残っていたり、
意図しない場所の値を書き換えてしまったりするので注意。
例えば、pushの所を \%hash とりファレンスを使うように変更した場合。

my (@ref, %hash);
foreach (@_) {
# @refの中の前の値を上書きすることになる
# {%hash}とした場合は、@refにはいってる値はコピーなので影響ない
@hash[qw/title time contents/] = split/::/;
push(@ref, \%hash);
}

my (@ref);
foreach (@_) {
my %hash;
@hash[qw/title time contents/] = split/::/;
# {%hash} でも期待通りに動作するが、余分なコピーを生成
push(@ref, \%hash);
}

速度とかを重視するなら >>540 が効率良さそうだけど、(多分)
バグとかみつかった場合に変数のスコープが広いと特定するのが困難になる。

>>542
> my は複数でも()いりませんよ。バージョンによるだろうけど
他の方に指摘のある通り。
最低限 use strict; use warnings;(もしくは -w) を宣言してないとPerlは教えてくれない。
0551nobodyさん
垢版 |
04/10/09 18:04:19ID:???
ここってものすごいでかいスクリプトでも細かい所まで見てくれるの?
0552nobodyさん
垢版 |
04/10/09 18:09:49ID:???
>>550 何かおかしな日本語だった。訂正
s/他の方に/他の方からも/

あと、正規表現を使った方法を書き忘れてたのでついでに、、
例えば time が整数の場合の例

if (/^(.+)::(\d+)::(.+)$/) {
@hash{qw/title time contents/} = ($1, $2, $3)
}

0553nobodyさん
垢版 |
04/10/09 19:39:15ID:???
>>551
読むに耐えうる書き方&内容ならな。
KENTレベルなら却下
0554nobodyさん
垢版 |
04/10/09 22:16:04ID:???
>>553
オブジェクト指向とか頑張ってやってみたけど中途半端になったようなのでも大丈夫ですか?
0555nobodyさん
垢版 |
04/10/09 22:37:35ID:???
何書いたって叩かれるんだから、結城出していいと思う
0556540
垢版 |
04/10/09 23:53:30ID:???
ほんとにこんなに色々な方が、教えてくださるとは思ってませんでした。
どうもありがとうございます。
特にエレガントな方法を教えてくださった542氏
ハイレベルな(少なくとも今の私には)指摘をしてくれた
545=550=552氏には感謝します。
その他あのようなケチなコードに意見を下さった方々ありがとう。

またお世話になるかもしれません。m(_ _)m
0557nobodyさん
垢版 |
04/10/10 20:44:07ID:???
> my は複数でも()いりませんよ。バージョンによるだろうけど
> 最後に、今更foreach使ってる人いるんですか?w
こんなこと言うやつはもう来なくていい
0558540
垢版 |
04/10/11 01:40:27ID:21NinhME
ごめんね
0563nobodyさん
垢版 |
05/01/23 00:46:42ID:vqv+/2ig
誘導されてきました。
評価というか不具合の問題です


初めてperl書いてみました。
簡易的な計算のプログラムを作ってみたんですがうまく動作しません。

ちょっと見て頂き、不具合等御指摘下さい
特定の計算式で、入力(1項目だけセレクトボックスにより選択)した数値を計算するものです。


ソース
http://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20050123003423509.txt

URL
http://sr-cafe.chu.jp/kok/calc.html
0564nobodyさん
垢版 |
05/01/23 03:00:10ID:3FhDUp9J
>>563
ソースはマンドクサイのでちゃんと読んでないけど、
文字コードと改行コードの問題の様な希ガス。
0565nobodyさん
垢版 |
05/01/23 13:10:26ID:???
>>563
calc.html

× <SELECT name="set" name="s1">
○ <SELECT name="s1">
0566nobodyさん
垢版 |
05/01/23 20:04:18ID:???
>>563
ReadFormData(*FORM); → %FORM=&ReadFormData;
print <<END_OF_DATA; → print <<"END_OF_DATA";
Content-type: text/html; → Content-type: text/html\n\n

以下 sub ReadFormDataの修正
local(*FORM) = @_; → my %FORM=();
local($buf, $tmp, $name, $value); → my($buf, $tmp, $name, $value);
return %FORM; ← 最後に追加
0567nobodyさん
垢版 |
05/01/24 11:42:30ID:YsLCruPH
>>566
改行コード2つとダブルクォーテーション必要無くね?
0568nobodyさん
垢版 |
05/01/24 12:10:13ID:???
\n\nはいらんね。
ヒアドキュメントのダブルクォートはどちらかというとあったほうが・・・
0569563
垢版 |
05/01/25 02:27:15ID:???
ありがとうございます。
>>566サンの通りにしたり、色々試してるんですがまだ動かないです…
printが閉まってなくてフォームの値を処理出来てないんでしょうか…
0570nobodyさん
垢版 |
05/01/25 04:00:44ID:???
>>569
うちのサーバでスクリプト試したんだけどちゃんと動くぜ。
おまい、サーバに嫌われてるんだ。きっと。

問題は print <<END_OF_DATA 〜 END_OF_DATA までか、
まさかと思うがパーミッションか、perlの指定。

一度 print <<END_OF_DATA 〜 END_OF_DATA を
たいした行数じゃないんだし、print "〜\n"; に置き換えてみ。
それからコメント行やめろ。余計見づらくなる。
0571566
垢版 |
05/01/25 04:01:58ID:???
>>569
今試したら566の変更だけで動いたわけだが。
Content-typeの行はそのままでも良いみたい。
動かないとしたらCGIの設置方法の問題。
まさかとは思うがローカルでテストしてるよね?
0572nobodyさん
垢版 |
05/01/25 04:03:19ID:???
→まさかとは思ってない法則
0573566
垢版 |
05/01/25 04:07:06ID:???
つーか563のソースのままでも、ちゃんと結果出るじゃん。
問題はコードではない予感。
0574nobodyさん
垢版 |
05/01/25 04:14:49ID:???
>>573
経験で言うとさ、ヒアドキュメントはサーバの機嫌で、最初はうまく動作して
くれないことがある。Cookieなんか入れるとどうも変なんだよな。
そういうとき俺はメンドーでも print "〜\n" に置換えてやる。すると、あとは
「ヒアドキュメントでも読込んでやるかぁ」ってことでサーバは折り合ってくれる。
0576nobodyさん
垢版 |
05/01/25 04:34:21ID:???
いや、あるんだって。コード書く時も、こうした方が処理が楽だろ、とか
ムリしなくっていいから、とか気を使ってやると機嫌よくなる。ほんとだぜ。
0578nobodyさん
垢版 |
05/01/25 06:47:43ID:???
577はコード丸写しで自作CGIと称してるだろw。
多かれ少なかれ576のような感じはあるな。
0580nobodyさん
垢版 |
05/01/27 18:28:04ID:???
皆さん本当スイマセンでした!
パーミッションの所為だった…
元のままでも566のコードでもどちらでも動きました。

>>571-572
そのとおりです。
ローカルでテスト出来るという事すら知りませんでした。
勉強します。
0581nobodyさん
垢版 |
2005/06/06(月) 19:56:57ID:???
ねるねるねるねは Ψ(`∀´)Ψイッヒッヒッヒッヒ

             _▲_
ねればねるほど  ((φ(..。)  色が変わって

             _▲_
こうやってつけて  р(゚Д゚ )


          *_▲_*
 ウマイ━━━*━ヘ(゚∀゚)ヘ━*━━━━!!!!  テ-レッテレ-♪
0583nobodyさん
垢版 |
2005/09/21(水) 17:05:52ID:54UaWl8q
age
0584nobodyさん
垢版 |
2006/05/18(木) 17:31:45ID:Ip4qBE+B
ttp://c.hibi.info/Apple-1.zip
どなたか評価(清書?)お願いします_ _
指定されたスレの中から前日から当日までの既定の時間にあるレスを抽出して、
そのレスから株価コードを抜き出し株価の前日比、前日比率でソートしランキングを作成した後スレに書き込むツールです。
2chへの書き込み時のCookiee処理に曖昧な点があるのと、処理の最適化をして貰えると嬉しいです。
宜しくお願いします_ _
0585nobodyさん
垢版 |
2006/05/18(木) 22:33:53ID:???
他のスレから来ました。
Perlで他のサイトを取得して表示したいと思っています。
(著作権侵害とかそういうことをしたいのではないです)

お時間のある方にお願いしますが、次のコードで@niftyのトップページを取得してみたら
どうなるか教えていただけませんでしょうか?

print "Content-Type: text/html\n";
print "\n";
use LWP::Simple;
print get( 'http://www.nifty.com/' );

私のところだと、ブラウザ上での表示がぐちゃぐちゃになるんですが…。
0586nobodyさん
垢版 |
2006/05/18(木) 22:56:52ID:???
>585
マルチポストすんな
0588nobodyさん
垢版 |
2006/06/06(火) 15:21:29ID:Re1RmuFG
簡易予定表のようなものを組んでみたんですが、なんだかモッサリしてる気がします。
もっと簡潔に書けるような気がするんですが自分ではこれが限界でした。
あと、ファイルロックのやり方が合っているのか自信がありません。
一応動いていることは動いているんですが、問題はないでしょうか。
改良すべき点、根本的にこういう書き方に直した方が良い、とかあればアドバイスお願いします。
大まかな内容は以下のようなものです。

予定として保存する内容は「予定日(月と日)」と
「予定内容(長くても200バイト程度)」の2つでフォームから渡します。
予定を保存するファイルは月単位で作成します。
例えば2006年6月の予定の場合なら「200606.txt」というファイル名です。
保存するファイルがないときはその都度作成し、

6月1日

6月2日

6月3日
.
.
.
という風に日付だけを先に入れておきます。
保存するファイルがあるときは、
フォームから渡された「予定日」とマッチした日付の次の行に「予定内容」を書き込みます。

内容は以上です。次レスにコードを晒します。
0589nobodyさん
垢版 |
2006/06/06(火) 15:22:42ID:???
# 保存するファイル名
$a = sprintf("%04d%02d",$YEAR,$MON)
$file = "$a.txt";

# 月から日数を出す
if($MON == 1|3|5|7|8|10|12){
$m = 31;
}elsif($MON == 4|6|9|11){
$m = 30;
}else{
if($YEAR % 4 ==0){
$m = 29;
}else{
$m = 28;
}
}

for($i=1;$i<=$m;$i++){
$date .= "$MON月$i日\r\n\r\n";
}
0590後半
垢版 |
2006/06/06(火) 15:23:17ID:???
# 該当する月のファイルがなければ作成
if(!open(IN,"$file")){
open(OUT,">$file")
flock(OUT,2);
print OUT $date;
close(OUT);
}
open(IN,"$file");
flock(IN,2);
@A = <IN>;
close(IN);

# 「予定日」とファイル内の「日付」をマッチングさせて該当日付に「予定内容」を書き込む
$loop = @A;
$i = 0;

while($loop > 0){
if($A[$i] eq $plan_day){# $plan_day = "フォームからの情報(予定日)";
$A[$i] .= "$plan_value\r\n";# $plan_value = "フォームからの情報(予定内容)";
}
$loop --;
$i ++;
}

if(!open(OUT, "+< $file")){&error;};
flock(OUT, 2);
truncate(OUT, 0);
seek(OUT, 0, 0);
print OUT @A;
close(OUT);
0591nobodyさん
垢版 |
2006/06/06(火) 15:45:22ID:???
>>589
まだちゃんと読んでないが…。

>if($MON == 1|3|5|7|8|10|12){
>}elsif($MON == 4|6|9|11){
これって比べてるのは、両方とも $MON == 15 だよね。
どっちの条件にも入らないと思うけど…正しく動作してるの?
0592nobodyさん
垢版 |
2006/06/06(火) 15:51:41ID:???
>$a = sprintf("%04d%02d",$YEAR,$MON)
セミコロンは?
動作するヤツうp
0593nobodyさん
垢版 |
2006/06/06(火) 15:52:34ID:???
ビット演算子を使っているんだ。
高度だな。
0594nobodyさん
垢版 |
2006/06/06(火) 16:09:34ID:???
switch文を使うと見やすいんじゃないかな?

use Switch

switch ($MON) {
case [1,3,5,7,8,10,12] { $m = 31 }
case [4,6,9,11] { $m = 30 }
case [2] { $m = $YEAR % 4 ? 28 : 29 }
else { print "そんな月知らん" }
}
0595589
垢版 |
2006/06/06(火) 16:39:31ID:???
レス遅くなりました。すみません。
該当部分を切り出して動作するコードをUPしてきます。
0596589
垢版 |
2006/06/06(火) 17:02:59ID:???
ttp://up.isp.2ch.net/up/b2611f9a934e.zip
UPしました。パスは「589」です。
日付のところは594さんのアドバイスにしたがって書き換えました。
アドバイスの方よろしくお願いします。
0597589
垢版 |
2006/06/06(火) 17:11:06ID:???
>>591>>592
コードの一部分だけ抜き出してできるだけ短く書こうとしたので
分かりにくかった&書き損じがありました。すみませんでした。

>>594
perlでもswitchが使えるとは知りませんでした。
0598nobodyさん
垢版 |
2006/06/06(火) 17:20:53ID:???
いやperlではswitchは使えない。
0599nobodyさん
垢版 |
2006/06/06(火) 17:24:17ID:???
Switch なんてモジュールがあるのか知らんかった。
0601nobodyさん
垢版 |
2006/06/07(水) 00:26:35ID:???
PerlはPHPとは違ってCPANを探せば考えられる大体の車輪は既にある。
0602nobodyさん
垢版 |
2006/06/20(火) 01:54:40ID:jChy1x4Z
>>596
見れない・・
0603nobodyさん
垢版 |
2006/07/08(土) 12:44:17ID:hGiPCYN9
switchがあったとは・・・
0605nobodyさん
垢版 |
2006/10/07(土) 10:40:01ID:L17fbc1O
@@@
0606nobodyさん
垢版 |
2006/10/11(水) 22:51:05ID:e5FQIx7N?2BP(333)
特定の板のスレタイ検索をして、選んだスレから画像とかのサムネイルを表示するスクリプトを書いてみまスた(・ω・`)
恐ろしく見づらいと重いまスが・・
http://vip.ty.land.to/image/

http://pc8.2ch.net/test/read.cgi/php/1160569533/
でボチボチいじくったり、新しいことやったりしていきたいと思ってまスが、評価して欲しいス(・ω・`)
勉強かねてるので、車輪の再開発なのは承知でス
0607nobodyさん
垢版 |
2006/10/11(水) 23:36:54ID:???
>>606
言葉遣い荒いけど、ばーっと書いた弊害なので許して。
取りあえずぱっとみてこんなもん。
・一部のうpろだは、リファラが不味いと弾かれる。
・画像がない場合の画像を一々作るのは無駄。
・CGIモジュール使え。
・グローバル変数も宣言しろ。
・これは好みだけど、設定の変数はハッシュに纏めた方が分かりやすいこともある。
・メインの流れはブロック作ってラベル付けた方が分かりやすいかも。
・正規表現の|は案外コストがかかる。配列にしてマッチング。
・先頭にrequire バージョン名;
・use warningsは〜?
・汚染チェックもきれい好きな方にはオススメ。
・サブルーチンを先頭で宣言して欲しい。
・変数名に日本語はいやん。
・データーベースつかってほすぃ。
0608nobodyさん
垢版 |
2006/10/11(水) 23:42:15ID:e5FQIx7N?2BP(333)
>>607
おぉぉぉレスもらえたス(;ω;`)アリガタイ
感謝しまス!

>・正規表現の|は案外コストがかかる。配列にしてマッチング。
>・先頭にrequire バージョン名;
>・use warningsは〜?
>・サブルーチンを先頭で宣言して欲しい。
良くわからないス(・ω・`)

>・変数名に日本語はいやん。
英語苦手ス・・・毎度翻訳スかね・・頑張るス

>・データーベースつかってほすぃ。
現在勉強中でス!
生暖かい目で見守ってやってくださいス・・(・ω・`)


やっぱレベル高い人の意見は参考になるス!
文句なし!って言われるようなものをいつか作りたいス(・ω・`)thnkス
0609nobodyさん
垢版 |
2006/10/12(木) 04:41:48ID:???
>>606
うる覚えなんだが
if($i_m_f){
    use Image::Magick;
}
これって意味ないんじゃなかったっけ?
$i_m_fが真ならImage::Magickを使うって事なんだろうけど、
この書き方だと$i_m_fが偽でもImage::Magick呼ぶんじゃなかったっけ?
識者の方レスよろ

ファイルハンドルは大文字で

最後から10行目くらい@cache[$i]は$cache[$i]じゃないの?

print文中の"をエスケープするんならprint qq|ここに"文章"|;
こーすりゃいちいちエスケープしなくておk
0610606
垢版 |
2006/10/12(木) 09:44:51ID:????2BP(333)
>>609
サンクス

>最後から10行目くらい@cache[$i]は$cache[$i]じゃないの?
どちらも同じ意味だったはず
(若干の差はあるかもだが、使い方に大差なしでは?)

>print文中の"をエスケープするんならprint qq|ここに"文章"|;
>こーすりゃいちいちエスケープしなくておk
mjdsk!?
次から挑戦してみる

色々アドバイスやら素敵な解決策をありがとう
0611nobodyさん
垢版 |
2006/10/12(木) 13:46:42ID:???
useするかどうか切り替えたいなら
BEGIN{}で囲ったほうがいいな。
0612nobodyさん
垢版 |
2006/10/12(木) 22:51:01ID:???
>>609
>うる覚えなんだが
http://www.tt.rim.or.jp/~rudyard/hirago014.html

> これって意味ないんじゃなかったっけ?
http://perldoc.jp/docs/perl/5.6.1/perlfunc.pod#item_use_Module_VERSION_LIST

> ファイルハンドルは大文字で
bareword で扱わず変数で取り回す方が今風。
http://www.kt.rim.or.jp/~kbk/perl-5.8/perlfaq5.html#how_can_i_make_a_filehandle_local_to_a_subroutine_how_do_i_pass_filehandles_between_subroutines_how_do_i_make_an_array_of_filehandles

>>610
> どちらも同じ意味だったはず
http://www.kt.rim.or.jp/~kbk/perl-5.8/perlfaq4.html#what_is_the_difference_between__array_1__and__array_1_
0613 ◆.PT9876/4U
垢版 |
2006/11/06(月) 17:44:37ID:???
あちこちから routin をかき集めて自作しました :
alter.s225.xrea.com/cgi/bbs/read.cgi?log=0

1. 評価と言うよりも bug の あぶり出しを希望します.
2. 操作がわかりづらいとの意見があります.
 率直な ご意見をお願いいたします
3. 自信がないのが security 関連

・ 念のため, 全ファイルを upload しておきます:
alter.s225.xrea.com/bbs.zip
0614nobodyさん
垢版 |
2006/11/06(月) 18:17:34ID:???
>>612
URLが長すぎて横スクロールでた。
ふざけんな改行しろこのボンクラっ!
0615nobodyさん
垢版 |
2006/11/07(火) 08:23:24ID:???
IDなんだしもっと短く付けろよなw
文章そのままって酷すぎるw
0616nobodyさん
垢版 |
2006/11/08(水) 01:06:36ID:???
>>613
ちょっとエキサイト翻訳チックだな
0617 ◆.PT9876/4U
垢版 |
2006/11/08(水) 06:15:24ID:???
>>613
お返事ありがと〜.
でも, どういう意味かしら ?

誘導されて来たのに いまだに誰も...
どうなってるの ?
0618nobodyさん
垢版 |
2006/11/08(水) 10:54:37ID:???
>>617
「とても読めたもんじゃない」
ということではないでしょうか。
613は釣りとしか思えない。
CGI以前の問題ね。
0619 ◆.PT9876/4U
垢版 |
2006/11/08(水) 18:47:29ID:???
>>618
>CGI以前の問題ね
確かに... JavaScrit の bug がぁ〜〜〜
(絶対に書き込めない)
おまけに... WaMCom (Mozilla1.31) では問題とならなかった error が
IE5.17(Mac版) では発生して処理が止まる〜〜〜.

>613は釣りとしか思えない
釣りでは ありませぬ.

僕の環境で確認できる bug は退治しました.
引き続き あら探しをお願いいたしまする〜.
0620nobodyさん
垢版 |
2006/11/08(水) 20:37:07ID:???
つっこみどころが多すぎるなぁ…。

まず、「何を作ったのか」という概要や大まかな処理の流れすら書いてない。
>評価と言うよりも bug の あぶり出しを希望します.
評価するスレ。デバッグする所ではない。てか、デバッグなめすぎ。
>操作がわかりづらいとの...
具体的にはどういう操作?
>自信がないのが security 関連
どのファイルの何行目のどういう処理?
>JavaScrit の bug がぁ
JavaScritのスレへどうぞ。
>WaMCom (Mozilla1.31) では問題とならなかった error が
>IE5.17(Mac版) では発生して処理が止まる
と書いていながら
>僕の環境で確認できる bug は退治しました
ってどうよ。

何より、CGIについて無学なのがバレバレです。
背伸びせずPerlからでもきちんとお勉強しましょう。
0621nobodyさん
垢版 |
2006/11/08(水) 20:38:25ID:???
これさぁ、変数の検査とか書き込む条件とかまったくないじゃん。
最低でも変なファイル作られないようにするとか異常にでかい投稿は
書き込まないようにするとかしないと。
叩き専門の人にとっては叩く必要もないほどへなちょこだけど
プログラムに日本語を含めないつくりはいいと思う。
プロでもソースのいたるところに日本語を埋め込む人はいるからね。
ぶっちゃけそれくらいしか褒めようがないんだけどw

nullぽっぽはもしかしてOperaメインなの?
レスを投稿する


ニューススポーツなんでも実況