トップページphp
1001コメント327KB

CGIだけど、なんか質問ある?Part 5

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名無しさん@お腹いっぱい。01/12/26 10:51ID:???
■過去ログ
 Part 3 http://pc.2ch.net/test/read.cgi/php/988727833/l50
 Part 4 http://pc.2ch.net/test/read.cgi/php/1000804655/l50

その他参考になるスレッドを >>2 に纏めたので、十分に調べた上で質問して下さい。
0831名無しさん@お腹いっぱい。02/02/25 13:34ID:???
<form method=post action=nanntara.cgi target=_blank>

で逝けなかったっけ?
0832名無しさん@お腹いっぱい。02/02/25 14:35ID:UOHqJPQ/
>831
ご指導、ありがとうございました。
target=_blankを加えてやってみます。
0833なんか教えて02/02/25 15:10ID:QYTcZNO9
ホームページの中に投票ランキングつくりたいんだけど
どうすればいいの?
0834名無しさん@お腹いっぱい。02/02/25 15:55ID:???
>833
メールで投票してもらって自分で開票しランキングHTMLを組む。
0835名無しさん@お腹いっぱい。02/02/25 17:59ID:yuvH5kLZ
関連サイトをめぐりつつこっちでも質問です・・・。
今画像検索サイトを作ろうと検索エンジンを改造しているところ
なのですが・・・(ちなみに初めてCGI触りました)。

あるHTMLタグの塊を、検索で引っかかった数だけ出力するのが
検索エンジンですよね。
その出力するHTMLをこんな風にします。
print "<form method=\"post\" action=\"file.cgi\"><table>\n;"#ここは検索出力の前。ヘッダ
print "<<EOF;
<tr><td><img src="$path"></td>#$pathというのは、このサーチエンジン
                #に使用しているデータファイルの中身で
                #画像ファイルのパスが入ります
<td><input type="text" size="60" name="com$no"></td>
</tr>
EOF
#<中略>
print "</table>\n</form>\n</body></html>#ここはフッタです。検索処理のあと。

