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

Perl 初心者コーナー Part21

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/03/18 18:47ID:Dujz7IUF
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。


CGIだけど、なんか質問ある? Part 9
http://pc.2ch.net/test/read.cgi/php/1041530204/
参考書籍の話題は、【Perl,CGI】参考書籍 第三版
http://pc.2ch.net/test/read.cgi/php/1030209573/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般/Part2】
http://pc.2ch.net/test/read.cgi/php/1030548610/
スクリプトの改造依頼は、【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/

過去ログやお勧めサイトは >>2-10
0175nobodyさん03/03/26 18:37ID:???
>>174
パーミッションは?
ファイルの先頭に./(ドットスラッシュ)つけてる?
0176座敷荒氏03/03/26 18:51ID:SqsuYLcB
パーミッションは-rwxrwxr-xとなっていて
一般ユーザー権限で試しています(言い方あってますか?)

>ファイルの先頭に./(ドットスラッシュ)つけてる?
つけていません。参考書に記載がないので。
これはどこに記述すればいいのですか?
#! /usr/bin/perl の先頭に記載して
./#! /usr/bin/perl
とすればよいのでしょうか?
0177nobodyさん03/03/26 18:52ID:???
$ chmod u+x calc
$ ./calc
ってことだな。
つまり、Perl より先に Linux の勉強をしる、ということだ。
0178座敷荒氏03/03/26 18:56ID:SqsuYLcB
あ、できました。
ありがとうございます。

言い訳になりますがRedHatも
こないだPerlのために用意したばかりで
勉強不足でした。

なぜこれでOKなのかは自分で勉強したいと思います。
本当にありがとうございました。精進致します。
0179nobodyさん03/03/26 19:16ID:???
>>173
ifって重いの?
0180nobodyさん03/03/26 19:27ID:???
>>179
少なくてもwebprogでifが重いとかいってるやつは、
短絡的で思い込みが激しくて相対的な思考ができない馬鹿。たいていA型
0181nobodyさん03/03/26 20:29ID:???
ifが重い・・・分岐はパイプライン処理を阻害するらしいが、こういう分野でそんなこと気にしていたら
やっていられないよな。それにPerlならユーザの知らないところでたくさんの分岐を行っているはずだ。
0182nobodyさん03/03/26 21:09ID:???
ifを使って処理が複雑になるなら、使わない方がいいだろうけど。

アホには妙な先入観があるんでしょう。困った。
0183nobodyさん03/03/26 21:15ID:???
>>173
mapは戻り値を捨ててはいけないぞう。ぷぅ。

構造は、map BLOCK LIST、返り値は、LISTの各要素についての、
BLOCKの結果のリスト。
0184nobodyさん03/03/27 00:54ID:8Ff5snZV
Perlの事を詳しく知りたいので勉強始めたのですが、正直どこ
から初めていいかよく分からなくなってきてしまいました。

MacOSXを仕事の関係で自宅でも使用しているのでperlは使え
る状態まで設定が終わり、Perlの解説本(とほほWWW入門)
を買ってきたのですが、理解が浅く、自分のやってみたい事
はあたまには浮かぶが、実際にperlで書けない状態です。

慣れるにはどのようにしていったらよいのでしょうか?
本当に困ってます。
馬鹿ですみません。
0185nobodyさん03/03/27 01:02ID:aF0pcOGY
漏れも初心者です。
とほほWWW入門がどんなのか知らないけど
初めから読む。
本に書いてあるプログラムを実行する。
分からなかったらそれを書き換えて自分が納得するまで
いじる。ってのをしてます。
独習Perl読んでる。

0186nobodyさん03/03/27 01:17ID:???
>>185
そうなんですよね。
どうしても仕事で使うので、いろいろ必要な所をかいつまんで
いるのですが、時間が足りなくもうなんかダメダメになりそう
です。マジで泣きながらキーボード打ち込んでます。

今は使えそうなフリーの素材を使って少し命令をいじって自分
のマシンでテストしています。

俺には向いてないのかなぁ。このままじゃあ、クビになるかもし
れない、でも、ここの皆さんはできている人が多いみたいだし。

