いや
>>949 は、無事動きましたよ、という報告なのだろう。ウンウン
>>951 > # Perlの変数って数字から始まってよかった?
そもそも、数字で始まる予約変数があるからダメでせう。
>数字で始まる予約変数があるから
通常の変数でも可能ってこったな。
955 :
お初:03/03/25 21:16 ID:???
有難うございました。
>>951さんの教えてくれた記述どおりやりましたら、
無事、リンクできました。どうもこのたびはご迷惑お掛けしました。
あるレン鯖屋のサイトに「○○(CGIスクリプトの名前)はハードディスクを破壊するので禁止します。」と書かれていたのですが、
そんなことできるんでしょうか。
957 :
nobodyさん:03/03/26 04:19 ID:S5IZshnU
>>956 破壊にも色々あるけど、root 権限で動くとかじゃなければ無理だろ。
お子ちゃまの暴走に対する抑止効果は期待できるかもね。
良質の客が去っていくという逆の効果も発生するだろうが。
959 :
お初:03/03/26 10:16 ID:???
言われたとおり、早速、本を買ってきて3時間ほど苦闘しましたが、失敗しました(TT
教えて頂いた応用で、
$2ch = (split(/=/, $ENV{'QUERY_STRING'}))[1];
$2ch =~ s/%([a-fA-F\d][a-fA-F\d])/pack('H2', $1)/ge;
に、($2ch,$1ch)=split(/&/,$data);をつけて、
フォームを2つに増やし、↓HTML
<HTML>
<BODY>
<FORM METHOD="GET" ACTION="./***.cgi">
ログイン名:
<INPUT TYPE="text" NAME="2ch">
<INPUT TYPE="text" NAME="1ch">
<INPUT type="submit">
</FORM>
</BODY>
</HTML>
リンク先を
http://$2ch.$1ch.net/ にして$2chのフォームに、2、
$1chのフォームに1と入力したのですが、
リンク先が
http://2.1ch.net/になってしまします。
本当に勉強してもお手上げでした。
960 :
お初:03/03/26 10:18 ID:???
間違えました。上2段は&dataでした
$data = (split(/=/, $ENV{'QUERY_STRING'}))[1];
$data =~ s/%([a-fA-F\d][a-fA-F\d])/pack('H2', $1)/ge;
>>959 ちょっと待ってくれ。
自分で書いたソース、各行でどんな処理をしているのかを理解しているのか?
そもそも
1. 動きゃいいのか?
2. Perl(じゃなくてもいいけど)のプログラミングスキルを身に付けたいのか?
# ところで朝7時から開いてる本屋があるのか?
963 :
bloom:03/03/26 10:30 ID:C4vNyXIc
964 :
お初:03/03/26 11:52 ID:???
>>962さん、昨日買いました
プログラムのスキルはまだですが、多少の知識を得ました
>>964 >買いました
こんなところで油売ってないで呼んで理解してください。
966 :
4:03/03/26 13:40 ID:qOessVDe
>>965 激しく同意
そもそも
($ch2,$ch1)=split(/&/,$ENV{'QUERY_STRING'});
$ch2 = (split(/=/, $ch2))[1];
としないと。しかもどっちが2chで、どっちが1chか怪しい。
GETでどのような形式のデータが送られてくるか$ENV{'QUERY_STRING'}を
そのままprintして確かめてください。
967 :
4:03/03/26 13:46 ID:qOessVDe
my($name, $value, %ch);
foreach (split(/&/, $ENV{'QUERY_STRING'})) {
($name, $value) = split(/=/, $_, 2);
$value =~ s/%([a-fA-F\d][a-fA-F\d])/pack('H2', $1)/ge;
$ch{$name} = $value;
}
print "
http://$ch{'2ch'}.$ch{'1ch'}.net/";
968 :
お初:03/03/26 13:58 ID:???
本当にいつもすみませんでした。無事、URLを表示する事が出来ました。
4様、その他アドバイスをくださった方々に非常に感謝してます。
m(_ _)m
969 :
nobodyさん:03/03/26 14:52 ID:S5IZshnU
つーかそのソースの各行がどんな処理をしてて、
ここをこうするとこうなって・・・
てなことはどうでもいいんだな多分。
せっかく本買ったのにもう見ることも無いんだろうな
で、また何かわからないことがあると、
とりあえずこのスレにきて「お初」って書いて質問するんだろうな
>>970 このスレは質問者のためだけのスレではないのです。
回答者も、質問者から如何にして質問の要点を引き出すか、を楽しめるスレなのです。
なんちて。
馬鹿はこれでも努力した方でしょう。
974 :
nobodyさん:03/03/26 21:09 ID:WT1OtOAR
CGI(perl)でPOSTで<FORM>からデータをもらうときはどうすれば
いいのですか?
Perlなら、STDINっていうファイルハンドルがあるから、それを使って読む。
983 :
4:03/03/26 21:23 ID:qOessVDe
標準入力から読みます。
my $buf;
sysread(STDIN, $buf, $ENV{'CONTENT_LENGHT'});
print $buf;
質問、sysreadとreadの使いどころは?
自分はSocket関連だとsysread使いますが、ファイルを読むときは
readです。
984 :
4:03/03/26 21:24 ID:qOessVDe
LENGTHね・・
標準入力から読みます。
my $buf;
sysread(STDIN, $buf, $ENV{'CONTENT_LENGHT'});
print $buf;
質問、sysreadとreadの使いどころは?
自分はSocket関連だとsysread使いますが、ファイルを読むときは
readです。標準入力から読みます。
my $buf;
sysread(STDIN, $buf, $ENV{'CONTENT_LENGHT'});
print $buf;
質問、sysreadとreadの使いどころは?
自分はSocket関連だとsysread使いますが、ファイルを読むときは
readです。標準入力から読みます。
my $buf;
sysread(STDIN, $buf, $ENV{'CONTENT_LENGHT'});
print $buf;
質問、sysreadとreadの使いどころは?
自分はSocket関連だとsysread使いますが、ファイルを読むときは
readです。標準入力から読みます。
my $buf;
sysread(STDIN, $buf, $ENV{'CONTENT_LENGHT'});
print $buf;
質問、sysreadとreadの使いどころは?
自分はSocket関連だとsysread使いますが、ファイルを読むときは
readです。標準入力から読みます。
my $buf;
sysread(STDIN, $buf, $ENV{'CONTENT_LENGHT'});
print $buf;
質問、sysreadとreadの使いどころは?
自分はSocket関連だとsysread使いますが、ファイルを読むときは
readです。
986 :
4:03/03/26 21:25 ID:qOessVDe
987 :
950:03/03/26 22:56 ID:???
988 :
nobodyさん:03/03/27 00:16 ID:OfSB210s
質問したいんですが、ホント馬鹿な質問っぽいんで先にごめんなさい。
foreach (0 .. 10) {
if (-e "$_.dat") {
open(IN,"$_.dat") || &error("ファイルオープンエラー");
close(IN);
}
}
↑こんなことする意味ってありますか?(ifの部分)
それだったらエラーを返さずに
foreach (0 .. 10) {
open(IN,"$_.dat");
close(IN);
}
これだけでいくのと一緒・・・っていうかこうするべきなんでしょうか?
>>988 そもそも何がしたいのかに依る気がするんですが。
>>988 意味あるだろ? エラートラップをこまめにする癖をつけるのが悪いとは思わないし。
.datファイルが破損することだって絶対にないとはいえないし。
-eでいちいち存在をチェックしなくても、openで失敗するから問題ないっていうこと?
openが存在しないっていう理由でのみ失敗するなら、if (-e ...は無意味なんだけど。
つまりファイルが無ければ処理しないでスルーして次のファイル・・・
ってことをしてるつもりなんですが、
やっぱり下のじゃ問題ありっぽいですねサンクスです
なぜオープンに失敗したらnextするとしないんだろう。
ume
梅
産め!
埋め
15350
1000 :
nobodyさん:03/03/27 02:07 ID:KPZ2y82F
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。