cgi_tips
をテンプレートにして作成
開始行:
CGI tips プログラムなどなど6
#contents
* CGI tips [#ze877ab3]
ローカルで perl を使うには必要ないけれども、cgi では必要...
** フォーム(post)からの値を受け取る 21 March 2016 [#xbe...
CGI Programing with Perl
[[5.4フォーム処理のCGI例(METHOD="post"の場合)>http:/...
の一部を再掲させていただきました。そのままです。
もっと有用なことも書いてあるのですで、そちらを参考下さい...
http://www.aikis.or.jp/~s-suzuki/cgilabo/kouza/cgi2.html...
$length = $ENV{'CONTENT_LENGTH'}; # パラメータ...
read(STDIN, $buffer, $length ); # 長さ分だけ...
($arg1,$arg2) = split( /&/ , $buffer ); #パラメータ...
($name1,$value1) = split( /=/ , $arg1 ); #フォーム名...
($name2,$value2) = split( /=/ , $arg2 ); # 〃
$value1 =~ tr/+/ /; # フォーム形...
$value2 =~ tr/+/ /; # 〃
# フォーム形式の特殊文字・漢字を変換する処理
$value1 =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1)...
$value2 =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1)...
こんな感じ(↓)のフォームのhtmlからデータを受け取るときで...
パラメータは2つではありませんが……、
text、textarea、radio、select の受け取りも同じということ...
<form name="form1" id="form1" method="post" action="http...
<table>
<tr>
<th>Your Name</th>
<td>
<input type="text" size="75" maxlength="200" name="usern...
</td>
</tr>
<tr>
<th>Numbers
</th>
<td>
<textarea cols="50" rows="3" id="inputnums" name="inp...
</td>
</tr>
<tr>
<th>Shipping Type</th>
<td>
<input type="radio" name="shiptype" value="air" check...
<input type="radio" name="shiptype" value="EMS"> EMS ...
<input type="radio" name="shiptype" value="Registered...
</td>
</tr>
<tr>
<th>Country</th>
<td>
<select id="usercountry" name="usercountry">
<option value="NA">-- Select Your Country --</option>
<option value="Afghanistan">Afghanistan</option>
<option value="Albania">Albania</option>
(略)
<option value="Zambia">Zambia</option>
<option value="Zimbabwe">Zimbabwe</option>
</select>
</td>
</tr>
</table>
<input type="submit" value="Submit">
<input type="reset" value="Clear all">
** 別な html へ飛ぶ 21 March 2016 [#e00fdc8c]
!!! 「\n\n」がないと、500 Internal Server Error にな...
if(条件){
print "Location:http://hoge.hoge.jp/hoge.html\n\n";
exit;
}
** pdfファイルを表示する 21 March 2016 [#l95a383f]
[[CGI-BBS > CGI > Perl > PDFファイルのCGI経由での表示>...
の会話から要約すると……
pdfファイルが(対応していれば)ブラウザのウィンドウの中に...
- filename=$downloadpdf は保存するときの(ダウンロードさ...
- open (PDF, "<$mypdf"); は表示させる pdfファイルを指定す...
- ブラウザには、cgi の URI が表示されるので、pdfファイル...
print << "MYHTML";
Content-type: application/pdf
Content-disposition: inline;filename=$downloadpdf
Content-Transfer-Encoding: binary
MYHTML
open (PDF, "<$mypdf");
binmode(PDF);
while(read(PDF, $value, 4096)){
print $value;
}
close(PDF);
pdfファイルをダウンロードさせる(ダイアログを表示させる)...
Content-disposition: attachment;filename=$mypdf
2021年3月1日追記:「Content-Transfer-Encoding: binary」は...
2021年3月1日訂正:here document の内の最後は空の改行が必...
|Today:&counter(today);|Yesterday:&counter(yesterday);|To...
終了行:
CGI tips プログラムなどなど6
#contents
* CGI tips [#ze877ab3]
ローカルで perl を使うには必要ないけれども、cgi では必要...
** フォーム(post)からの値を受け取る 21 March 2016 [#xbe...
CGI Programing with Perl
[[5.4フォーム処理のCGI例(METHOD="post"の場合)>http:/...
の一部を再掲させていただきました。そのままです。
もっと有用なことも書いてあるのですで、そちらを参考下さい...
http://www.aikis.or.jp/~s-suzuki/cgilabo/kouza/cgi2.html...
$length = $ENV{'CONTENT_LENGTH'}; # パラメータ...
read(STDIN, $buffer, $length ); # 長さ分だけ...
($arg1,$arg2) = split( /&/ , $buffer ); #パラメータ...
($name1,$value1) = split( /=/ , $arg1 ); #フォーム名...
($name2,$value2) = split( /=/ , $arg2 ); # 〃
$value1 =~ tr/+/ /; # フォーム形...
$value2 =~ tr/+/ /; # 〃
# フォーム形式の特殊文字・漢字を変換する処理
$value1 =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1)...
$value2 =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1)...
こんな感じ(↓)のフォームのhtmlからデータを受け取るときで...
パラメータは2つではありませんが……、
text、textarea、radio、select の受け取りも同じということ...
<form name="form1" id="form1" method="post" action="http...
<table>
<tr>
<th>Your Name</th>
<td>
<input type="text" size="75" maxlength="200" name="usern...
</td>
</tr>
<tr>
<th>Numbers
</th>
<td>
<textarea cols="50" rows="3" id="inputnums" name="inp...
</td>
</tr>
<tr>
<th>Shipping Type</th>
<td>
<input type="radio" name="shiptype" value="air" check...
<input type="radio" name="shiptype" value="EMS"> EMS ...
<input type="radio" name="shiptype" value="Registered...
</td>
</tr>
<tr>
<th>Country</th>
<td>
<select id="usercountry" name="usercountry">
<option value="NA">-- Select Your Country --</option>
<option value="Afghanistan">Afghanistan</option>
<option value="Albania">Albania</option>
(略)
<option value="Zambia">Zambia</option>
<option value="Zimbabwe">Zimbabwe</option>
</select>
</td>
</tr>
</table>
<input type="submit" value="Submit">
<input type="reset" value="Clear all">
** 別な html へ飛ぶ 21 March 2016 [#e00fdc8c]
!!! 「\n\n」がないと、500 Internal Server Error にな...
if(条件){
print "Location:http://hoge.hoge.jp/hoge.html\n\n";
exit;
}
** pdfファイルを表示する 21 March 2016 [#l95a383f]
[[CGI-BBS > CGI > Perl > PDFファイルのCGI経由での表示>...
の会話から要約すると……
pdfファイルが(対応していれば)ブラウザのウィンドウの中に...
- filename=$downloadpdf は保存するときの(ダウンロードさ...
- open (PDF, "<$mypdf"); は表示させる pdfファイルを指定す...
- ブラウザには、cgi の URI が表示されるので、pdfファイル...
print << "MYHTML";
Content-type: application/pdf
Content-disposition: inline;filename=$downloadpdf
Content-Transfer-Encoding: binary
MYHTML
open (PDF, "<$mypdf");
binmode(PDF);
while(read(PDF, $value, 4096)){
print $value;
}
close(PDF);
pdfファイルをダウンロードさせる(ダイアログを表示させる)...
Content-disposition: attachment;filename=$mypdf
2021年3月1日追記:「Content-Transfer-Encoding: binary」は...
2021年3月1日訂正:here document の内の最後は空の改行が必...
|Today:&counter(today);|Yesterday:&counter(yesterday);|To...
ページ名: