自作CGIを評価するスレ (672レス)
1-

1
(4): Premature end of script headers : /this/thread 03/04/05 12:47 ID:tIET0nhf(1) AAS
自分の作ったCGIをみんなに評価してもらうスレだよ。言語は問わないよ。
よほどプログラムが短くないかぎりはアプロダにでもアップしてね。
2: 03/04/05 12:58 ID:??? AAS

3: 03/04/05 14:40 ID:??? AAS
ソース貼り用掲示板
外部リンク[html]:do.sakura.ne.jp

あぷろだはどこ使うよ?
4
(8): 03/04/05 15:00 ID:??? AAS
PHPもOKなの?
5
(1): 03/04/05 15:02 ID:??? AAS
>>4
>>1 くらい読め
6: 03/04/05 15:32 ID:??? AAS
CGI版のPHPならOKてことだな>>4
Cで書くCGIスレも統合するか、ゴミだし。
7: [e] 03/04/05 15:51 ID:??? AAS
WebProgならなんでもいいんじゃネーノ?
8
(1): 03/04/05 17:41 ID:??? AAS
CGIならいいんだろ?
9
(1): 03/04/05 18:07 ID:??? AAS
>>5

モジュール版のPHPについて聞いたことぐらい気づけ。
10: 03/04/05 18:09 ID:??? AAS
>>9
あーなるほど、スマン。
っつーかそれもアリに決まってるじゃねーかよーヽ(TДT)ノ
11: マリモーマ ◆r6PDGT6Xd2 03/04/05 18:33 ID:4Hc1kYlW(1/2) AAS
僕の作った CGIは どう? 外部リンク[html]:777.or.nu
12: 03/04/05 18:43 ID:??? AAS
絵に描いたような一直線ソースだな
13: 03/04/05 18:57 ID:??? AAS
もうちょいスコープとか意識したほうがいいんじゃない?
殆どグローバル変数・・・
14
(1): 03/04/05 18:59 ID:??? AAS
・どっかからコピーした部分以外で使われる変数が全てグローバル
・関数名から内容が想像できない(re,fot,ur,re2,wr2lok,co.gc等 sub ge {} は結構引いた)
・スタイルに一貫性がない
・$FORMの扱いがキモイ
・symlinkロックしてるが解除はどこでやってんだ?
15: 03/04/05 19:05 ID:??? AAS
>>14
5番目訂正しとく。
・symlinkロックしてないから解除はやらなくてもいいんだけどロックしないってことか。