生き残るなんてできないのかなぁ。

愚痴になってごめんなさい。
もうちょっと頑張ってみます。
0187nobodyさん03/03/27 01:23ID:???
いい勉強法があるといいよね。
要するにその「いい勉強法」にたどり着けるかどうかが分かれ目なんだろうなと思う。。
0188鯖仙人 ◆HwSabaHQjA 03/03/27 01:36ID:???
>>186
ある程度のレベルに達してないとセキュリティ面で穴が空きそうだのう。
もしもの事があればおおごとじゃから諦めなされ。
だからと言ってフリーのものを少々b改造して著作権表示を
すり替えたりせんようにな。社会人としてのルールじゃ。

ここの板が過疎化している通り、webprogを自在に操れる人々は
ネット人口に対してはごく一部じゃ!まだ遅くはないぞ!
何事にも近道は無い。じっくり、まったり勉強なされ。
0189鯖仙人 ◆HwSabaHQjA 03/03/27 01:42ID:???
そうそう忘れておった。perlのセキュリティを学ぶには
技術評論社の「プログラミングによるセキュリティ強化ガイド」がまあまあいいぞえ。
自分の能力を向上させる為なら金は惜しむな。先人の偉大なる著作物を手に入れるのじゃ。
0190nobodyさん 03/03/27 02:53ID:???
というか・・・
とほほな人がイタタな人だから心情的にはお薦め出来ないってのはある。
それに、perlの参考書を買うのもいいのだけどその参考書は二次生成物だから
本の駄目なレベルまでわかるレベルになればマスターした事になると思われ
そいうことで、本としてお薦めは駱駝本になるのだけどね。

別に本を買わなくてもウェブ上で転がってる資料でも問題無いし、
別に本を買ったからといって覚えれる物でもない。
019114103/03/27 14:57ID:???
>>142->>145
ありがとうございます。
出来ました。
019217303/03/27 18:19ID:???
ひどいよ!みんな!

条件分岐させるのがいい場合もあるだろうけど、
最初から「これ!」て定義したいものには、if文とかより
もっと効率のいいやり方があるんじゃないかって思っただけだよ!
僕はO型でつ。
バカだけど、バカにされると一応悲しむだけの感情はあるんだぞ!

>>184
戻り値とか返り血とか何でつか
簡単な式でも略して書かれるとわからないレベルでつ
ひもとけないのでつ
ていうか、僕の所有する5冊のPERL本では簡略化されたものは出てこないので
順をおって書かれてないとわからない。わからないー

ほんとにお願いします。
いっこづつ解説してください。心からお願いします
0193nobodyさん03/03/27 18:23ID:???
>>192
その話し方じゃ教えたくないと思うのはオレだけじゃないはず。
0194nobodyさん03/03/27 18:38ID:???
>>193
禿同
0195nobodyさん03/03/27 19:04ID:???
レス番くらい間違えないでください。
0196nobodyさん03/03/27 20:16ID:???
>>192
Perl流の省略の仕方が理解できない分際で、
if文が重いとかほざくな。

足し算ができない奴に掛け算ができるわけがない。
自分が理解できてることだけでスクリプト組んでろ。
0197nobodyさん03/03/27 20:43ID:???
>196

いいこというなぁ。

漏れも頑張るか・・・。
0198nobodyさん 03/03/27 21:58ID:???
というか、
map使うのが一番メモリー食うらしいですけどね・・・

>>192
まぁ、順序追ってその時その時で覚えた関数がどう使えるかというのを理解しつつ
やっていくとよいと思うけどね。

いっぺんに効率の良い処理を書こうと思ってもそれは無理だから一度ソース書いて
それがどうやれば見やすくなるかって考え方で逝くほうがいいと思う
0199名無しさん@Meadow03/03/27 22:06ID:???
>>198
いいこと言うなぁ。
これで決まりや。
0200nobodyさん03/03/27 23:06ID:AfQiNFrt
perlを使ってウエブのテキストエリアの部分に文字を
挿入する事ができるんでしょうか?
0201nobodyさん 03/03/27 23:15ID:???
>>200
SSIでないかい??
0202nobodyさん03/03/27 23:18ID:???
<textarea>文字</textarea>
でいーじゃん
0203nobodyさん03/03/27 23:25ID:???
>>201
うーんと、ちょっと違うかもしれません。

