- ベストアンサー
metaタグについて
Perl-CGIを利用しています。 今はa.cgi print "<meta http-equiv='Refresh'content='0;URL=b.cgi?\n\n'>"; これにa.cgiで取得した$strをb.cgi側で利用したいのですがうまく引っ張っていくことができません。 どうしたらよいでしょうか・・・
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あ、このあいだの質問 (Spreadsheet::WriteExcel) のやつの続きですね。 <META> タグで出すのもいいですが、CGI ならヘッダで出してもいいんじゃないですか? # ちなみに <META> タグで出すなら、content 内に \n\n はいらないです --- print "Refresh: 0; url=b.cgi?$str\n"; print "Content-Type: text/html\n\n"; print '<html><body>'; print '<br><br>'; print '<table align = "center">'; print '<tr>'; print '<td><font size = 5 ; color = blue>'; print "EXCEL書き出し"; print '</font></td>'; print '</tr>'; print '</table>'; print '</body></html>'; --- これで、例えば a.cgi での $str の値が "abcdefg" だったら b.cgi では $ENV{QUERY_STRING} に "abcdefg" という値が入ります。 要するに "?" マークの後ろが $ENV{QUERY_STRING} に入ってきます。 print "Refresh: 0; url=b.cgi?str=$str\n"; とした場合は $ENV{QUERY_STRING} は "str=abcdefg" になります。 渡すパラメタが一つしかないのならどっちにするかは好みの問題ですがね。 (オマケ) print "Refresh: 0; url=b.cgi/$str/\n"; とすると、URL 部は http://your.domain/cgi-bin/b.cgi/abcdefg/ になりますが、$ENV{PATH_INFO} には "/abcdefg/" が入るので、こういう方法も使えます。
その他の回答 (1)
- so_blue
- ベストアンサー率48% (50/104)
> a.cgiで取得した$strをb.cgi側で利用したいのですがうまく引っ張っていくことができません URLにパラメータをつけたい、ということでしょうか? print "<meta http-equiv='Refresh'content='0;URL=b.cgi?str=$str\n\n'>"; または、cgi→cgiなら Location: "b.cgi?str=$str\n\n"; でもよいかもです。
お礼
早速の回答有難うございます。 初歩的な質問でしたね・・・申し訳ございません。
お礼
早速の回答有難うございます。 ほんとたびたびお世話になります。 今日も無事解決しました。 またよろしくお願いします。