検索で引っかかった画像にメッセージをつけて登録するようにしたいので、
検索で出力するHTMLに[input type・・・・」というのを書いています。
そのnameに変数$noをつけて、検索にヒットした数を1から順にふればよいのだ、
と思ったのですが、その$noをどう定義すればよいかその書き方がわからないの
です。
どう書けばよいでしょうか?
$no = ?
0836名無しさん@お腹いっぱい。02/02/25 18:01ID:???
>あるHTMLタグの塊を、検索で引っかかった数だけ出力するのが
検索エンジンですよね。

へぇ。
0837名無しさん@お腹いっぱい。02/02/25 18:02ID:???
print "<<EOF;
   ↑
ヒアドキュメント変じゃないか?

083883502/02/25 18:02ID:yuvH5kLZ
よ・・・読みにく・・・!!
0839名無しさん@お腹いっぱい。02/02/25 18:02ID:???
まずは落ち着いて冷静になってから説明をやり直せ。
084083502/02/25 18:02ID:yuvH5kLZ
>837
しまった(汗)
ミスりました
0841名無しさん@お腹いっぱい。02/02/25 18:03ID:???
何がしたいのかわからない。
そもそもHTMLを理解しているのか。
0842名無しさん@お腹いっぱい。02/02/25 19:58ID:hnsr9Lul
先生!たとえば、
if ($hoge eq 'A') { print "Aです"; }
ってあったとしまして、
$hogeが'B'であったときも"Aです"ってprintしたいのですが、
どのように条件に書き加えたらよいのでしょうか。。。?
0843名無しさん@お腹いっぱい。02/02/25 20:08ID:???
>842
第1段階
if ($hoge eq 'A') { print "Aです"; }
if ($hoge eq 'B') { print "Aです"; }

第2段階
if ($hoge eq 'A') { print "Aです"; }
elsif ($hoge eq 'B') { print "Aです"; }

第3段階
if ($hoge eq 'A' || $hode eq 'B') { print "Aです"; }
084484302/02/25 20:08ID:???
タイプミスすまん。
084584202/02/25 23:02ID:???
>>843
先生!ありがとうございました。
第2段階でずっとやっていて、肥大化しまくりだったのが
第3段階でダイエットできそうです。
0846名無しさん@お腹いっぱい。02/02/25 23:53ID:5vLgtcLX
投票のスクリプトなんですが、
name=hoge
name=hoge2
のような感じで、
投票ボタンを押すと1ポイント加算されて
サブルーチンでその投票率を割り出して表示するには
どうすればいいのでしょう?

スクリプトに組み込めるようにしたいのですが。
0847名無しさん@お腹いっぱい。02/02/25 23:54ID:???
>>846
投票率?

票/全体の票の合計*100;
0848名無しさん@お腹いっぱい。02/02/26 00:05ID:???
>847
それは得票率。
投票率は、投票者/有権者
0849名無しさん@お腹いっぱい。02/02/26 00:09ID:???
>>848
>846が投票率を聞いていると思うか?
0850名無しさん@お腹いっぱい。02/02/26 00:11ID:???
>>848
勉強になった。
0851名無しさん@お腹いっぱい。02/02/26 00:13ID:???
>848-849
どっちも言ってる事は正しいな。
一番間違えているのは>846か?
もう少しわかりやすい表現をしてほしいな。
漠然としすぎ。
0852名無しさん@お腹いっぱい。02/02/26 00:20ID:???
>851
しかもマルチポスト臭い。
前にもどこかで同じ質問見て、回答した。
同じ間違いをしていた>得票率と投票率
0853はげ02/02/26 01:11ID:ydhHR8oV
北島サブルーチン
0854Name_Not_Found 02/02/26 02:41ID:???
怪僧サブルーチン
085584602/02/26 02:51ID:VU0igEUE
>>851
えーと、846です。質問の仕方が悪くてすみません。
ですが、私が悪いことにしないでください。
あと、マルチポストはしませんよ。あのやり方嫌いですから。。。

いろいろとすみません。
その得票率というのを割り出して表示するにはどうしたらよいのでしょうか?




0856名無しさん@お腹いっぱい。02/02/26 02:55ID:???
>855
>847の計算式に変数を当てはめて、答えをprintする。
それだけだろ。
得票数や全体の票の合計の数え方から教えないといけないのか?
085784602/02/26 02:58ID:VU0igEUE
できれば。。。
厨房ですみません。嫌わないでください。
0858名無しさん@お腹いっぱい。02/02/26 03:05ID:???
>857
厨房だと自覚してるなら直せ。
わからないなら自分で勉強しろ。
他人のおんぶでだっこか?
俺はお前が嫌いだ。

まず今、自分でなにができて何ができないんだ。
足し算わかるか?
割り算わかるか?
CGIの設置できるスペースは持ってるのか?
HTMLはわかるのか?
無料配布CGIの設置くらいできるのか?
スクリプトの改造の経験はあるのか?
スクリプトを自分で組めるのか?
ファイル操作するスクリプトを自分で組めるのか?

お前の話し方を聞いてると、そのスクリプトをここの住人に書かせたいように見えるな。
もしそのつもりなら、無料配布スクリプトを探した方がいいぞ。
ここの住人はそこまで暇でも親切でもない。
自分でできることを自分でやろうとしない奴には誰も親切にはしてくれない。
自分でできることを探せ、考えろ。
085984602/02/26 03:13ID:VU0igEUE
>858
お答えします。
自鯖にWinでアパッチ入れて
今、CGIを改造しています。

CGIを設置できるスペースはあります。
改造経験は掲示板にフォントカラーの選択機能を取り付けれるくらいです。

ファイル操作はログファイルの読み込みぐらいならできます。
スクリプトを組むスキルまではまだないです。
せいぜい改造ぐらいです。
0860ほげ02/02/26 03:22ID:ydhHR8oV
自鯖って自分で釣って来た鯖のこと?
0861名無しさん@お腹いっぱい。02/02/26 03:24ID:???
>860
その鯖にstdoutするらしいけど、腐りやすいからなぁ。鯖は。
086284602/02/26 03:24ID:VU0igEUE
すいません。自宅サーバーです。。。
0863名無しさん@お腹いっぱい。02/02/26 03:29ID:???
>859
ログファイルの読み込みができるなら、そこから得票数と総数をカウントしろ。
変数の作り方がわかるなら、「総数用の変数」「hogeの得票数」「hoge2の得票数」「hoge3の得票数」・・・と変数を作れ。
あとはログを読み出しながら、hogeの得票ならhogeに+1、hoge2の得票ならhoge2に+1としていけば得票数は数えられるだろ?
得票総数は「どの得票であっても総数+1」すればいいだけだ。
その集計が終わったら、>847の式に当てはめて計算しろ。
計算が終わったらそれを表示させろ。

加算除算の仕方は↓を見ろ。
http://tohoho.wakusei.ne.jp/wwwperl1.htm#CalcOperand

他にもわからない事があったらここで調べてみろ。
http://tohoho.wakusei.ne.jp/
一通り見ておいて損はないページだ。
0864名無しさん@お腹いっぱい。02/02/26 03:30ID:???
>自鯖にWinでアパッチ入れて
まずこれが間違ってる。
自鯖にMacでアパッチ入れなきゃ。
自鯖=Unixで、TELNETで入れたのかな?アパッチを。
もう眠くて日本語よくわからないや?
0865名無しさん@お腹いっぱい。02/02/26 03:30ID:???
それと。
自分でよく意味のわからない単語は知ったかぶって使うな。
知ってる人間を混乱させるだけだ。
サーバーとクライアントの違いくらい勉強しろ。
086684602/02/26 03:33ID:VU0igEUE
ご迷惑をお掛けしました。
しばらく勉強をして来ます。
086786402/02/26 03:34ID:???
>865
つっこみあんがと。ダウンなので寝るです
086884602/02/26 04:02ID:VU0igEUE
全体の項目の中の$hoge1の数はどうやって出せばいいのでしょうか?
086984602/02/26 04:03ID:VU0igEUE
書き忘れました。
$hoge1=バナナ
だとして
バナナの数を求める場合です。

0870名無しさん@お腹いっぱい。02/02/26 04:20ID:Lws/5PwU
項目数が不定の場合はハッシュ(連想配列)に入れればよい。
while (<FILE>) {
chomp ;
$count ++ ;
$hoge{$_}++ ;
}
foreach(keys %hoge ){
print "項目 : $_ 回数 : $hoge{'$_'}\n" ;
}
print "$hoge\n" ;
ファイルオープンクローズは省略してます。
087187002/02/26 04:59ID:Lws/5PwU
ああ、間違えた。最後のprintは$countだ。。
というか・・846さんの問いとちょっとずれた回答だなあ・・・
忠実に答えるなら、
while(<FILE>){
chomp ;
$count ++ ;
if ( $_ eq 'バナナ' ) { $hoge1++ ;}
if ( $_ eq 'りんご' ) { $hoge2++ ;}
}
print "バナナ $hoge1個 りんご $hoge2個 全部で$count個\n" ;

こんな感じでしょうか。
087284602/02/26 05:24ID:VU0igEUE
870さん
ありがとうございました(泣
おかげで完成しました。

すごく感謝しています。
ほんとにありがとうございます。
0873名無しさん@お腹いっぱい。02/02/26 17:43ID:vFUBaFo2
教えてください。
あるcgiファイル(Cで作ったバイナリファイル、変更不可)にperlでフィルタを
かけてperlの中からキックしてやる処理を行おうとしています。

open(*i, *o, "aaa.cgi", $param)
で起動かけてるんですが、この渡し方だとgetメソッドでわたるみたいなのです。
どうやらこのcgi、postメソッドで引数を取得しているらしいのですが、postメ
ソッドへの値の渡し方がよくわかりません。受け取り方ならどこにでも乗ってる
んですけど。

知ってる方、教えてください。お願いします。
087487302/02/26 17:44ID:vFUBaFo2
失礼しました。
open->open2の間違いです。
0875名無しさん@お腹いっぱい。02/02/26 22:58ID:???
何のためにopen2使ってるのかを調べなおせ。
0876名無しさん@お腹いっぱい。02/02/26 23:07ID:G1R05+XZ
掲示板の文字コードをShift_JISからUTF-8に変換したいんですが、

decodeサブルーチン内
→ 現状 : &jcode'convert(*value, "sjis");
→ 変更 : &jcode'convert(*value, "utf8");


headerサブルーチン内
→ 現状 : <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
→ 変更 : <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">

でいいのでしょうか?
ちなみに文字コードの変換はエディタで終わってます。
0877名無しさん@お腹いっぱい。02/02/26 23:09ID:???
>>876
そらそうだ。
0878名無しさん@お腹いっぱい。02/02/26 23:28ID:???
jcode.plはUNICODEをサポートしていない。
0879名無しさん@お腹いっぱい。02/02/27 00:02ID:SOuE237T
>>878
ゲッ、ではどうすればいいんでしょうか?
0880名無しさん@お腹いっぱい。02/02/27 00:11ID:CwyphmC/
>>995
激しく同意
0881名無しさん@お腹いっぱい。02/02/27 00:27ID:???
>>879
Jcode.pmを使う。

use Jcode;
my $utf8 = jcode(\$value)->utf8;

あと、perl4でなければ、jcode.pl使う時にその書き方はヤメレ
jcode::convert(\$value, 'sjis');
0882名無しさん@お腹いっぱい。02/02/27 00:31ID:nZ+PTVkR
Perl勉強するのに、いい本を教えれ。高いのかなぁ・・
やっぱ参考書買ったほうがいいですよね?みなさんどうやって覚えたの?
掲示板とか作ってみたいのですが。
088388202/02/27 01:02ID:???
スレ見つけました(;´Д`)
すいましぇん・・。
0884名無しさん@お腹いっぱい。02/02/27 09:44ID:jpwD5RBs
$A = 1 / 3
を0.3333333・・・ではなく、桁数を制限して0.33にするのはどうすれば良いのでしょうか?
0885名無しさん@お腹いっぱい。02/02/27 09:46ID:???
>>884
sprintf("%.2f",$A);
088688402/02/27 10:23ID:jpwD5RBs
>>885
有り難う御座います!
088787302/02/27 11:09ID:/GyUzfOU
>>875

引数を標準入力へ渡すのは出来てるのです。
teeコマンドで、確認しましたので。

perlモジュールからcgiをキックするとき、メソッドを環境変数に
設定してあげればいいのかなぁ・・・・。
088888402/02/27 13:55ID:jpwD5RBs
たびたびすいません。
リスト表示させる構文の中で

use integer;
$A = $B / $C;

を記述すると最初の情報しか表示されなくなります・・・
何が問題なのでしょうか?
0889名無しさん@お腹いっぱい。02/02/27 13:58ID:???
>>888
0890名無しさん@お腹いっぱい。02/02/27 14:02ID:???
>>888
use integer;
の意味わかってる?
089188402/02/27 14:20ID:jpwD5RBs
素人なので・・・
手元のレファレンスブックをパラパラと参照しているのです。
ちなみに、use integer; をとっても最初の情報しか表示されないので、
状況は変わらないです・・・。
0892名無しさん@お腹いっぱい。02/02/27 14:35ID:???
>>891
>最初の情報しか

??
0893名無しさん@お腹いっぱい。02/02/27 15:07ID:uzDDNMO0
少し脳みそを貸して下さい。
返信できる掲示板を改造し、親記事への返信に対してradioboxで5段階の採点
ができるようにしました。が、たまに採点がおかしくなります。

1ページに表示されている全ての返信記事に一気に採点できるようにしました。
$noは親記事のNo. $res_noは返信記事のNo.です。
簡単に書きます。
-------■フォーム部分■---------
[最高:<INPUT TYPE=RADIO NAME=\"($no)-$res_no\" value=5>]
[良い:<INPUT TYPE=RADIO NAME=\"($no)-$res_no\" value=4>]
のようなものをあと3つ
-------■フォーム部分■---------
0894名無しさん@お腹いっぱい。02/02/27 15:07ID:uzDDNMO0
ログの形式:<>で区切ってます。
$x1が親記事の番号で$x2が返信記事の番号です。
行の最後に採点のためのデータを6つ追加しました。
$xjが合計点で、$xe〜$xiまでが各採点の数。

-------■ログの形式■---------
130<>1<>名前<>タイトル<><><>親記事のコメント<>#ff6633<><><>02/02/26(Tue)02:29<>0.XuCN0FGrIKQ<>1014702931<>0<>0<>0<>0<>0<>0<>
(130)<>1<>名前<>タイトル<><><>親記事への返信のコメント<>#ff6633<><><>02/02/26(Tue)02:29<>0.XuCN0FGrIKQ<>1014702931<>0<>0<>0<>0<>0<>0<>
-------■ログの形式■---------
0895名無しさん@お腹いっぱい。02/02/27 15:08ID:uzDDNMO0
-------■受け取り側■---------
ログから全記事を@all_linesに読み込む。
while (($key, $value) = each %in){
if( $key =~ /^%28\d+%29-\d/ ){
$key =~ s/^%28(\d+)%29-(\d+)/$1,$2/ ;
foreach (@all_lines) {
if( /^\($1\)<>$2/ ){
my($x1,$x2,$x3,$x4,$x5,$x6,$x7,$x8,$x9,$xa,$xb,$xc,$xd,$xe,$xf,$xg,$xh,$xi,$xj)=split(/<->/);
if($value == 5){ $xe = $xe+1 ;}
elsif($value == 4){ $xf = $xf + 1;}
elsif($value == 3){ $xg = $xg +1;}
elsif($value == 2){ $xh = $xh +1;}
elsif($value == 1){ $xi = $xi +1;}
else{ エラー処理;}
$xj = ($xe * 5) + ($xf * 4) + ($xg * 3) + ($xh * 2) + ($xi * 1);
push(@new, "$x1<>$x2<>$x3<>$x4<>$x5<>$x6<>$x7<>$x8<>$x9<>$xa<>$xb<>$xc<>$xd<>$xe<>$xf<>$xg<>$xh<>$xi<>$xj<>\n");
}else { push(@new, $_ );}
}
$#all_lines = -1 ; #これは必要?
@all_lines = @new ;
$#new = -1 ;
}
}

@all_linesをファイルに書き込む。
-------■受け取り側■---------
0896名無しさん@お腹いっぱい。02/02/27 15:08ID:uzDDNMO0
受け取り側がすごく間抜けなコーディングですが、
もっとスマートな方法はないものでしょうか?
さらにバグがあるようです。たまに採点した以上に採点の数が増えます。
0897名無しさん@お腹いっぱい。02/02/27 15:09ID:???
スクリプト改造工房 Part4
http://pc.2ch.net/test/read.cgi/php/1012839651/l50
0898名無しさん@お腹いっぱい。02/02/27 15:14ID:uzDDNMO0
>>897
すみません。書き直します。
0899名無しさん@お腹いっぱい。02/02/27 16:08ID:uzDDNMO0
perlでランキングするにはどうすればいいですか?

連続でなく(1,2,3,4,5....)
同点場合は同じ順位になるやつです。(1,2,2,2,5,6,7)
0900名無しさん@お腹いっぱい。02/02/27 16:11ID:???
>>899
同一順位の奴リストで記憶して一気書き。
0901名無しさん@お腹いっぱい。02/02/27 17:02ID:s1a46wqm
先生!以下の文章を短縮する手だてはないものでしょうか。
if ($hoge eq '001_001' || $hode eq '001_002' || $hode eq '001_003'、、、、|| $hode eq '001_050') { print "001グループです。。。"; }

10進法で
$hogeが'001_001'、'001_002'、〜(中略)〜、'001_050'の時に、"001グループです。。。"をprintしたいのですが。。。
テキストエディタの左右のスクロールバーが大変です!(;´Д`)
0902名無しさん@お腹いっぱい。02/02/27 17:05ID:???
if ($hoge =~ /^001_0\d\d$/) { print "001グループです。。。"; }
00や51〜99も入っちゃうけどな。
それを除外する方法は自分で調べて。
0903名無しさん@お腹いっぱい。02/02/27 17:25ID:???
>>901
$hoge =~ /0(\d\d)_0(\d\d)/;
print "グループ1" if ($1 == 0 and $2 >=1 $2 <= 50 );

動作確認してないけど。

0904名無しさん@お腹いっぱい。02/02/27 17:29ID:???
>903
$1 == 1
にしておかないと、グループ0になりますぜ?
090590102/02/27 19:21ID:???
先生方!レスありがとうございます。
902さんの
if ($hoge =~ /^001_0\d\d$/) { print "001グループです。。。"; }
これで一応問題がないかのように(;´Д`)動作しておりますが、このまま使い続けちゃマズイですか?
もちろん51〜99なんて存在しないです。。。

903さんの文章は今のおいらじゃ理解できないみたいです。。
もうちょっと経験値をためてレヴェルうpしてから、改めて読み直すことにします
0906名無しさん@お腹いっぱい。02/02/27 19:56ID:???
>>901
っつーか、根本的にもっと綺麗にデータ処理をしようと思わないのだろうか。
0907名無しさん@お腹いっぱい。02/02/27 20:42ID:uzDDNMO0
ロックファイルの処理がうまくいっているか試す方法ってあります?
自分で同時に書き込むってできないし。
#ローカルサーバ立ち上げてます。
0908名無しさん@お腹いっぱい。02/02/27 20:47ID:???
>>907
漏れの場合、ロックしたままランダムな時間 sleep() 。
でも、もっとうまい方法があるような気が。
0909名無しさん@お腹いっぱい。02/02/27 21:33ID:???
>>907

1.ロック解除ルーチンをコメントアウトして実行。
ロックがかかっているか確認。

2.そのプログラムをもう一度実行。
六句により書き込めないことを確認。

3.コメントアウトした部分とロックを元に戻し実行。
書き込めればロックは作動している。

サーバ立てるのはいいがOS位書いてほしかった。
0910名無しさん@お腹いっぱい。02/02/27 22:02ID:uzDDNMO0
>>907
ありがとうございます。
サーバはLinuxです。
0911名無しさん@お腹いっぱい。02/02/27 22:34ID:TYQQ82Xg
Perl で、一旦、
Helloを表示して、3秒くらいの処理行ったあとその出力を表示する
のってどうやるんですかね?(ブラウザでアクセス)
前に
print "Content-type:text/html\n\n";
print "hello";
sleep(3);
print "hoge";

でやったらいかなかったので調べてみたらモジュール使うって見たんだけど、
最近やろうと思ってしらべたら前のResultをブックマークし忘れたので
どなたかおしえてくりんぴ
0912名無しさん@お腹いっぱい。02/02/27 22:36ID:???
$xxx = now;

//wait 3 sec
while(now < $xxx + 3);
0913名無しさん@お腹いっぱい。02/02/27 22:44ID:TYQQ82Xg
>912
Really?
0914名無しさん@お腹いっぱい。02/02/27 23:15ID:???
バッファリングしなければいいのでは
0915あさみ02/02/27 23:57ID:mGPuUcmq
大量のファイル(ディレクトリにまとめて入ってる)から
それぞれ同じ行をとりだして、
並べて表示させるにはどうしたらいいですか?

たとえば000.txt から 999.txtっていうのがひとつのディレクトリに
あって、ぜんぶのテキストから55行目だけをとりだしてそれを並べて
表示させたいのですけど。達人さんおねがいします。
0916名無しさん@お腹いっぱい。02/02/27 23:59ID:???
>>915
スタブ

後は、

open(DATA,"a.txt");

@dat = <DATA>;

print $dat[54];
0917あさみ02/02/28 00:03ID:Dy5p0v9j
>>916
スタブって????

それだとひとつのファイルからしかとりだせないじゃないですか。
ぜんぶのファイルを一度に操作しようとおもって
open(DATA,"dir/*.txt");
と打ってみたけどそこから先どうしていいかわからなくなってしまったんです。
0918名無しさん@お腹いっぱい。02/02/28 00:07ID:???
>>917
スタブじゃないグロブだ。それにすべての答えがある。さぁ、検索。
0919あさみ02/02/28 00:39ID:Dy5p0v9j
>>918
だめです。わかんない。
型グロブってまだやってないのだ。。。。
0920名無しさん@お腹いっぱい。02/02/28 00:39ID:???
>>919
型グロブじゃないよ。
0921あさみ02/02/28 01:05ID:Dy5p0v9j
>>920
わかんないよ。。。

@files = glob("*.txt");

foreach $file(@files){
open(DATE,"$file");
@dat = <DATE>;
print $dat [54];
}

これでもエラーでるよ。。。
0922あさみ02/02/28 01:28ID:Dy5p0v9j
わあああああああああ、できたよ!!!!!!!
ありがとしゃんしゃん!!!!>>920
ちなみにこれでできたよ!↓↓↓

@files = glob("*"); #全てのファイル名が返される

foreach $file (@files){
open (IN,"$file");
@dat = <IN>;
print "$dat[76]<br>";
close IN;
}

ふぅううううう。
0923名無しさん@お腹いっぱい。02/02/28 11:48ID:GCMIT34v
自動生成されるアンケートのページ(NAME=は数字だがバラバラ)で、
全てのradioboxがチェックされているかを調べるにはどうしたら
いいでしょうか?
0924名無しさん@お腹いっぱい。02/02/28 11:53ID:???
foreach(数字..数字){
if(!$FORM{"$_"}){print qq(入力漏れあり);}
}
0925名無しさん@お腹いっぱい。02/02/28 20:22ID:PHCtHVWr
>>924
お返事ありがとうございます。なるほどーですねー。

連続してない数字だったので、ちょっと応用します。
ちなみにNameが文字列だった場合は、はやりその文字列を
hiddenか何かで受け渡すしかないんですかねぇ、やっぱ。


0926名無しさん@お腹いっぱい。02/02/28 20:32ID:???
>925
foreach(keys %FORM){
if(!$FORM{"$_"}){print qq(入力漏れあり);}
}

こういう方法もあるにはあるけど、他の入力まで処理するのが難点。
余計なフォームがないならこれでもいける。

hiddenで渡すなら、受け取るName文字列をリスト配列にでもして作っておいた方がいいと思うぞ。
受け取るものが決まってるなら。
0927名無しさん@お腹いっぱい。02/02/28 21:24ID:gAyBZL7c
ちょっと質問させてください。

www.hogehoge.com/foo?id=bar

というように拡張子をつけない CGI などのスクリプトをたまに見かけますが,
これはどういうメリットがあるのでしょうか。
また,このように拡張子をつけないで実行するには
.htaccess でこのファイル名だけ CGI として扱うようにすればいいんでしょうか。
0928名無しさん@お腹いっぱい。02/02/28 22:07ID:PHCtHVWr
>>926
あー、賢いなー。なるほどー。
if(!$FORM("mode") とかかませばOKそうです。
ありがとうございました。
0929名無しさん@お腹いっぱい。02/02/28 22:22ID:???
>>927
メリットはCGIを作った人に聞いてくれ。
とりあえず思いつくのは、リンクを張るときに4バイト稼げるとか、
作った人にとって.cgiって付くURLがかっこ悪いとかかな。
あとは、www.hogehoge.com/foo?id=bar の実体は実は
www.hogehoge.com/foo/index.cgi?id=bar だったとか言うこともあり得るし。

.htaccessについてはまぁ、知らん。
偉い人スレで聞けば?
0930名無しさん@お腹いっぱい。02/02/28 22:54ID:???
実行可能ファイルを拡張子で識別するべきじゃない、とかなんとかあった気がしなくも無い。
レス数が900を超えています。1000を超えると表示できなくなるよ。