要は今見ているページのテキストエリアにperlのgetもしくは
postで任意の文字を入れる事がperlが動作するマシンから実行
できるのかなという事なんですが、説明がうまくできなくてご
めんなさい。
0204nobodyさん03/03/27 23:31ID:???
?????
0205nobodyさん03/03/27 23:35ID:???
>>204
うまく説明ができない・・・。

ブラウザからgetやpostで情報を受け取る事ができるなら、
ブラウザのテキストエリアに送る事もできるのでしょうか?
0206nobodyさん03/03/27 23:35ID:???
>perlのgetもしくはpost

アホですか?
0207nobodyさん 03/03/27 23:38ID:???
>>205
よーわからんけどssiじゃないのそれ?
0208nobodyさん03/03/27 23:41ID:???
>ブラウザのテキストエリアに送る

全然わかんない
0209nobodyさん 03/03/28 00:07ID:???
Javascriptのお仕事だな。
0210nobodyさん03/03/28 00:12ID:???
>>206
すみません・・・。
どこがアホなんでしょうか?

教えてください
0211nobodyさん03/03/28 00:13ID:???
>>205
は、基本的なHTTPプロトコルを学ぶべき。

HTML文書のフォームから送ると言うことは、FORMタグのアクションに指定されたページに飛ぶのと同じ。
0212nobodyさん03/03/28 00:16ID:???
>>210
うまく説明できないなら、まず
言いたいことを整理するか、
やりたいことの具体例を示しなさい。

別にあせらんでもこのスレは逃げません。
0213nobodyさん03/03/28 00:21ID:???
>>212
とりあえず思いついた例として
掲示板に書き込みをする際にブラウザを使った書き込みではなく
自分のマシンからperlにて書き込みができないのかなと。

こういう感じでよろしいのでしょうか?
0214nobodyさん03/03/28 00:25ID:???
>>213
できます。
HTTPをしゃべるスクリプトを書きなさい。
以上。
0215nobodyさん03/03/28 00:36ID:OXxoJAYf
>>214
ありがとうございます。

見よう見まねですが自分で作った掲示板に、自分で作った
perlで書き込みができるのかテストしてみます。

もしよろしければそのhttpをしゃべるスクリプトの例とい
うのがどのように探せばあるのか、教えていただけません
か?

よろしくお願いします。
0216403/03/28 00:40ID:JsShpJ/5
>>213
できます。
HTTPとSocketモジュールの使い方勉強したらすぐできる。
0217nobodyさん03/03/28 00:42ID:td6NGscT
http://218.44.246.37/~2ch/
0218403/03/28 00:43ID:JsShpJ/5
>>215
http://www.scenecritique.com/museum/home/guess/gesuds9/perlduke.htm
0219nobodyさん03/03/28 00:50ID:???
>>216
どうもありがとうございます。

長々と説明を続けてしまって申し訳ありません。
アホなので、許してください。

早く皆さんのように質問に答えられるようにスキル
を身につけてみます。

もしその前に挫折して聞きに来る事があるかと思い
ますが、よろしくお願いします。
0220nobodyさん03/03/28 00:51ID:???
>>215
荒らしにつかわれることを懸念してか、
POST のサンプルスクリプトは、あまり見つからない。
# まあ、これは俺の検索が甘いだけかもしれんが

書き込むだけなら GET でも可能だし、これなら
Perl Socket HTTP あたりをキーワードにして検索すれば
いくらでも見つかる。
GET で HTTP での会話を知ってしまえば、POST だって簡単。

tcpdump に類するツールを所有しているなら、
それでWWWブラウザとHTTPサーバとの会話の様子を
覗いてみるのもお薦め。

>>218
oioi
0221nobodyさん03/03/28 01:08ID:???
>>214
簡単なサンプルならlwpcookにもあるんじゃない?
perldoc汁
022221103/03/28 01:10ID:???
ごめん。まちがった。
s/214/215/
0223403/03/28 01:30ID:JsShpJ/5
HTTPのRFCを一度読んでみたらいいと思う。
HTTPは比較的簡単プロトコルだと思うのでネットワーク関係の
プログラム作りたいならHTTP ClientやHTTP Serverを書いてみる
といいかも。
まじめに答えると、
http://x68000.startshop.co.jp/~68user/net/
とか、いいかも。GETはあります。
POSTは上に書いてあるとおりContent-Lengthつけて、ヘッダと
ひとつ空行あけて送るデータを書けばいいだけです。
0224403/03/28 01:32ID:JsShpJ/5
どうでもいいが
HTTP プロトコル
と書くのは、
Perl言語
と書くのと同じだと思う。
0225nobodyさん03/03/28 01:33ID:???
>>221
perldoc厨死ね
0226nobodyさん03/03/28 01:43ID:???
LWP使え。
0227nobodyさん03/03/28 02:00ID:OFR1eFyu
質問です。
ネット上のページを取得するのに、LWP::Simpleとwgetを使う方法があるとのことで、
それぞれで実際に取得するところまで漕ぎ着けました。
対象ファイルのサイズは20〜50kb程で、それぞれの実行時間はほぼ同じでした。
このスクリプトは共用鯖でCGIとして実行するので、負荷が気になります。
負荷の上ではどちらが良いのか、もしくは他の方法があるのか、お教えください。
0228nobodyさん03/03/28 02:05ID:???
どうでもいいが
Perl言語
と書くのは、
チゲ鍋
と書くのと同じだと思う。
0229nobodyさん03/03/28 03:06ID:???
>>228 へ?(色んな意味で)
0230nobodyさん03/03/28 03:46ID:???
>>229
チゲ == 鍋
0231nobodyさん03/03/28 03:55ID:???
どうでもいいが
Perl言語
と書くのは、
POP言語
と書くのと同じだと思う。
0232nobodyさん03/03/28 06:06ID:???
早い話がどうでもいいスレ。
0233nobodyさん03/03/28 09:23ID:???
ほんとすんませんが、お聞きしたいことがあります。
Perl5以上で記述された、「URL通知システム」どこにあるか知りませんか?
たとえば、あるページを見ている人が自分の携帯電話に、そこで指定されているURLをメールしたい。
そんなのなんですが、よく広告ページの携帯用出会い系サイトなんかで使われているやつです。
もし。公開しているところがあったら教えてください。
ほんとすんません・・・・・・・
0234nobodyさん03/03/28 09:30ID:CxnPNSFm
>>233
こういうんじゃないのか。
http://r.gnavi.co.jp/Waiting/?id=g852000
0235bloom03/03/28 09:35ID:Mi9Fl0u+
http://www2.leverage.jp/start/
0236初心者03/03/28 09:54ID:???
2つ質問があるのですが1つずつ・・・
クッキーを書き込みたいのです。
で、色々調べて回って、何とかこんな感じでできました。

#1 #!/usr/bin/perl
#2 use strict;&main;exit;
#3 sub main{
#4my $id = "abc";
#5my $value = "";
#6print "Set-Cookie: ".setcookie($id,\$value);
#7print "Content-Type: text/plain\n\n";
#8print "SetCookie!!";}
#9 sub setcookie{
#10my ($id,$cookie) = @_;
#11my $expires = "";
#12my $day = 1;
#13$$cookie =~ s/([^\w ])/'%'.unpack('H2',$1)/eg;
#14$$cookie =~ tr/ /+/;
#15if ($day > 0){
#16my ($mday,$month,$year,$youbi) = (localtime(time + ($day * 86400)))[3..6];
#17$youbi = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')[$youbi];
#18$month = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')[$month];
#19$year += 1900;
#20$mday = sprintf("%02d",$mday);
#21$expires = " expires=$youbi, $mday-$month-$year 00:00:00 GMT";}
#22return "$id=$$cookie;$expires\n";
#23 }

