CGI研究室:CGIへの変数の渡し方(execコマンド)


 CGIへ変数を渡したいときに以下のようにすることで、HTMLからフォームを使用せずに CGIへ変数を受け渡すことができます。
 なぜ、こんな面倒なことをするかといいますと、次のようなタグで実行しようとしてもSSI 機能では変数を渡すことができないからです

<!--#exec cmd="/usr/home/dialup/3webnet/USERNAME/public_html/cgi-bin/sample.cgi?width=3&height=5&string=xxx" --> <-- ERROR !!

 しかしながら、SSIのタグを埋め込むHTMLファイルを呼び出すときに変数を与えること でCGIに変数を渡すことができます。


HTMLファイルを呼び出すときに以下のように変数を指定
http://www.osk.threewebnet.or.jp/~USERNAME/cgi-bin/sample.shtml?width=3&height=5&string=xxx


sample.shtml呼び出すHTMLファイル
<HTML>
<HEAD>
<TITLE> string viewer v3.0 
</TITLE>
</HEAD>
<BODY>
<!--#exec cmd="/usr/home/dialup/3webnet/USERNAME/public_html/cgi-bin/sample.cgi" -->
<BR>
<HR>
</FONT>
</BODY>
</HTML>

sample.cgiHTMLから変数を受け取り表示するさんぷる
#! /usr/sbin/perl
## PERL 変数表示実験 Ver 1.00 (C) by Kitaro 1997
## CGI and SSI used
## Initialize
require '/usr/home/dialup/3webnet/USERNAME/public_html/cgi-bin/jcode.pl';
require '/usr/home/dialup/3webnet/USERNAME/public_html/cgi-bin/cgi-lib.pl';
&ReadParse();
## Read value
$x = $in{'width'};
$y = $in{'height'};
$s = $in{'string'};
## convert
&jcode'convert(*s,'sjis');
## output value
print "value = $x : $y : $s \n";
# end of perl
exit;
# EOF


Copyright (c) kitaro 1997