Perlコーディング初心者質問スレ Part 52
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/09/15(金) 14:01:51ID:gobry0n2【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
お勧めサイトは >>2-10
前スレ http://pc8.2ch.net/test/read.cgi/php/1153987463/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0159nobodyさん
2006/09/28(木) 19:03:19ID:???レスありがとうございます。
頭こんがらまくりですが、がんばって調べてみます。
でも多分、私なぞの頭では無理そうなので、
「出来ません!」と開き直る率高しです。(;´Д`)
>>154さんのご指摘の通り、
こんなHP担当もどきに頼まず、ケチってないで外注さんに依頼しろ!って感じです。
グチってもしかたないですがw
ありがとうございました!
0160nobodyさん
2006/09/28(木) 21:27:50ID:???> 「出来ません!」と開き直る率高しです。(;´Д`)
坊や頭大丈夫かい?
0161nobodyさん
2006/09/28(木) 23:16:37ID:???ああああ ごめんなさい。
書き方悪かったですね。
私に依頼してきた、社内の人にです。
私には分不相応ですので、ファイル名には気をつけてくださいと伝えるつもりです。
教えてくださった事は、勉強しています。
0162nobodyさん
2006/09/29(金) 00:22:15ID:CoNVbZUT$KOSUU = "-4-1-2";
$GOUKEI_HOUSYUGAKU = "-3568-4305-5880";
$SYOHIN_CODE = "-CODEA-CODEB-CODEC";
@housygaku_list = split(/\-/,$HOUSYUGAKU);
@kosuu_list = split(/\-/,$KOSUU);
@goukei_housygaku_list = split(/\-/,$GOUKEI_HOUSYUGAKU);
@syohin_code_list = split(/\-/,$SYOHIN_CODE);
for($i = 0; $i < @housygaku_list; $i++) {
$TOTAL .= "&si=" . $housygaku_list[$i] . "." . $kosuu_list[$i] . "." . $goukei_housygaku_list[$i] . "." . $syohin_code_list[$i];
}
として、$TOTALの値を&si=892.4.3568.CODEA&si=4305.1.4305.CODEB&si=2940.2.5880.CODEC
としたいのですが、&si=...&si=892.4.3568.CODEA&si=4305.1.4305.CODEB&si=2940.2.5880.CODEC
となってしまいます。
どのようにすれば問題解消するでしょうか?
ご教授お願いします。
0163nobodyさん
2006/09/29(金) 00:24:23ID:???こちらで質問します
↓これ自分です
948 名前:DNS未登録さん :2006/09/26(火) 20:33:39 ID:szdp6kC6
質問です。ググッたけど分かんなかったです
環境はWinXP Home SP2 apache1.3.27
画像をアップロードして掲示板から参照するCGIを
作ったんですが、日本語ファイル名をSJISで
アクセスしようとすると、FORBIDDENになります
例えば
猫.jpgにhttp://%94L%2ejpgでアクセスできない
あ.jpgにはできる
ログを見ると罵.jpgにアクセスしようとしています
罵.jpgは%94l%2ejpgなので、SJISの2バイト目のL大文字がl小文字になってる事が
原因だと思うんですが、何か解決策はないでしょうか?
もしやWindowsが大文字と小文字区別しないから無理、とかですか?
どなたかお願いします
いただいたレスでLを%4Cにすればイイとあったんで
$filename =~ s/(\W)/'%' . unpack('H2', $1)/eg;
$filename =~ s/([A-Z])/'%' . unpack('H2', $1)/eg;
↑の様にして見ましたが結局%94%4c%2ejpgでアクセスしても
Apacheのエラーログに罵.jpgにアクセスしていると書かれます
これってこういうものなんでしょうか?
0164nobodyさん
2006/09/29(金) 01:06:10ID:???0165163
2006/09/29(金) 01:24:30ID:???猫.jpgにアクセスしてみたんですが同じでした
エラーログも
(2)No such file or directory: file permissions deny server access:
と出るのが気になります。なんでパーミッションエラー?
ファイル名が違うのなら404だと思うんですが…
0166nobodyさん
2006/09/29(金) 06:55:52ID:???何が違うんだろうねえ。
windows でも、たとえば 猫.txt と 罵.txt は同じフォルダに共存できてるので、そのせいじゃないっぽい気がするけどね。
もしかしたらブラウザのせいかもしれないよ。
0167nobodyさん
2006/09/29(金) 10:12:37ID:???0168nobodyさん
2006/09/29(金) 10:44:20ID:???0169nobodyさん
2006/09/29(金) 13:34:48ID:???「Apacheのエラーログに罵.jpgにアクセスしていると書かれます」
が全てにおいてなってるって信じてそれは除外してたのにw
0170ソケット
2006/09/30(土) 01:35:35ID:jL8SsxbPどうもサーバの問題な気もするけど。。。
$proto = getprotobyname('tcp');
unless($iaddr = Socket::inet_aton($host)){return;}
$sock_addr = Socket::sockaddr_in($port, $iaddr);
unless(socket(SOCKET, Socket::PF_INET, Socket::SOCK_STREAM, $proto)) {
print "error"; return;
}
でerrorになります。スクリプトはコピペじゃなくて手書きなので、
万一誤記があったら申し訳ありません。
ただし、問題のコードは別のレンタルサーバで動いていたので、
実機に誤記はないはずなんです。
$hostはlocalhostです。
環境:fedora core4 perl5.8
0172ソケット
2006/09/30(土) 01:51:07ID:jL8SsxbPperlのバージョン:5.8
インストールされているライブラリは多くて書き込めないのですが、
fedora core 4 の「サーバインストールモード」でインストールして、
その後sendmail-cf、qpopper、gccをrpmで入れました。
すみません。他にどんな情報が必要なのかが。。。
サーバ関係の板かな?
0173nobodyさん
2006/09/30(土) 01:55:43ID:???誰も答えることができないよという意味。
ぼくのちんちんで彼女がイってくれません。どうしてでしょう?と同じだもん。
最小のテストコードで試して何が悪いか追求しましょう。
0174ソケット
2006/09/30(土) 03:31:10ID:???追求してみます。
0175nobodyさん
2006/09/30(土) 08:18:25ID:???例えが素晴らしい
0176163
2006/09/30(土) 13:43:31ID:???レスありがとうです
猫.jpgと 罵.jpgを同じフォルダに置いて
http ://%94%4c%2ejpgにアクセスすると罵.jpgが表示されます
しかもその際他の画像よりロードが長いです
また、http ://猫.jpgでも罵.jpgが表示できました
%94%4c%2ejpg→%94L%2ejpg→%94l%2ejpg→罵.jpg
こういう流れなのでしょうか…?
0178nobodyさん
2006/10/01(日) 12:28:14ID:???いいのでしょうか?
0179nobodyさん
2006/10/01(日) 12:58:10ID:???0180nobodyさん
2006/10/01(日) 14:00:28ID:???日本語でおk
0181178
2006/10/01(日) 17:57:37ID:???perlのCGIでhtmlファイルを標準出力に出力しようとしています。
それでhtmlのformのvalueに「カラー」と入れています。
そしてCGI側で変数に
$color = "カラー";
としていて、$colorとマッチした行を書き換えたいのです。
それで
$line =~ s/$color/xxxxx/;
と書いているのですが、
htmlファイルが上手く出力されません。
この行をコメントアウトするとhtmlがすべて出力されるので
この行に問題があるようなのです。
0183nobodyさん
2006/10/01(日) 20:28:54ID:???あるいは
$line =~ s/\Q$color\E/xxxxx/;
0184nobodyさん
2006/10/01(日) 21:19:06ID:???Shift-JISだと、”ー”の第2バイトが”[”ってことかな〜?
後々の事を考えると、EUCかUTF-8がいいかもね。
use encoding "shiftjis";
0185nobodyさん
2006/10/01(日) 21:56:19ID:???0187nobodyさん
2006/10/01(日) 22:17:27ID:???0188nobodyさん
2006/10/01(日) 22:32:53ID:???0189178
2006/10/01(日) 22:43:04ID:???ということは>>183さんのやり方がいいのでしょうか?
明日試してみます。ありがとうございました。
0190163
2006/10/02(月) 00:08:50ID:???遅れましたがレスありが�d
ちょっと調べたんですが、Windows版のApache1.3用mod_encodingって
もしかして無いんでしょうか?
自分でビルドするしかないって事になるのでしょうか
あ、自宅サバ行った方がいいかな
0191nobodyさん
2006/10/02(月) 18:06:42ID:NJMhk9xt"\x20"→" "みたいな感じ
0192nobodyさん
2006/10/02(月) 18:12:31ID:???0193nobodyさん
2006/10/02(月) 18:14:51ID:???0194nobodyさん
2006/10/02(月) 18:54:08ID:???$ref_hashがハッシュのリファレンスだとすると
keysはハッシュしか受け付けてくれないので、
$ref_hashからハッシュを復元(?)してkeysで取り出したりできないだろうかと
思っているのですが
0195nobodyさん
2006/10/02(月) 18:56:59ID:???0196194
2006/10/02(月) 19:03:04ID:???それで、そのハッシュのキー値がしりたいのですが、
無名ハッシュなので、なんとかしてアドレスからわからないだろうかと・・・
0198nobodyさん
2006/10/02(月) 19:26:18ID:???keys %$ref_hash
だがアドレスといっているので何か違う世界の話かもしれないな...
0199nobodyさん
2006/10/02(月) 19:41:16ID:???perl -e "print [123];" → ARRAY(0x123456)
まあリファレンスの事だろうけど
0200nobodyさん
2006/10/02(月) 19:46:10ID:???0201194
2006/10/02(月) 20:01:46ID:???すみません、ありがとうございました。
0202nobodyさん
2006/10/02(月) 21:02:26ID:???まずくありません。よく知られた罠があり、使う場面を選ぶというだけです。しかしそのため、
「よくわからないけれどとにかく動くようにしたい人」に勧めると、二日ほど経ってから「今度は思わぬところがアッー! で困っています」と泣き付かれるかもしれず、
「プログラムやライブラリを配布して社会に貢献したい人」に勧めると、膨大な数の配布先が use encoding の罠に汚染されてしまうかもしれず、
「夢と希望と探究心に溢れた初心者」に勧めると、貴重な学習曲線の序盤でつまらない無駄足を踏ませてしまうかもしれず、
などの事情で大抵は勧めにくいということです。
適切な使いどころがわからないなら使わないほうが無難でしょう。
0203nobodyさん
2006/10/02(月) 21:30:58ID:kJiDkda9ホスト名が検索できない海外の串からのアクセスが多くて困っています。
そこでそのようなアクセスを弾くようにするにはどのような手を加えたらよいでしょうか?
良く見かける言葉では
・ホスト名が無い時に弾く
・逆引きできないホストからのアクセス禁止
のようになるとおもいます。
難しい事は分からないので出来るだけ簡単に何かないでしょうか?
よろしくお願いします。
0204nobodyさん
2006/10/02(月) 22:16:03ID:???ありがとう。
よく知られた罠とは何でしょうか?
少しググって見ましたが、こんな感じのやつしょうか?
Allen's diary(2005-04)
http://www.tokimeki.st/diary/?date=200504
Perlで何だか妙なエラーが出て悩まされた件について。
具体的には、"Wide character in subroutine entry"って何やねんっ!と悩んでたけど、
よくよく考えたら
use encoding "shift-jis"してるから標準入力から取り込んだ文字列は既にUnicodeに
なってるというのに、わざわざEncode::from_to($str, "shiftjis", "euc-jp");とかやってた
複数ファイルへのリダイレクトのために標準出力を一旦閉じて開きなおす際に文字コードを
指定しなおしてなかった(出力はeuc-jpだけど、use encoding "shift-jis", STDOUT=>'euc-jp';で
満足してた)という二重障害が原因と判明。慣れないことをするからこんな恥ずかしいバグが
出るんだよ_| ̄|○
0205nobodyさん
2006/10/02(月) 22:33:23ID:???それは 「自分ではperlコードなんか作りたくないけど、どこかそういうコードを配布してるところを知りませんか?」 ってこと?
自分でやるなら、$ENV{REMOTE_ADDR} と $ENV{REMOTE_HOST} 、
それに gethostbyaddr や gethostbyname でぐぐってみていろいろ自分で考えて、
それでもわからなかったら聞きにおいで。
>>204
そのひと、いろんな意味で何やってるのかわからんねw
0206nobodyさん
2006/10/02(月) 22:37:55ID:???概ねそれです。しかし実際にはもっと大きな罠です。
「use encoding の効果は use encoding されたプロセスの I/O 全てに効いてくる」というのがその理由です。
つまり自分だけでなく、他人の書いたコードの "use encoding" safe を気にしなければなりません。
use や require で読込まれたコードがそれっぽい処理をしているとアウトですから。
そんなのイヤでしょ?
0208203
2006/10/02(月) 23:49:15ID:???>それは 「自分ではperlコードなんか作りたくないけど、どこかそういうコードを配布してるところを知りませんか?」 ってこと?
配布している所があれば是非活用したいですのでもしあれば教えていただけませんか?
0209nobodyさん
2006/10/03(火) 00:37:08ID:???スレ違いなのでどちらかへ ∩( ´∀`)∩ドウゾ (っ´∀`)っ))ヨロシク
【CGI】こんなCGI探してますver.21
http://pc8.2ch.net/test/read.cgi/hp/1154177468/
ご希望のCGIを作成いたします
http://pc8.2ch.net/test/read.cgi/php/1145308869/
0210nobodyさん
2006/10/04(水) 12:12:04ID:zNjB8ynb自分のはてなブックマークからRSSを取得して、ブックマークしているURLを抽出→そのURL(合計30件)をブックマークしている全てのユーザーを抽出→上位を表示というスクリプトを組んだのですが特定のURLからユーザー情報を抽出出来ないバグが発生しています。
少し長いのですが以下にコードを載せます。
0211nobodyさん
2006/10/04(水) 12:13:19ID:zNjB8ynbuse LWP::Simple;
$base = get('http://b.hatena.ne.jp/Marathon/
rss'); #ここのMarathon部分を自分のユーザーIDに変更
@splited_base = split /\n/, $base;
foreach $i (@splited_base) {
if ($i =~ m|a href="http://
b.hatena.ne.jp/entry/(.+?)"|) {
$data = get('http://
b.hatena.ne.jp/entry/rss/'.$1);
push(@splited_rss, split /
\n/, $data);
}
}
#続く
0212nobodyさん
2006/10/04(水) 12:14:47ID:zNjB8ynbforeach $i (@splited_rss) {
if ($i =~ m|<title>([a-zA-Z0-9].*[a-zA-
Z0-9])</title>|) {
push (@fav_user_list, $1);
}
}
foreach $i (sort { $a cmp $b } @fav_user_list) {
if ($i eq $prev) {
$per++;
} else {
push (@sorted_favlist,
($per*3.33)."%\t$prev");
$prev = $i;
$per = 1;
}
}
push (@sorted_favlist, ($per*3.33)."%\t$prev");
foreach $i (sort { $b <=> $a } @sorted_favlist) {
print "$i\n";
if ($j == 10) {
last;
} else {
$j++;
}
}
exit;
0213210-212
2006/10/04(水) 12:20:38ID:t51HyLJWhttp://b.hatena.ne.jp/entry/rss/http://capsctrl.que.jp/kdmsnr/wiki/bliki/?cmd=view&p=UmlAsSketch&key=%A5%B9%A5%B1%A5%C3%A5%C1
に含まれている、<title>ユーザーID</title>の情報が抽出出来ないのです。
上のURLは自分のブックマークのRSSか正常に抽出されたもので、個別にget()してから<title>ユーザーID</title>の抽出を行うと問題なくユーザーIDの抽出が行えます。
現状、個別に抽出出来る状態にも関わらず、それをループさせると問題が出るという状況に陥っています。
原因がお分かりになる方、ご助言頂ければ幸いです。
0214nobodyさん
2006/10/04(水) 12:56:10ID:???じゃあループに問題があるのでは?
読んでないけどww
0215nobodyさん
2006/10/04(水) 13:59:04ID:???おかしい所を特定してから示してくれ。
0216nobodyさん
2006/10/04(水) 16:14:40ID:mTQmplV+恐らく↓のルーチンでget出来ていないか
foreach $i (@splited_base) {
if ($i =~ m|a href="http://
b.hatena.ne.jp/entry/(.+?)"|) {
$data = get('http://
b.hatena.ne.jp/entry/rss/'.$1);
push(@splited_rss, split /
\n/, $data);
}
}
↓のルーチンで抽出が出来ていないか
foreach $i (@splited_rss) {
if ($i =~ m|<title>([a-zA-Z0-9].*[a-zA-
Z0-9])</title>|) {
push (@fav_user_list, $1);
}
}
のどちらかが問題だと考えています
0217nobodyさん
2006/10/04(水) 16:18:48ID:???下のルーチンは問題の有るURLを個別にgetしてから入れると問題なくユーザーIDを抽出してきます。
そうすると、上のルーチンも下のルーチンも正常に動作していることになり、原因が存在しないことになってしまっているのが現状です
長いコードを貼り付けて申し訳ありませんでした。
0218nobodyさん
2006/10/04(水) 16:51:57ID:???ちゃんと表示させて追いかけろと....
0219nobodyさん
2006/10/04(水) 18:01:45ID:8AfjfVrQ試してみます
ありがとうございました
0220nobodyさん
2006/10/04(水) 18:53:53ID:XYwup9WLプロ:間接的には可能ですが厳密なデバッグはできません。仕様外です。w
0221nobodyさん
2006/10/04(水) 20:30:23ID:???#!/usr/bin/perl
use LWP::Simple;
use XML::RSS;
my $hatena_id = "Marathon";
my $rss = new XML::RSS;
$rss->parse( get("http://b.hatena.ne.jp/$hatena_id/rss") );
my $items = $rss->{items};
my %count;
for my $item (@$items) {
my $item_rss = new XML::RSS;
$item_rss->parse( get("http://b.hatena.ne.jp/entry/rss/$item->{link}") );
$count{ $_->{title} }++ for (@{ $item_rss->{items} });
}
my @ranking = sort { $count{$b} <=> $count{$a} } keys %count;
for my $user (splice @ranking, 0, 10) {
my $per = $count{$user} / @$items * 100;
printf "%.2f%%\t%s\n", $per, $user;
}
0222178
2006/10/04(水) 20:49:29ID:???についてお聞きします。
作っているCGIの内容というのは
入力画面→確認画面→登録完了画面という流れになっています。
入力画面ではラジオボタンで参加したいセミナーを選択します。
<INPUT type="radio" name="xxx" value="セミナー1">
<INPUT type="radio" name="xxx" value="セミナー2">
というようになっています。
そして確認画面に<!--xxx-->と記述しておき
valueの値と置換して選択したセミナーを表示するという処理を
行いたいのです。
CGIに下の記述をしています。
$seminar1 = "セミナー1";
$seminar2 = "セミナー2";
$seminar1 = quotemeta($seminar1);
$seminar2 = quotemeta($seminar2);
quotemetaを行っているので
value="\セ\ソ~\ナ\―[\2"
というふうになってしまい、
確認画面に「セミナー2」と表示できずに
「\セ\ソ~\ナ\―[\2」と表示されてしまいます。
何かいい方法ありませんでしょうか?
わかりづらかったらすみません。
0223nobodyさん
2006/10/04(水) 20:56:06ID:???/\Q$seminar1\E/ とすれば quotemeta は必要ない
生で表示すると、パラメータとして xxx=<script>alert("Hello")</script> を渡したりしても大丈夫?
てか、テンプレートエンジン使おうよ...
0224178
2006/10/04(水) 21:02:53ID:???アドバイスありがとうございます。
テンプレートエンジンて初めて聞きました。。
勉強してみます。
ありがとうございました。
0225nobodyさん
2006/10/04(水) 21:30:47ID:???my %count;
for my $item (@$items) {
my $item_rss = new XML::RSS;
(my $item_link = $item->{link}) =~ s|([^\w:/.])| '%' . unpack('H2', $1) |eg;
$item_rss->parse( get("http://b.hatena.ne.jp/entry/rss/$item_link") );
$count{ $_->{title} }++ for (@{ $item_rss->{items} });
}
0226nobodyさん
2006/10/04(水) 23:15:47ID:1QuMr0io助言有り難うございます!
&、#絡みの問題であることが把握出来ました
モジュールをLWPしか使用していないのは、公開を前提に組んでいたので少しでも動作を軽くしようと考えて正規表現をしようしてのが理由です。
XML::RSSを使用すると処理が重くなっていたので・・・
0227nobodyさん
2006/10/05(木) 04:08:05ID:???0229nobodyさん
2006/10/05(木) 05:21:07ID:2/YXra1Q$contentの中に相当な長さの文字列が入っていたとします。
この中に
http://〜(なんでも)〜.jpgや
http://〜(なんでも)〜.gifや
http://〜(なんでも)〜.pngや
ttp://〜(なんでも)〜.jpgや
ttp://〜(なんでも)〜.gifや
ttp://〜(なんでも)〜.pngや
http://pita.stで始まるアドレスや
http://imepita.jpで始まるアドレスや
http://pic.toで始まるアドレス
のアドレス部分だけを引き抜いて$OUTPUTに入れていって
http://〜(なんでも)〜.jpg
http://〜(なんでも)〜.gif
http://〜(なんでも)〜.png
といった具合に各行ごとに出力するにはどうコードを書けばいいですか?
0230229
2006/10/05(木) 06:14:01ID:???0231nobodyさん
2006/10/05(木) 06:20:48ID:???0232nobodyさん
2006/10/05(木) 11:24:12ID:???0234nobodyさん
2006/10/05(木) 14:27:16ID:ei8slwkX$CGI->radio_group(-name=>'radiotest',-values=>['val1','val2','val3','val4'])
をヒアドキュメント内に直接(的に)展開したくて
#!/usr/local/bin/perl
use CGI;
print "Content-Type: text/html;\n\n";
$CGI=new CGI;
print $CGI->radio_group(-name=>'radiotest',-values=>['val1','val2','val3','val4']).'<hr>';
print $CGI->popup_menu(-name=>'poptest',-values=>['val1','val2','val3','val4']).'<hr>';
print <<"EOF";
$CGI->radio_group(-name=>'radiotest',-values=>['val1','val2','val3','val4'])<hr>
${\$CGI->radio_group(-name=>'radiotest',-values=>['val1','val2','val3','val4'])}<hr>
$CGI->popup_menu(-name=>'poptest',-values=>['val1','val2','val3','val4'])<hr>
${\$CGI->popup_menu(-name=>'poptest',-values=>['val1','val2','val3','val4'])}<hr>
EOF
な感じでやってみたところ
${\$CGI->radio_group(-name=>'radiotest',-values=>['val1','val2','val3','val4'])}
の部分がうまく展開されません。
この理由、または別の解法をご存知の方はぜひ回答をお願いします。
0235nobodyさん
2006/10/05(木) 15:47:13ID:???<q cite="http://perldoc.jp/docs/modules/CGI.pm-2.89/CGI.pod">
radio_group()により返される値は実際にはボタン要素の配列です。
</q>
@{[ $CGI->radio_group(...) ]}
0236234
2006/10/05(木) 17:10:48ID:ei8slwkXあ、しまった、コンテキスト・・・
ありがとうございました!
0237nobodyさん
2006/10/06(金) 10:59:57ID:tVeHJJaRdwdewdjewd
dewewd
dwedrgv
wdcsdc
といった具合に文字列がたくさん入ってて
一番最後の下の行だけ削除したいときは
どうすればいいですか
0238nobodyさん
2006/10/06(金) 11:13:57ID:???$data=~ s/.+$//;
0239238
2006/10/06(金) 11:16:22ID:???$data=~ s/.+\z//;
0241238
2006/10/06(金) 11:47:58ID:???これがいいかもね
0242nobodyさん
2006/10/06(金) 12:02:34ID:tVeHJJaRどうしてですか?上の2つとどう違うの?
0243nobodyさん
2006/10/06(金) 12:53:58ID:???なんでそれぐらい自分で調べないんだ?
0244nobodyさん
2006/10/06(金) 19:14:14ID:PWke1HN3下のようなフレームを使ったページでA,B,Cそれぞれに
A-abcd.cgi
B-bcde.cgi
C-cdef.cgi
が動いてます。Bのフォームから送信ボタンを押したときに、Cのcgiにデータを送ろうと
色々と検索し、試したのですがうまくいきません。
┌───────┐ Bにはラジオボタン数個あり、送信が押されると
│A │ 選択された値をCで受け取り処理するようにした
├──┬────┤ いのです。最初はactionでCのcdef.cgiを指定したら
│B │C │ Bの枠にcdef.cgiが展開されてww(当たり前でした)
│ │ │
└──┴────┘ お願いします。
0246nobodyさん
2006/10/06(金) 19:55:49ID:???0247nobodyさん
2006/10/06(金) 20:26:54ID:???他所行けよ
0249nobodyさん
2006/10/06(金) 20:48:17ID:???<form action="cdef.cgi" method="post/get" target="C">
(略)
</form>
で正解だとして、今後はWeb制作板の方に行きなさい。
0250nobodyさん
2006/10/06(金) 21:08:45ID:???0251nobodyさん
2006/10/06(金) 23:44:30ID:1oLHpAqBCGIで画像を表示させてるんですが、CGI設置してるサーバーとは別のサーバーに
アップロードしている画像を表示させようとしたらPCとVodafoneのみ画像が
表示されなくて・・・なぜでしょうか?
for($i = 1; $i < 画像枚数; $i++){
print "<img src=http://〜/$i.jpg>";
}
こんな感じで連番画像を表示させてます
0252nobodyさん
2006/10/07(土) 00:44:13ID:???タグの書き方やファイルのパスに問題はなさそうだが…
その中の適当な一枚だけを表示するHTMLを吐くようなCGIを試しに設置してみそ。
こんなやつ。
print "Content-type: text/html\n\n";
print "<html><body>\n";
print "<img src=\"http://画像のパス.jpg\">\n";
print "</body></html>\n";
exit;
0253nobodyさん
2006/10/07(土) 08:20:28ID:582rzz9aキーワード検索式でパターンマッチをperlにて組んでいます。
入力ボックスからしかインプットは受け付けないのですが
PERLソースの中身が見れた!、ソースきたねぇwww
って言う人がいます。
これってホラなんですか?それともPERLのソースの中身を見ることって
可能なんですか???
初心者過ぎて、ごめんなさい。
0255nobodyさん
2006/10/07(土) 08:26:01ID:582rzz9aほんとに!??!?
具体的にいうと、入力された変数の部分にコマンド打たれるんですか?
0256nobodyさん
2006/10/07(土) 08:34:03ID:???yes.
> キーワード検索式でパターンマッチをperlにて組んで
this can be a weak point.
use quotemeta function.
0257nobodyさん
2006/10/07(土) 08:39:53ID:582rzz9aすべて処理を施さないといけないってことですか?
他にもFORMからのINPUTで入れてるのがあるんですが
キーワード検索のみ
$in{'keyword'} =~ s/,/、/g;
$in{'keyword'} =~ s/</</g;
$in{'keyword'} =~ s/>/>/g;
$in{'keyword'} =~ s/\r\n/<br>/g; # Windows系(\r\n)
$in{'keyword'} =~ s/\r/<br>/g; # Mac系(\r)
$in{'keyword'} =~ s/\n/<br>/g;
$in{'keyword'} =~ s/\n/<br>/g;
$in{'keyword'} =~ s/&/&/g;
$in{'keyword'} =~ s/\|//g;
ってしてます
0258nobodyさん
2006/10/07(土) 08:57:59ID:???きちんと注意して書けばそうめったにやられるものではないが。
■ このスレッドは過去ログ倉庫に格納されています