書き込めるのですが、ブラウザを閉じたら消えるようにしたいのです。
#12行目のmy $day = 1;の数字をゼロにしたけど、うまくいきませんでした。
同じく数字を消してもみましたが、うまくいきませんでした。
どこをどういじれば良いのか分からないので、どうか教えては頂けないでしょうか。
0237nobodyさん03/03/28 10:10ID:???
>>236
#15 を削除
#21 の「}」を削除
023823603/03/28 10:12ID:???
これが236を受けるスクリプトです。少々改造したいのですが、方法が分からなくて困っています。
Cookieの有無を調べて、abcというクッキーがなければよそに飛ばしたいのです。

#1 #!/usr/bin/perl
#2 use strict;&main;exit;
#3 sub main{
#4 my $id = "abc";
#5 my %cook = ();
#6 getcookie("abc",\%cook);
#7 print "Content-Type: text/plain\n\n";
#8 print "a:$cook{'a'}\n";
#9 print "b:$cook{'b'}\n";}
#10 sub getcookie{
#11 my ($id,$cook) = @_;
#12 my %cook = ();
#13 my $cookie = $ENV{"HTTP_COOKIE"};
#14 $cookie =~ tr/+/ /;
#15 $cookie =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2',$1)/eg;
#16 foreach my $x (split ";",$cookie){ my ($key,$value) = split "=",$x,2;
#17 $key =~ tr/ //d;
#18 $cook{$key} = $value;}
#19 foreach my $x (split ",",$cook{$id}){ my ($key,$value) = split ":",$x,2;
#20 $$cook{$key} = $value;}
#21 }

#13行目に my $cookie = if($ENV{'HTTP_COOKIE'},'abc' ) < 0 ){
print "Location:http://www.hoge.com/\n"; }
とでも書けば良いのでしょうか? それとも全然違う行に全然違う事を書けば良いのでしょうか?
何にしても初心者の私にはこれ以上は難しいでとても困っています。
どうか救いの手をお願いできないでしょうか?
023923603/03/28 10:15ID:???
237さん早速どうも有り難うございます。m(_ _)m
0240nobodyさん03/03/28 10:18ID:???
>>236
CGI側ではブラウザを閉じたことを判別できないので、無理です。
JavaScriptを併用すれば可能かもしれない。が、これ以上はスレ違い。
0241nobodyさん03/03/28 10:18ID:???
>>234
ありがとう御座います。
いいですねえ、こんなの。もっとシンプルに1っ子だけしか送れないやつでも良いんですけどね・
ええっと・・・・・そのですねえ・・・プログラムが置いてあるところが知りたいんですけど・・・・
すみませんが・・・・よろしくおねがいします・・・・・・
0242nobodyさん03/03/28 10:29ID:???
>>241
スレ違い。
0243nobodyさん03/03/28 10:30ID:???
ほんとだ!
024422703/03/28 11:40ID:???
スレ違いみたいなので「WebProg 初心者の質問」に移動します。
お邪魔しました。m(_ _)m
024523603/03/28 11:42ID:???
238に間違いが見つかりました。
#8 print "a:$cook{'a'}\n";
#9 print "b:$cook{'b'}\n";}は

#8 print "abc$cook{'abc'}\n";でした。<(_ _)>
0246nobodyさん03/03/28 16:44ID:I24HmqWV
たまに、html内に「%%HOGE%%」こんな記述を見るんですけど
これは一体なんの意味があるんでしょうか。
0247kyo03/03/28 17:25ID:b4ccXG3w
BBSをperlで作っているのですが、レス機能の付け方が良く分かりません。
どこか分かりやすい解説が載っているサイト知りませんか?
0248nobodyさん03/03/28 17:29ID:???
>>247
ログファイルに「スレ文」か「レス文」かを分けるなんらかの目印を入れる。
読み出しの時はその目印でレスかスレかの処理を分ける。以上。

他には書きようがない。
他人のBBSでも眺めれば?
0249nobodyさん03/03/28 18:02ID:???
CGIスレで誘導?されたのでこちらで質問させてください