sub lok{
if($lock == 0){return;}
local($wait) = 4;
while (!symlink(".", $lock)) {
if ($wait-- <= 0) {
&error("$(B%m%C%/%U%!%$%k$,B8:_$7$F$^$9!#(B");
}
省8
16: マリモーマ ◆r6PDGT6Xd2 03/04/05 21:18 ID:4Hc1kYlW(2/2) AAS
なるほど いろいろなアドバイス サンクス
17
(3): これ自信作だぜ 03/04/05 22:52 ID:qMi3a/lA(1/2) AAS
外部リンク:oasis.minidns.net
18: これ自信作だぜ 03/04/05 23:35 ID:qMi3a/lA(2/2) AAS
tail -f /var/log/httpd/accesslog
見たけど誰もアクセスして来ないや。
皆臆病者だね。
19: 03/04/05 23:45 ID:??? AAS
お前がきもいから人気無いだけだろ。とんだ勘違い野郎だな。
20: 4 03/04/06 00:23 ID:t3fZoblF(1/25) AAS
よかったら批判ください。
もうちょいコード直してから、URL晒します。
21: 03/04/06 00:26 ID:??? AAS
元から批判が欲しいとは
22: 4 03/04/06 00:28 ID:t3fZoblF(2/25) AAS
批判以外もらってもどうしようもない..
ほめてもらったら何も意味がないっす。
23: 03/04/06 00:31 ID:??? AAS
>>17
いったけどエラー起こしとる罠
24: 03/04/06 00:39 ID:??? AAS
>>17
ソース見たらDOCTYPEがXHTMLだったけどぱっと見ても明らかに間違えまくってたのでチェックしてみた。
チェックの結果は以下のとおりです。

外部リンク:oasis.minidns.net を XHTML1.0 Transitional としてチェックしました。
19個のエラーがありました。このHTMLは 4点です。タグが 9種類 14組使われています。文字コードは Shift JIS のようです。

先頭の数字はエラーのおおまかな重要度を 0〜9 で示しています(減点数ではありません)。少ない数字は軽く、9 になるほど致命的です。0 は減点対象外のごく軽度のエラーで (グレイのかっこつき) でメッセージされています。

9: line 1: このXML宣言は正しくありません。 → 解説 23
6: line 5: <html> には xmlns 属性が必要です。 → 解説 86
2: line 5: <html> には lang 属性を指定するようにしましょう。 → 解説 116
2: line 5: <html> には xml:lang 属性を指定するようにしましょう。 → 解説 116
25
(1): 03/04/06 00:39 ID:??? AAS
0: line 6: (<head>〜</head> 内に <link rev="made" href="mailto:〜" /> が含まれていません。) → 解説 121
0: line 6: (<head>〜</head> 内に <link rel="next" href="〜" /> などのナヴィゲーション用のリンクが含まれていません。) → 解説 122
1: line 6: <p> と </p> の間が空です。 → 解説 51
1: line 6: <body> での色指定が不完全です。text 属性も含めるようにしましょう。 → 解説 149
0: line 7: (<input type="text"> には tabindex 属性を指定するようにしましょう。) → 解説 166
0: line 7: (<input type="file"> には tabindex 属性を指定するようにしましょう。) → 解説 166
1: line 7: <input type="text"> には value 属性で初期値となるテキストを指定しておきましょう。 → 解説 160
0: line 7: (<input type="text"> には tabindex 属性を指定するようにしましょう。) → 解説 166
0: line 7: (<input type="submit"> には tabindex 属性を指定するようにしましょう。) → 解説 166
1: line 7: <input type="text"> には value 属性で初期値となるテキストを指定しておきましょう。 → 解説 160
省5
26: 4 03/04/06 00:40 ID:t3fZoblF(3/25) AAS
なぜか、2重カキコデスカ!?と
27
(1): 4 03/04/06 00:41 ID:t3fZoblF(4/25) AAS
HTMLがDOCTYPE無し、気分によって大文字小文字が混じっている
のはNGですか?
28: 03/04/06 00:45 ID:??? AAS
あ、ゴメン。エラーのせいで最後の方が減点食らってるのね。
本来のドキュメント(最初の</html>まで)でチェックしてみた。

XHTML1.0 Transitional としてチェックしました。
19個のエラーがありました。このHTMLは 8点です。タグが 9種類 14組使われています。

先頭の数字はエラーのおおまかな重要度を 0〜9 で示しています(減点数ではありません)。少ない数字は軽く、9 になるほど致命的です。0 は減点対象外のごく軽度のエラーで (グレイのかっこつき) でメッセージされています。

9: line 1: このXML宣言は正しくありません。 → 解説 23
6: line 5: <html> には xmlns 属性が必要です。 → 解説 86
2: line 5: <html> には lang 属性を指定するようにしましょう。 → 解説 116
(以下略)
29: 03/04/06 00:47 ID:??? AAS
>>27
別にいいんじゃねぇの?>>17は自信作らしいから突っ込まれてるだけで。
30: 4 03/04/06 00:53 ID:t3fZoblF(5/25) AAS
ほう、今自分で見ててすでに数箇所突っ込みどころがあったよ。
もう少し。
31
(1): 4 03/04/06 00:58 ID:t3fZoblF(6/25) AAS
ついでにオレはここの4ではない。
32
(1): 03/04/06 00:59 ID:??? AAS
評価して欲しいやつはトリップつけれや
33: 03/04/06 01:04 ID:??? AAS
>>31
ややこしいぞw
じゃあPHPじゃないのか?
34: 4 ◆R.zOhOehsw 03/04/06 01:29 ID:t3fZoblF(7/25) AAS
PERLですが、まずいですか?
35: 03/04/06 01:34 ID:??? AAS
いえ、さっさと貼っちゃってよん。
36: あぼーん [あぼーん] 03/04/06 01:41 ID:??? AAS
AA省
37
(2): 4 ◆R.zOhOehsw 03/04/06 01:56 ID:t3fZoblF(8/25) AAS
BBS: 外部リンク[pl]:hex51.darktech.org
SRC: 外部リンク[txt]:hex51.darktech.org

言語: PERL
ネタ元: 外部リンク:thebbs.jp

糞ほど批判いただければ幸いです。
書き込みまくっても糞スレたてまくっても結構。
38: 03/04/06 02:04 ID:??? AAS
>>37
Perlの文法的な間違いはないみたいだけど、処理がいまいちな部分が
散見される。
効率を考えればもうちょい工夫したほうがいいだろう。
39: 4 ◆R.zOhOehsw 03/04/06 02:08 ID:t3fZoblF(9/25) AAS
意見どうも。
もっとアルゴリズムを勉強しれってことですね?
40: 03/04/06 02:22 ID:??? AAS
・myが気になる。
・一行書き出すのにヒアドキュメント使うのは何故?
・かと思えばqq連発で使ってたり…

・1.入力 2.処理 3.出力 という風に処理を分けよう
・自作自演防止はハッシュとかじゃ駄目なのかい?
・FORMの処理が2回書いてあったりして無駄

・HEADリクエストは面白いね。
41
(3): 03/04/06 02:32 ID:??? AAS
かなり恥ずかしいのですが、他人の意見を一度でも聞いてみたくて…
外部リンク:kabocha.org
↑のサイトの
外部リンク[html]:kabocha.org
↑のページに
山口_BBS2.00b1
↑って言う私のCGIがあるのですが、いかがな物でしょうか。

ただし「携帯のEZ専用」なので皆様の中には意味を理解しかねる出力があるかもしれません。

ああ、ついに2ちゃんねるに晒してしまったよ…
冷静に考えると恥ずかしいけど…、プロの方(?)に見てもらいたい気持ちが上のようだ…。
省1
42: 03/04/06 02:35 ID:??? AAS
myもいいんだけど、実質グローバルと同じだな。
処理毎に{ }で囲んで使わなきゃ意味ないだろ。
43
(1): 4 ◆R.zOhOehsw 03/04/06 02:47 ID:t3fZoblF(10/25) AAS
ご意見どうも。
>・一行書き出すのにヒアドキュメント使うのは何故?
エディタで折り返すのが気になるので..
>・かと思えばqq連発で使ってたり…
Emacsなので、ヒアドキュメントだと表示する特殊によって
自動のタブがおかしくなるのです..

全部個人的なことですね..修正します。

myに関しては、ちょっと調べてみます。
その他の意見に関しても、もう一度よく考え直してみます。
44: 4 ◆R.zOhOehsw 03/04/06 02:49 ID:t3fZoblF(11/25) AAS
>特殊
特殊文字、記号です。
45
(1): 03/04/06 02:50 ID:??? AAS
>>43
cperl-mode使ってる?

myは変数のスコープを局所範囲に閉じ込めるためのもので、
mainパッケージでmy使ってもmainパッケージ全体から読み書きできてしまうので
いやーんな感じ
46
(1): 03/04/06 02:53 ID:??? AAS
>>41
2193行目 $error_name = @_[0]; → $error_name = $_[0];でいいだろ
あちこちの変数、もうちょっとスコープを考えてレキシカルに
するとかしたほうがいい。
問題ないけど、読み取りopenに < をつけたりつけなかったりなどしてるのを
書き方統一したら?
他の部分なんかでも統一させる書き方をくせにしたほうが可読性良くなるし。
吐いてるhdmlはすぐにテストできないから見ていない。
47
(1): 4 ◆R.zOhOehsw 03/04/06 03:00 ID:t3fZoblF(12/25) AAS
>>45サン
Emacsは、普通にそのまま.plとして読んだ感じで使ってます..
mainで、my使うと、別の関数から書きかえれないのでは?
それは意味ないのでしょうか?
48
(1): 4 ◆R.zOhOehsw 03/04/06 03:03 ID:t3fZoblF(13/25) AAS
もしかして、mainで書いた関数は、mainに含まれますか..汗
勝手に、関数を覗いた部分がmail{}となるのかと思ってました。
49: 03/04/06 03:04 ID:??? AAS
>>47
>mainで、my使うと、別の関数から書きかえれないのでは?
「別の関数」が良く分からんが、mainパッケージに属している関数では

my $a = 1;
print $a,"\n";
&routine;
print $a,"\n";

sub routine {$a = 3;}

$ perl hoge.pl
1
省2
50
(1): 03/04/06 03:05 ID:??? AAS
#!/usr/bin/perl

require "hage.pl";

my $a = 1;
print $a,"\n";
&hage::routine;
print $a,"\n";

# ↓はhage.pl
#!/usr/bin/perl

package hage;
省7
51: 03/04/06 03:06 ID:??? AAS
>>48
main関数なんてもんはない。
mainパッケージ。この辺はちゃんと勉強した方が良かれと思われる。
52: 4 ◆R.zOhOehsw 03/04/06 03:08 ID:t3fZoblF(14/25) AAS
はい、よく分かりました。
ありがとうございます。
53
(1): 41 03/04/06 03:11 ID:??? AAS
>>46
御意見ありがとう御座います。
こんなに早く返って来るなんて…。感激です。
…と言うより、私の記述が雑なので簡単に変な所が見つかってるだけなのだろうか。複雑な気分…汗

もし、ヒマな方がいらっしゃいましたらまだまだ御意見をたくさんお聞かせ下さい。
54: 03/04/06 03:13 ID:??? AAS
どれどれ。ちょっと見てみるか。
55
(2): 03/04/06 03:16 ID:??? AAS
>>53
Name "main::get_time_yday_2" used only once: possible typo at H:\Work\山口BBS200b1\ybbs.cgi line 2336.
Name "main::get_time_isdst_3" used only once: possible typo at H:\Work\山口BBS200b1\ybbs.cgi line 2339.
Name "main::get_time_isdst_2" used only once: possible typo at H:\Work\山口BBS200b1\ybbs.cgi line 2336.
Name "main::get_time_wday_3" used only once: possible typo at H:\Work\山口BBS200b1\ybbs.cgi line 2339.
Name "main::mail_jcph" used only once: possible typo at H:\Work\山口BBS200b1\ybbs.cgi line 2071.
Name "main::get_time_yday" used only once: possible typo at H:\Work\山口BBS200b1\ybbs.cgi line 2333.
Name "main::get_time_sec_3" used only once: possible typo at H:\Work\山口BBS200b1\ybbs.cgi line 2338.
Name "main::get_time_wday_2" used only once: possible typo at H:\Work\山口BBS200b1\ybbs.cgi line 2336.
Name "main::get_time_sec" used only once: possible typo at H:\Work\山口BBS200b1\ybbs.cgi line 2332.
省5
56
(1): 03/04/06 03:20 ID:??? AAS
>>55 まあtypoじゃないみたいだけどね。
・2350行目〜sprintfですっきりと
57
(1): 03/04/06 03:31 ID:??? AAS
他人が書いたソースって見てると面白いもんだねぇ・・・
58
(2): 03/04/06 03:31 ID:??? AAS
つーか、でかっ
10KB超えるCGIなんて作ったこと無い・・・。
59: 03/04/06 03:32 ID:??? AAS
・receive_error ifはいるのか?
・localの意味が分からないならmyを使おう
・クラックを気にするならcryptを使おう
・684行目はどういう意味?
・=はエスケープしなくていいよ
・PCと携帯を同時に扱うなら、途中までは両者に依存しない処理にしておいて
 最後の最後いざ出力するという時に振り分けると綺麗になるよ
60: 03/04/06 03:34 ID:??? AAS
>>58
儂は300Kのソースがあるぞ(ぉ
61
(2): 03/04/06 03:38 ID:??? AAS
・最初(〜300行目)のqqはなんだ?
まぁあとは4氏にも共通するけど、インデントがおかしいのと
記述に一貫性がないのが気になるね。
サブルーチンがそこそこ見られるのは良いと思う(ただ、もう少しstrictに書こう)

これは個人的な趣味だけど、俺はグローバルなオプションはハッシュにする。
%option =(board_name => "hoge", max_mes => 50 ); みたいに。
62: 4 ◆R.zOhOehsw 03/04/06 03:45 ID:t3fZoblF(15/25) AAS
>>61
なるほど。
今までファイルから読んだ設定なんかはハッシュにしてましたが、
CGIだと初心者設置者が混乱するかと思って、できるだけ
見た目で分かりそうにしたつもりでしたが、ハッシュのがイカス。
63: 03/04/06 03:49 ID:??? AAS
あと、自分的趣味をいうと、subの変数はことごとく局所変数にするほうがいいと思うなぁ

sub ayaya{
  my $num = shift;
  $num++;
  return($num);
}

みたいな形でやっとくほうが誤動作しにくい。
64: 41 03/04/06 03:52 ID:??? AAS
>>54-60
もう早こんなに…!ありがとう御座います。
最初はなんか晒すの恥ずかしいと思ってたけど、晒して良かったなぁ…(嬉

>>55-56
はい、タイムの所めちゃくちゃです。自分でもここは直さねば!と思ってました。
ありがたく直させてもらいます。

>>57
そうですか。私のレベルだと他人の記述は自分と進めかたが違うので見てると疲れてしまいます。
そんな私はperlしかできず、初めて1年くらいになります。面白いと言って頂けて幸いです。

>>58
省18
65
(1): 4 ◆R.zOhOehsw 03/04/06 04:01 ID:t3fZoblF(16/25) AAS
localは宣言した{}内から読んだ関数内からでも参照できる。かな..

$cry = crypt('passwd', 'sl');
で、DESというので暗号化します。slはsaltで2byteとります。
暗号化されてた文字列(13byte)の先頭2byteに入りますから、
パスワードを検査するときに、同じsaltでもう一度暗号化して、
暗号済みのものと同じになれば同じパスワードです。
ん、いい説明探したほうが早いか..
66
(2): 03/04/06 04:18 ID:??? AAS
ハッシュを普通の変数のように使うのってだめですか?
67: 03/04/06 04:23 ID:??? AAS
>>66
駄目ではない、用途によって使い分ける事が重要
68
(1): 03/04/06 04:23 ID:??? AAS
#○ログファイル
$def_log_file = q[./log.txt];
これは納得できるが
#○一度に表示されるレスの件数。
#[3〜6]推奨。多く設定すると端末側で読み込めない場合があります。
$def_mess_page = qq[5];
こっちをダブルクオートで囲むのはなぜ?
数値をクオートで囲まれると変な気がする…
69
(1): 03/04/06 04:25 ID:??? AAS
>>41
>>32
70
(1): 03/04/06 04:32 ID:??? AAS
myは本当は局所的に使うためなのはしってるんだけど
どうしてもその前後で値が必要になったりすることが多いので
サブルーチンなら先頭に全部まとめて書いてる・・・
71
(31): 03/04/06 04:34 ID:??? AAS
>>70
余りいい設計じゃないなぁ・・・
subは位置に依存しないものであるべき
72: 41 03/04/06 04:37 ID:??? AAS
>>61
>・最初(〜300行目)のqqはなんだ?
qq自体の意味でしょうか…?qならシングルクウォートでqqならダブルです。
入力は、ご使用していただく方に任意で入力してもらいます。量が多くてめんどうな気がしますけど…。
>インデントがおかしいのと
>記述に一貫性がないのが気になるね。
つまり見にくいと…。私の中では今までで1番気をつけた記述だったりしますが…
頑張ります。
サブルーチンがそこそこ見られるのは良いと思う(ただ、もう少しstrictに書こう)
strictってなんだろう、汗。調べてみます。
省12
73
(2): 41 ◆hht1jkpw9E 03/04/06 04:43 ID:??? AAS
>>69
はい、これで行きます、トリップ。

>>68
もし、
#○一度に表示されるレスの件数。
#[3〜6]推奨。多く設定すると端末側で読み込めない場合があります。
$def_mess_page = 5;
とした場合、どこに入力したら良いか目で確認しにくいかと思いまして…。
数字なのでシングルではなく、ダブルで囲んでます。

なんて言うのか、入力する場所を
省2
74: 03/04/06 04:47 ID:??? AAS
>>73
んー基本的なことを言わせてもらうと・・・
コメントでちゃんと書いとけば理解してもらえる範囲じゃないかと思うけどね・・・

それでわからないっていうのは相手する必要が無いような・・・(ぉ
75
(2): 03/04/06 04:48 ID:??? AAS
>>71
激しく意味不明なやつになっちまったけど

sub saitama{
my ($value,$saitama,$hoge);
 foreach $value (@_){
  ($saitama,$hoge) = split(/,/,$value);
  if($saitama == $hoge){ return 1; }
 }
 return 0;
}
省1
76
(1): 03/04/06 04:53 ID:??? AAS
って言うか最近多い「4」って香具師は「4番」ではなく、コテハン?
普通に紛らわしい。なんとかしてほしい。
77: 03/04/06 04:55 ID:??? AAS
このスレタイっておかしくない?

× 自作CGIを評価するスレ
○ 自作CGIを評価してもらえるスレ
○ 自作CGIを評価していただくスレ

じゃない?
78: 71 03/04/06 04:55 ID:??? AAS
AA省
79
(7): 75 03/04/06 05:00 ID:??? AAS
まぁ意識しろって言われたら
漏れならこう書くんだけど

sub saitama{
 foreach my $value (@_){
  my ($saitama,$hoge) = split(/,/,$value);
  if($saitama == $hoge){ return 1; }
 }
 return 0;
}

78のコードと比べるとどっちのほうが
省3
80: 71 03/04/06 05:03 ID:??? AAS
まぁ、書き捨てにするか後から見やすく書くかのレベルになる罠(w
81: 03/04/06 05:05 ID:??? AAS
>>66
普通の変数も無名ハッシュっていう位置づけじゃなかったっけ?
82: 37 ◆0wPZQfeVoI 03/04/06 05:07 ID:t3fZoblF(17/25) AAS
>>76
非常にすみません。
Perlの極意スレの4番です。
もう沈んでどこかに行ったスレです。
なんとなくそのまま4でした、改名します、37です。
83
(1): 03/04/06 05:09 ID:??? AAS
>>79
漏れは 何回も使う関数的なやつは結構まともに書いてるけど
本体が長くなるからただ分けただけのサブルーチン的なものだと
かなりだらしないわ。

一応strictなコードでmod_perlで動いてる
84
(4): 03/04/06 05:10 ID:??? AAS
AA省
85: 03/04/06 05:12 ID:??? AAS
「エラー処理を先にやれ」っていう格言をどっかで見た。

それ以上続けるのが無意味と分かっている場合に
だらだらと引きずるのは良くない。すぱっとreturnすべき。
86: 71 03/04/06 05:13 ID:??? AAS
>>84
まぁ、別に好きなように書けばいいんだけど、
グローバル変数の値をサブルーチンから出力することもあるし・・・
それ以前に、どのレベルで言ってるかつーのが気になる所かもなぁ

ちなみにgotoは使わないよ。必要ないから(w
87
(1): 37 ◆0wPZQfeVoI 03/04/06 05:15 ID:t3fZoblF(18/25) AAS
>>84
なるほど、私は上のほうの書き方しますね..
やはり、コードが見やすいというのもプログラムの重要な要素に
はいるのでしょうか?
88
(1): 79 03/04/06 05:16 ID:??? AAS
>>84
それ書くなら
if(真 && 真 && 真){何か}else{return 0;}
だろうなぁ…

まぁ趣味でやってるプログラミングなんで
動いたら嬉しいって程度なんだが(w

>>83
関数だと割ときれいに書くな 漏れも
89
(1): 71 03/04/06 05:21 ID:??? AAS
>>87習慣づけしとけばスパゲッティなソースにはなりにくいのが作れると思うけどねん

returnは複数付けるのが一般的らしいな、覚えとこう
1-
あと 583 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.032s