萌えPerl
しきり線
大項目 リンク
正規表現たん
 次に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>のボタンとかの容量が少しだけ大きいので、リンクを使うことが多いかもです。とは言うものの、最近の携帯はあんまり気にしなくても良いかもですね。