apple,青森,40
orange,愛媛,20
strawberry,茨城,30
↑これがそれぞれ
@fluit = ('appe','orange','strawberry');
@from = ('青森','愛媛','茨城');
@price = (40,20,30);
こんな感じに配列に入ってるとき、たとえば下のようにすると、、、、

foreach (sort { ($price[$b] <=> $price[$a]) || ($a cmp $b) } 0 .. $#price) {
 print "$fluit[$_],$from[$_],$price[$_]\n";
}

apple,青森,40
strawberry,茨城,30
orange,愛媛,20
↑こうなると思うんですが、
ソートする条件をフォームから指定させたいんです。
たとえば、($FORM{'jyouken'} eq "fluit")ならfluitでソートって感じに・・・

どのようにすればいいでしょうか?(説明へたですいません)
0250nobodyさん03/03/28 18:03ID:???
あげ忘れましたすいません
0251nobodyさん 03/03/28 18:45ID:???
>>249あっちにもかいたけど
構造がだめっぽ 自分ならこうする

@data= (
{fluit=>'apple',from=>'青森',price=>40},
{fluit=>'orenge',from=>'愛媛',price=>20},
{fluit=>'strawberry',from=>'茨城',price=>30}
);

@data = @data[sort{$data[$a]->{$FORM{select}} cmp $data[$b]->{$FORM{select}] } 0 ..$#data];
for (0 .. $#data) {
  print "$data[$_]->{fluit},$data[$_]->{from},$data[$_]->{price}\n";
}
0252nobodyさん03/03/28 18:52ID:???
res有難うございます。
えっと、恥ずかしながら
@data= (
{fluit=>'apple',from=>'青森',price=>40},
{fluit=>'orenge',from=>'愛媛',price=>20},
{fluit=>'strawberry',from=>'茨城',price=>30}
);
これははじめて見たんで、何をしてるのか・・・調べてきます。
できれば弄るところが多くなると思うんで、そのままの構造でいきたいんですが、、、
0253403/03/28 19:08ID:JsShpJ/5
それは連想配列のリファレンスを配列として
扱っているのだと思います。違ってたらスマソ。
俺もこういうのちょっとガンバロ・・
025424903/03/28 19:19ID:???
}] } 0 ..$#data];
↓
}} } 0 ..$#data];
こうですね。動作確認できました。

しかし、なにをやってるか調べてもわからないので、
どう組み込んだらいいのか・・・
この解説ページないですかねぇ
02554 ◆oIfBpVov3. 03/03/28 19:32ID:JsShpJ/5
http://takenaka-akio.cool.ne.jp/doc/perl_kiso/reference4.html
これ
0256nobodyさん03/03/28 19:43ID:???
>>255
有難うございます。勉強してきます。
0257nobodyさん03/03/28 20:35ID:???
>>246
テンプレートファイルに特定の変数値を流し込むための目印みたいなもん。
s/%%HOGE%%/$hoge_value/;
で、変換しているとか。
0258lanble03/03/28 20:38ID:iBaRMkHH
正規表記で日本語にマッチさせるにはどうすればいいですか?
text:<head><title>タイトルン</title></head>
があるばあい「タイトルン」だけに変更して表現するときはどうすれば
いいですか?あと
text:<head><title>titlen</title></head>
のtitlenにもマッチさせたいのですが、これらを正規表記一行で表現すると
どうゆうふうになるのですか?
0259nobodyさん 03/03/28 20:51ID:???
>>255
フォロー感謝。まぁ頑張ってくだされ
0260nobodyさん03/03/28 21:25ID:???
>>258

http://www.din.or.jp/~ohzaki/regex.htm
これ読んでそれでもわからなかったら、
今度は正規表現のスレに行け。
0261nobodyさん03/03/29 00:45ID:fHpTV+Jc
3年くらいperlをいじってなかったので、
初歩的な質問かもしれないですが・・・・・・・

パスワード制限するページで、

IDとパスワードでアクセス制限
(Basic認証でなく、<form>タグ内と<input tyle= text と passworsで)
して、ページを、
Apacheとperl5の環境でやりたいのですが、
どういう方法があるのでしょうか?

