No.1
- 回答日時:
直接Perlで、やったことはないので、
勘なのですが、
<!--#include file="sample.html"-->\n
の中の(")を(')、または無記入にしてみてください。
print "の(")をinclude file="の(")で、
閉じてしまっているような気がしました。
違ってましたらすみません。
(MacJPerl or AppleScriptの場合なので)
ただ、これだけですと<!-- -->でコメント化されて
しまうかもしれませんので、
SSIの効くHTMLを作って、頭の部分を丸々、print " "に
入れたほうが良いのでは?と思いました。
No.2ベストアンサー
- 回答日時:
oneyanさんがおっしゃるとおり、
print "<!--#include file="sample.html"-->\n";
だと「"」のところで文字列が分断されてしまって
「裸の文字列(sample.html)があったよ」
という旨のエラーになりますね(Perl 5.6で確認)。
その場合出力もされないはずなので、多分質問なさるときに
写し間違えたのでしょう。
で、サーバがApacheの場合ですが、残念ながらできません。
(下記オフィシャルサイトのFAQ参照)
セキュリティの問題もあるし、および現在の仕組みではどのように
それを実現すればいいかはっきりしない、1.3の次のバージョン
で解決したい課題のひとつだ、とあります。
そして、代替手段としては「SSIにやってほしいことを、
あなたのスクリプト自体がやってしまうことです」と書いてありますね。
つまり、その個所でsample.htmlをインクルードしたいのなら、
その代わりに
open(SAMPLE, "sample.html");
while (<SAMPLE>) {
print;
}
close(SAMPLE);
と書いてしまうことです。さらに共通化するなら、上記のコードを
sub print_header {
....
}
なんていうサブルーチンにして別ファイルに保存しておき、
CGIでは適宜それをrequireしておいて、必要な個所でprint_headerを
呼び出す、なんて作り方もあり得るでしょうね。
…そこまでする必要ないかもしれませんが。まあ、SSIで
やってることはみんなこの手で、Perlスクリプト側で書いて
しまうのが良いかと。
参考URL:http://httpd.apache.org/docs/misc/FAQ.html#ssi-p …
この回答へのお礼
お礼日時:2001/06/12 00:03
ありがとうございます!たいへん勉強になりました。
ちなみにサーバーはAPACHEなので、できないんですね、、、
教えていただいたやり方を参考にやっていきたいと思います。
No.3
- 回答日時:
とりあえず、CGIファイルからSSI起動は出来ます。
print "<!--#include file=\"sample.html\"-->\n";
で、行けるはずですが???
私が前やったときは、これでOKでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- Perl perlのflock関数でロックをかけたままopen関数で何度もファイルを開きなおすことはできますか 3 2023/05/01 22:25
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- Perl perlの構文でカンマの意味が分からない 2 2022/10/30 01:53
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI htmlからcgiを自動的に起動させたい 1 2023/02/21 19:39
- Perl perlのrequireの動き方についての質問 2 2022/10/30 17:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
結果を得て自動的にページ移動...
-
my $html<<EOMの意味を教えてく...
-
ランダムに背景画像を変える方法。
-
テキストエリアにテキストファ...
-
UTF8 URLエンコード
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
formで特定のinputを送信しない...
-
<SELECT>タグの折り返し
-
16進の10進変換について
-
実行時エラー 3020の対策
-
文字の横にプルダウンを表示さ...
-
デ-タテ-ブルの内容での更新...
-
セレクトメニューで2つの項目...
-
数値英単語変換
-
セレクトボックスのselected属...
-
複数列を持ったリストボックス...
-
selectタグ内の特定のoptionの...
-
【メモリ不足で落ちる(python)】
-
STLのlistで重複するものだけを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
malformed header from script....
-
結果を得て自動的にページ移動...
-
Perl CGIの中で # を使ってコメ...
-
my $html<<EOMの意味を教えてく...
-
テキストファイルの読み込み
-
どうしてもCookieとCGI・perlの...
-
パソコン → パャRン
-
Perlでの数字の12桁化
-
shift-jisからutf8に変換
-
サムネイルCGI
-
SSI にグローバル変数を渡すこ...
-
CGIから出力される文字が化けて...
-
cgiでのデータ受信
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
どちのほうがすきですか?
-
formで特定のinputを送信しない...
-
文字の横にプルダウンを表示さ...
-
16進の10進変換について
-
実行時エラー 3020の対策
おすすめ情報