Perlコーディング初心者質問スレ Part 45
レス数が1000を超えています。これ以上書き込みはできません。
0001988
2005/12/08(木) 22:48:27ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0910nobodyさん
2006/01/17(火) 13:41:29ID:???0911nobodyさん
2006/01/17(火) 13:42:16ID:???ユーザーに投げてやればいいでしょ。
何を質問してるのか解らん。
0912nobodyさん
2006/01/17(火) 13:44:04ID:???ありがとうございます。
ただ、その場合は 北海道だけがプルダウンセレクトで出てきて
他の県を選べなくなりますよね?
もし、県別のとこも、エラー出たあとに、他の県に修正できるようにする方法は
ありませんか?
0913nobodyさん
2006/01/17(火) 13:45:22ID:???0914nobodyさん
2006/01/17(火) 13:47:09ID:???0915nobodyさん
2006/01/17(火) 13:51:21ID:???いろいろ見ているのですが、申し訳ない。
>>911
分かりづらい説明ですいません。
最初のフォーム入力ページでは
<select NAME="県別" SIZE="1">
<option VALUE="" selected>北海道</option>
<option VALUE="北海道">北海道</option>
<option VALUE="青森県">青森県</option>
<option VALUE="岩手県">岩手県</option>
<option VALUE="宮城県">宮城県</option>
<option VALUE="秋田県">秋田県</option>
<option VALUE="山形県">山形県</option>
<select>
というふうに デフォでは "--"と表示されていて”県別”の中身は空ですが、
もし、北海道をここで選んで、他の項目でエラーが出た場合、
表示されるページで ”北海道”がデフォで選ばれてる状態にして
なおかつ、他の県にも修正が効く状態にしておきたいんです。
0916nobodyさん
2006/01/17(火) 13:52:14ID:???分からないんです。すいません。
0917nobodyさん
2006/01/17(火) 13:56:21ID:???スレ違い、さっさと失せろ
0918nobodyさん
2006/01/17(火) 13:59:16ID:???スレ移動します。
0919nobodyさん
2006/01/17(火) 14:00:37ID:???選ばれたものが selected になればよいと言って分かる?
分からなければ制作板で HTML の勉強しといで
0921nobodyさん
2006/01/17(火) 14:03:23ID:???>>915で、記述ミスしてました。
北海道のところがselectedじゃなくて、 "--"の行がデフォではselectedでした。
0924nobodyさん
2006/01/17(火) 14:08:05ID:???酷使されてる鯖カワイソス
0925nobodyさん
2006/01/17(火) 14:09:53ID:???俺が書きなおしてやる。
0926nobodyさん
2006/01/17(火) 14:12:35ID:???0927nobodyさん
2006/01/17(火) 14:15:18ID:???0929nobodyさん
2006/01/17(火) 14:31:39ID:???これがHTMLの部分です。
<HTML><HEAD>
<TITLE>問い合わせ</TITLE></HEAD>
<BODY>
<form action="toiawase.cgi" method="post">
<BR>
氏名:<input size="20" type="text" name="氏名">
<BR>
県別:<select NAME="県別" SIZE="1">
<option VALUE="" selected>--</option>
<option VALUE="北海道">北海道</option>
<option VALUE="青森県">青森県</option>
<option VALUE="岩手県">岩手県</option>
<option VALUE="宮城県">宮城県</option>
<option VALUE="秋田県">秋田県</option>
<option VALUE="山形県">山形県</option>
<select>
<BR>
持ってる免許:
<input type="checkbox" name="免許車" value="CAR">
<input type="checkbox" name="免許バイク" value="BIKE">
<input type="checkbox" name="免許船" value="SHIP">
<BR><BR>
<input TYPE="submit" VALUE="送信">
<FORM></BODY></HTML>
0931nobodyさん
2006/01/17(火) 14:36:02ID:???0932nobodyさん
2006/01/17(火) 14:36:59ID:???0933929
2006/01/17(火) 14:40:00ID:???名前= 未記入
県別= 北海道を選んだ
持ってる免許= 免許車、 免許バイク
を選んだとして、「名前の未記入のみ」に対して
もう一度記入してくださいという、画面を出力して出したいんです。
その際には、 県別が「北海道」ということと、免許が「免許車、免許バイク」と分かっているので
と吐き出したいんです。
<HTML><HEAD>
<TITLE>問い合わせ</TITLE></HEAD> <BODY>
未記入の項目がありました。<BR><BR>
<form action="toiawase.cgi" method="post"> <BR>
氏名:<input size="20" type="text" name="氏名"> <BR>
県別:<select NAME="県別" SIZE="1">
<option VALUE="">--</option>
<option VALUE="北海道" selected>北海道</option>
<option VALUE="青森県">青森県</option>
<option VALUE="岩手県">岩手県</option>
<option VALUE="宮城県">宮城県</option>
<option VALUE="秋田県">秋田県</option>
<option VALUE="山形県">山形県</option>
</select> <BR>
持ってる免許:
<input type="checkbox" name="免許車" value="CAR" checked>
<input type="checkbox" name="免許バイク" value="BIKE" checked>
<input type="checkbox" name="免許船" value="SHIP">
<BR><BR>
<input TYPE="submit" VALUE="送信">
<FORM></BODY></HTML>
0936nobodyさん
2006/01/17(火) 15:08:07ID:???免許部分を1から3にします。
<HTML><HEAD>
<TITLE>問い合わせ</TITLE></HEAD>
<BODY>
<form action="toiawase.cgi" method="post">
<BR>
氏名:<input size="20" type="text" name="氏名">
<BR>
県別:<select NAME="県別" SIZE="1">
<option VALUE="" selected>--</option>
<option VALUE="北海道">北海道</option>
<option VALUE="青森県">青森県</option>
<option VALUE="岩手県">岩手県</option>
<option VALUE="宮城県">宮城県</option>
<option VALUE="秋田県">秋田県</option>
<option VALUE="山形県">山形県</option>
<select>
<BR>
持ってる免許:
<input type="checkbox" name="免許1" value="CAR">
<input type="checkbox" name="免許2" value="BIKE">
<input type="checkbox" name="免許3" value="SHIP">
<BR><BR>
<input TYPE="submit" VALUE="送信">
<FORM></BODY></HTML>
930 名前: nobodyさん [sage] 投稿日: 2006
0937nobodyさん
2006/01/17(火) 15:12:02ID:???>>934
自分なりにどういうスクリプト書いてみたかもアップして。
アップローダー使ってね。
アップローダー使ってね。
アップローダー使ってね。
アップローダー使ってね。
アップローダー使ってね。
0938nobodyさん
2006/01/17(火) 15:17:07ID:???フォームから引き渡した数を
$form{'氏名'} = ""
$form{'県別'} = "北海道"
$form{'免許'} = "CAR,BIKE"
としたときに、 HTMLで下のように吐き出すようなスクリプトを教えてください。
<HTML><HEAD>
<TITLE>問い合わせ</TITLE></HEAD> <BODY>
未記入の項目がありました。<BR><BR>
<form action="toiawase.cgi" method="post"> <BR>
氏名:<input size="20" type="text" name="氏名"> <BR>
県別:<select NAME="県別" SIZE="1">
<option VALUE="">--</option>
<option VALUE="北海道" selected>北海道</option>
<option VALUE="青森県">青森県</option>
<option VALUE="岩手県">岩手県</option>
<option VALUE="宮城県">宮城県</option>
<option VALUE="秋田県">秋田県</option>
<option VALUE="山形県">山形県</option>
</select> <BR>
持ってる免許:
<input type="checkbox" name="免許" value="CAR" checked>
<input type="checkbox" name="免許" value="BIKE" checked>
<input type="checkbox" name="免許" value="SHIP">
<BR><BR>
<input TYPE="submit" VALUE="送信">
<FORM></BODY></HTML>
0939nobodyさん
2006/01/17(火) 15:19:10ID:???スクリプト自体はまだ、出来あがってはいませんので
アップできませんが、上のような形でHTMLを吐き出してくれる方法だけでも
教えてもらえませんか?
0940nobodyさん
2006/01/17(火) 15:25:27ID:???教えてもらえません。
お前の屑スクリプトが動くところがみたいんじゃなくて、
お前がそれ相応の努力をしたかどうかがみたいんだ。
だから書きかけでもうpが先。
0941nobodyさん
2006/01/17(火) 15:26:55ID:???inout valueのところに名前の変数をデフォで表示させておけば
問題ないと分かったんですが・・・・
$NAME=$form{'氏名'};
print "
<HTML><HEAD>
<TITLE>問い合わせ</TITLE></HEAD> <BODY>
未記入の項目がありました。<BR><BR>
<form action=toiawase.cgi method=post> <BR>
氏名:<input size=20 type=text name=氏名 value=$NAME> <BR>
県別:<select NAME=県別 SIZE=1>
<option selected>--</option>
<option VALUE=北海道>北海道</option>
<option VALUE=青森県>青森県</option>
<option VALUE=岩手県>岩手県</option>
<option VALUE=宮城県>宮城県</option>
<option VALUE=秋田県>秋田県</option>
<option VALUE=山形県>山形県</option>
</select> <BR>
持ってる免許:
<input type=checkbox name=免許 value=CAR>
<input type=checkbox name=免許 value=BIKE>
<input type=checkbox name=免許 value=SHIP>
<BR><BR>
<input TYPE=submit VALUE=送信>
<FORM></BODY></HTML>
";
0942nobodyさん
2006/01/17(火) 15:28:03ID:???丸投げ度に応じて適切と思われるスレに移動してくれ。
自分の作ったCGIスクリプトをデバッグするスレ
http://pc8.2ch.net/test/read.cgi/php/1011174442/
手伝ってくれるかた募集
http://pc8.2ch.net/test/read.cgi/php/1083303786/
【CGI】合同開発室
http://pc8.2ch.net/test/read.cgi/php/1001950501/
■こんなCGI作ってください■ Part.2
http://pc8.2ch.net/test/read.cgi/php/1133361560/
依頼されたツールを誰かが作るスレ
http://pc8.2ch.net/test/read.cgi/php/1078997682/
0944nobodyさん
2006/01/17(火) 15:40:29ID:???http://www.uploda.org/file/uporg288825.txt.html
パスはwebprog です。
0945nobodyさん
2006/01/17(火) 15:52:54ID:???sub decode {
my @pairs = split(/[&;]/, do {
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
if ($ENV{'CONTENT_LENGTH'} > 1024) { return undef; }
my $buffer;
binmode(STDIN);
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
$buffer;
} elsif ($ENV{'REQUEST_METHOD'} eq 'GET' or $ENV{'REQUEST_METHOD'} eq 'HEAD') {
$ENV{'QUERY_STRING'};
} else { return undef; }});
my %in;
foreach my $pair (@pairs) {
my ($name, $value) = split(/=/, $pair, 2);
$name =~ tr/+/ /; $value =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$in{$name} = $value;
}
return \%in;
}
0946nobodyさん
2006/01/17(火) 15:54:08ID:???0948nobodyさん
2006/01/17(火) 15:58:09ID:???0949nobodyさん
2006/01/17(火) 15:58:23ID:???0951nobodyさん
2006/01/17(火) 16:01:20ID:???0952944
2006/01/17(火) 16:11:28ID:???文面から判断できません。
0954nobodyさん
2006/01/17(火) 16:22:28ID:???2ch で勉強しようと思っているのならそれはやめた方がいい
今の君は付け焼き刃でどうにかなるレベルじゃない
もっと時間を掛けて、身銭を切って何冊か参考書を買うことが必要だ
0955nobodyさん
2006/01/17(火) 16:22:38ID:???続けたいなら下のスレでもリサイクルしてくれ。
もっと軽くて渋いCGI.pmを創ろう
http://pc8.2ch.net/test/read.cgi/php/1009255955/
0959nobodyさん
2006/01/17(火) 17:00:03ID:???0960nobodyさん
2006/01/17(火) 18:08:25ID:???それは良いアイデアだ。質問スレでこれ以上無駄な議論が
繰り返されないために、次スレのテンプレに以下を追加して欲しい。
CGI.pm批判、代替ルーチンなどCGI.pmに関する話題は以下のスレで。
もっと軽くて渋いCGI.pmを創ろう
http://pc8.2ch.net/test/read.cgi/php/1009255955/
0962nobodyさん
NGNG0963nobodyさん
2006/01/17(火) 18:47:36ID:???無駄な議論の定義を作っておかないとね。
0964nobodyさん
2006/01/17(火) 18:55:19ID:???$in{$key} .= "\0" if (defined($in{$key}));
の様にしてセパレータを使って複数の値をセットしてました。
cgi-libを見るまえに同じことを自分で書いてたのですが、自分のソースは\0ではなく\tを使ってたました。
\tより\0を使ったほうがいいのでしょうか?
0965nobodyさん
2006/01/17(火) 19:01:35ID:???無駄な議論の定義は今回は必要ないだろ。
CGI.pm と query の処理関係の、質問以外はそっちに誘導してしまえばいいのだ。
ここは質問スレ。
0966nobodyさん
2006/01/17(火) 19:20:57ID:???初心者スレだから、query処理の質問に対する
答えはCGI.pm使えで良いんじゃない?
それに満足できない人はそっちのスレへ誘導と。
0967nobodyさん
2006/01/17(火) 19:24:53ID:???あと初心者には組み込み関数のほうが使いやすいと思われ。
0968nobodyさん
2006/01/17(火) 19:28:31ID:tDsfmN2q環境変数でブラウザ等を判別し、それぞれ別のファイルへ飛ばす方法を検索したのですが、見つける事ができませんでした。
CGIなら Location:各ページのURI で出来たのですが、SSIではどうすれば良いでしょうか?
0970nobodyさん
2006/01/17(火) 20:08:20ID:???ってなっちゃうから何が不要なのをハッキリと
0971nobodyさん
2006/01/17(火) 20:10:18ID:???WebProg 自体が不要じゃね?
0973nobodyさん
2006/01/17(火) 20:26:19ID:???間抜けなことはしない。
0974nobodyさん
2006/01/17(火) 20:51:13ID:???Ajaxを使うとすると、選択する度にサーバへ情報を送る訳ですね?
となると、情報の保持にはセッションを利用するんでしょうか。
0975nobodyさん
2006/01/17(火) 21:04:12ID:???いちおうできたよ。
http://up.spawn.jp/file/up9550.zip
まだまだ未熟です orz
0976nobodyさん
2006/01/17(火) 21:22:18ID:???ありがとうございました。
全然見たこともないような書き方をしていたので
びっくりでした。
今日はもう寝るところでしたので
明日の朝また見直したいと思います。
お疲れ様でした。
0978nobodyさん
2006/01/17(火) 22:38:00ID:???そんな暇なことせずに HTML::FillInForm を使えば?
http://search.cpan.org/search?query=HTML%3A%3AFillInForm&mode=all
FormValidator に関しても、各種あります。
http://search.cpan.org/search?query=FormValidator&mode=all
0979nobodyさん
2006/01/17(火) 22:38:46ID:???> 明日の朝また見直したいと思います。
結局、こういう人間が質問してるんだよね。
0981nobodyさん
2006/01/17(火) 23:00:51ID:???0982nobodyさん
2006/01/17(火) 23:02:19ID:???<meta http-equiv="refresh" 〜> かな。
>>969
話の筋からするとquery処理かな。
>>955 のスレにも >>945 みたいなのを貼ってあったし。
0983nobodyさん
2006/01/17(火) 23:08:08ID:???0984nobodyさん
2006/01/17(火) 23:13:45ID:???0985nobodyさん
2006/01/17(火) 23:15:16ID:???0986nobodyさん
2006/01/18(水) 00:03:32ID:???0987nobodyさん
2006/01/18(水) 00:10:54ID:???そいうこと考えられない人間はエスパーにしか見えないんだが
0988nobodyさん
2006/01/18(水) 00:22:07ID:???ほとんどの鯖では、プロセス数を設定で抑えてるからなぁ。
0989nobodyさん
2006/01/18(水) 00:31:17ID:???メモリがいくらあってもプロセス数の制限があっても、
処理が遅かったら微妙だしな。
バランスよ。バランス。
そんな事もわからんのか。
0990nobodyさん
2006/01/18(水) 01:17:50ID:???0991nobodyさん
2006/01/18(水) 02:04:08ID:???0992nobodyさん
2006/01/18(水) 02:07:24ID:???0993nobodyさん
2006/01/18(水) 02:08:34ID:???0994nobodyさん
2006/01/18(水) 02:09:33ID:???漏れが建ててくる
0995nobodyさん
2006/01/18(水) 02:11:02ID:???0996nobodyさん
2006/01/18(水) 02:11:44ID:???否定になっとらんね。
0998nobodyさん
2006/01/18(水) 02:16:13ID:???思いっきり否定してるなw
1000nobodyさん
2006/01/18(水) 02:20:25ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。