●<input type=hidden>で変数をやりとりする
●クッキーを使う

は知っているのですが、
これしか方法はないのでしょうか?
0262nobodyさん03/03/29 01:01ID:8vJPU8lo
質問させてください。
cgiで以下のを実行させるとフレームが5個くらいできるのだけど
なぜですか?

#! /usr/bin/perl
test();

sub test{
print <<END;
Content-type: text/html; charset=Shift_JIS

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head><title>testdesu</title></head>
<frameset cols="50%, 50%">
<frame name="t2"
src="$ENV{'SCRIPT_NAME'}?frame=test2">
<frame name="t3"
src="$ENV{'SCRIPT_NAME'}?frame=test3">
<noframes>
<p>このページはフレームをサポートしているブラウザで利用する必要があります</p>
</noframes>
</frameset>
</html>
END
}
0263nobodyさん03/03/29 01:07ID:???
>>262
HTMLの勉強からやり直して来い。
0264nobodyさん03/03/29 01:09ID:???
>>261
セッションのキーはその何れかで残すしかない。
0265nobodyさん03/03/29 01:48ID:8vJPU8lo
>>263足りなかったです。これを実行させたいのですが、brankのフレームが6個できます
なぜ6個でどういう動作しているのでしょうか?
#! /usr/bin/perl
if($FORM{'frame'} eq 'test2'){hidari();}
elsif($FORM{'frame'} eq 'test3'){migi();}
else{test();}
exit;
sub test{
print <<END;
Content-type: text/html; charset=Shift_JIS

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html><head><title>test</title></head>
<frameset cols="50%, 50%">
<frame name="t2" src="$ENV{'SCRIPT_NAME'}?frame=test2">
<frame name="t3" src="$ENV{'SCRIPT_NAME'}?frame=test3">
</frameset></html>
END}
sub hidari{
print <<END;
Content-type: text/html; charset=Shift_JIS

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>test2</title></head><body>test hidari</body></html>
END}
sub migi{
print <<END;
Content-type: text/html; charset=Shift_JIS

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>test3</title></head><body>test migi</body></html>
END}
0266bloom03/03/29 01:55ID:i2vNq3FD
http://www.agemasukudasai.com/bloom/
0267nobodyさん03/03/29 02:17ID:???
>>265
なぜって、これ以外にもスクリプトあるんじゃないの?
単独のCGIじゃないでしょ
0268nobodyさん03/03/29 02:43ID:wFiuyLe9
>>265
よく考えてから質問してくれ
0269nobodyさん03/03/29 05:52ID:???
>>265
単純に$FORM{'frame'}のデコード処理がないからとか?
0270nobodyさん03/03/29 09:39ID:???
前にも見たな。$FORM{} に自動的にフォーム内容が入ると思い込んでるソース。
0271nobodyさん03/03/29 13:11ID:???
そういう楽がしたいんなら、PerlじゃなくてPHP使えってことだな。
後のことは知らんが。
0272nobodyさん03/03/29 13:35ID:???
JavaにあるisSecua()メソッドのような、
通信がセキュアであることを判定するようなメソッドが欲しいと思い、
いろいろ環境変数などを探してみたのですが、ぜんぜん見付かりません。
どうやったら確実に判別できるのでしょうか。
もしかして、「https://から始まっていたらセキュア通信!」みたいにすればOKですか?
0273nobodyさん03/03/29 14:06ID:???
>>272
isSecua() メソッドとは何をもって通信がセキュアであると判断するんだ?
あと、どこまでのセキュリティレベルを必要としてるんだ?自分で理解してるのか?

それに環境変数ごときで判断して良いなら SSL_* 変数をチェックすりゃ十分だろうし、
https:// から、なんてレベルなら SERVER_PORT でも見りゃいーじゃん。

Perl と関係ねーじゃん。よそ逝け。
0274nobodyさん03/03/29 15:06ID:GyYYsUNO
今isSecuaメソッドをPerlで書いてるんだっちゃ。
そげなこといわんと、実装方法教えてくんろ。
■ このスレッドは過去ログ倉庫に格納されています