|
リンク
次にHTMLのリンクを使ってCGIにデーターを渡す方法です。
フォームのようにユーザーに操作してもらうわけではないので、見た目は静的な画面遷
移になってしまいますが、複数のHTMLファイルに対して1つのCGIファイルで対応
できるなどのメリットがあります。
では例を見てください。
データーを渡すHTMLのページ(seme03.html)
<html><head><title>TEST SEME</title></head>
<body>
<A href ="cgi-bin/uke03.cgi?x=URRRRYYYYY!!!">ディオさん</A>
</body>
</html>
|
データーを受け取るCGIのページ(uke03.cgi)
#!c:/perl/bin/perl
use CGI;
my $form = new CGI;
my $x = $form->param('x');
print "Content-type: text/html; charset=Shift_JIS\n\n";
print $x;
|
これをそれぞれ以下の場所に保存します。
C:\Program Files\Apache Group\Apache2\htdocs\seme03.html
C:\Program Files\Apache Group\Apache2\cgi-bin\uke03.cgi
すると次のような画面になります。↓をクリックしてみてください。
URL + ? + &
今回のはフォームより簡単な方法でCGIに値を渡すことができます。
CGIのURL?変数=値
CGIのURL?変数=値&変数=値&変数=値 ....
|
という感じで、URLのうしろに渡したい変数と値を付け足してやるだけでいけます。
他注意点をまとめると以下のようになります。
データーを渡すHTML側
- URLと値は?で区切ります。
- 値が2つ以上値があるときには変数=値と変数=値の間を&で区切ります。(http://url?x=123&y=abcみたいな)
- 変数自身には$や@を付けなくてよいです。
- 値が文字のときに''や""でくくる必要もありません。
- 値の文字に全角は使用できません。
- URLから値まで全ての文字列は半角255文字までです。
|
データーを受け取るCGI側
- CGIモジュールを使って取り出します。↓こんな感じ
- use CGI;
- my $form = new CGI;
- my $x = $form->param('x');
|
フォームを使った方法よりも使い道は少ないですが、携帯だとこれしか方法が無いので使用率は高いのかなぁ。
携帯もで<form>は使えます。(^-^;まちがいた。
<form>のボタンとかの容量が少しだけ大きいので、リンクを使うことが多いかもです。とは言うものの、最近の携帯はあんまり気にしなくても良いかもですね。
|
|
|
|