• ベストアンサー

SSI対応じゃないCGIをSSI対応に…

ホームページに更新記録CGIを設置しているところです。 それ自体はIFRAMEでページに表示させるタイプで、現在ちゃんと動作しています。 しかし1つ問題が…ちょっとページデザインを換えようと思っているのです。 素材配布ページなんですけど、上に一覧の入り口を表で作り、その表の幅を600に設定しました。 その下に同じようなデザインで更新記録CGIをIFRAME表示させようとしました。 しかし、なぜか微妙に左にずれています。更新記録CGIの表はもちろん600に設定しています。IFRAMEの方はスクロールバー分ずれるだろうと思いちょっと広め(680)にして、IFRAME自体はセンターへ、中の表示も中央に設定しました。でも、ずれてしまいます。 この方法をどうにかする方法があればうれしいのですが、どうせならSSIで表示できないかと考えました。これだとセンター表示されるのでは?でも、スクロールはどうなるのかな…際限なく(CGIの表示設定数)表示されるんですかね。 で、現在使っている物がSSI対応じゃないCGIのようです。これをSSI表示させることは可能でしょうか? サーバのほうは、SSI表示OKでした。 私自身はCGIを0から作ることは出来ませんが、ある程度の改造をすることは可能です。私が出来る(理解できる)かどうかは逐一答えて行きたいと思っています。 何か良い方法がありましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • duckling
  • ベストアンサー率47% (88/185)
回答No.3

> htmlになんと書けばいいのですか? <!--#exec cmd="プログラムのパス"--> ↑これを書いたところに、プログラムから出力される文字が表示されます。 ただ、SSI対応のサーバでは、ファイル名を ○○.html ではなく、 ○○.shtml にしなければならない場合がありますので その辺りはパーミッション云々も含めて、 サーバの設定に従ってください。 インクルードされるプログラムの方は ○○.cgi でも動く場合がありますし、 ○○.pl にしないと動かない場合もあります。 その辺もサーバの設定で。 > 何か法則があるのなら…と思って質問してみました。 print "Content-type: text/html;\n\n"; ↑これを削除する理由は、 HTML側ですでに、text/htmlが出力されることになっているからです。 なので、この文章は要らない、という意味で、1行かどうかは分かりません。 2、3行あったら全部削除して下さい。(笑

master-3rd
質問者

お礼

ありがとうございます。何とかできました。 まず、CGIの方は「print "Content-type: text/html;\n\n"; 」も、ですが、スタイルシートの設定、BODY表記なども重複していたので消去しました。 で、htmlの方ですが、ご指摘のとおりshtmlでしか動きませんでした。 また、shtmlと同じフォルダにCGIが無いと動作しませんでした。←これに1時間ほど悩みました。初心者泣かせだなぁ… とりあえず完成しました。 ありがとうございます。

その他の回答 (2)

  • duckling
  • ベストアンサー率47% (88/185)
回答No.2

IFRAMEの中に表示するのであれば、 CGIでやって理想通りに表示されないものは SSIでやったところで理想通りには表示されません。 IFRAMEの中ではなく、その部分にSSIで表示したい、というのであれば、 スクロールはもちろんなく、全部が表示されることになります。 それでもSSIにしたい、という場合は、 CGIの中の print "Content-type: text/html;\n\n"; を削除すれば動く可能性はありますが、 そのプログラムのソースが無いことには断言は出来ません。

master-3rd
質問者

補足

素早い回答ありがとうございます。 >IFRAMEの中ではなく、その部分にSSIで表示したい あ、もちろんそうです。IFRAMEを使わなくて良いようにと考えSSIではと思いつきましたから。 >スクロールはもちろんなく、全部が表示されることになります。 やっぱりスクロールは無理ですか… >print "Content-type: text/html;\n\n"; これはCGIの中のヘッダーの1文でいいのですね。 >そのプログラムのソースが無いことには断言は出来ません。 もちろんそのとおりだと思います。ただ、何か法則があるのなら…と思って質問してみました。 で、最終的にどうしたら良いのでしょうか?htmlになんと書けばいいのですか? 再度お願いします。

  • panda0000
  • ベストアンサー率35% (59/165)
回答No.1

iframe のSCROLLING="no"にしてしまうことで、スクロールバー分のずれは解消できると思いますが、 スクロールバーがないと不都合のCGIなのでしょうか。 SSIで表示させる場合、ヘッダの出力は必要ありませんので、 print "Content-Type: text/html; charset=Shift_JIS\n\n"; のような記述は不要です。 それ以外の修正は実際見てみないとわからないのですが、 とりあえず、なにも改造しないままSSIで呼び出してみてはいかがでしょうか。

master-3rd
質問者

補足

素早い回答ありがとうございます。 >スクロールバーがないと不都合のCGIなのでしょうか。 ┌──┬──┬───┐ │日付│名前│修正点│ ├──┼──┼───┤ │日付│名前│修正点│ ├──┼──┼───┤ こんな感じでずらっと並ぶので、できるならスクロールバーがあったほうがうれしいです。 >print "Content-Type: text/html; charset=Shift_JIS\n\n"; これは、CGIの中のヘッダーの一列を消すということでOKですか? >なにも改造しないままSSIで呼び出してみてはいかがでしょうか どう表記したら良いのでしょうか?基本的なことがわかってなかったりします(T.T) 再度、よろしくお願いします。