プロが教えるわが家の防犯対策術!

このURLを参考に、フォームの確認ページをつくっているのですが、URLがデコードできません。
何度やってもエラーばかりで…Pealって難しいですね(PHPのほうが簡単)。
どうすればいいですか?

http://www.aimix.jp/cgi/syohofrmgetvw.html

A 回答 (3件)

PHPでもデコードが必要だとは思いますけどね。


モジュールを使わずに自前で実装すれば、どの言語でも難しくなります。

一番簡単なのはCGIモジュールを使った方法です。
サンプルを載せておきますので、参考にしてみてください(動作確認済)。

--- form.html ---
<form action="test.cgi">
<input type="text" name="message" />
<input type="submit" "実行" />
</form>

--- test.cgi ---
#!/usr/bin/perl
use strict;
use CGI;

my $cgi = CGI->new;
my $message = $cgi->param('message');

print "Content-type: text/html\n\n";
print <<__HTML__
<html>
<body>
<h1>MESSAGE: $message</h1>
</body>
</html>
__HTML__
    • good
    • 0

>URLがデコードできません。


の意味がわかりません。
 QUERY_STRINGSで受け取ったURLエンコードされた文字列を出コードできないという意味ですか?
$enCodedQUERY_STRING =~ tr/+/ /;
$enCodedQUERY_STRING =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    • good
    • 0

PealがPerlの間違いだとして(もし、Pealと言う言語の話だったら、話が違うかもしれません)



まずは、そのエラーの内容を確認するのが最初です。
それがわからなければ、何を直せばよいか判断できません。

表示が出ないようなら、2行目に
use CGI::Carp qw(fatalsToBrowser);
とでも入れてください。
エラー内容がブラウザに表示されるはずです。

他にありがちなものでは1行目の
> #!/usr/local/bin/perl
が使っている環境とあってない、というのがあります。
# 2回も「Peal」と書いてることからすると、もしかしたらここもpealになってたりして。

また、ファイルの実行権が無いのかもしれません。


ついでに。
そのサイトを斜め読みしましたが、書き方が若干古いです。
最近では、 use strict して、変数は my を付けて有効範囲を限定するのが主流です(特に規模が大きなスクリプトでは)
また、CGIモジュールを使えば、Perlでもフォームとのデータのやりとりが簡単にできます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!