人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

CGIプログラミング初心者です。
拡張子.phpファイルにHTMLファイルのようにデザインを付けたい場合は、拡張子.phpファイルのままスタイルシートでデザインを付けられわけですが、
拡張子.cgiのファイルにデザインを付けたい場合はどうするのが普通なんでしょうか?

●質問者: kator
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CGI HTML PHP スタイルシート デザイン
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● pahoo
●23ポイント

「拡張子.cgiのファイル」とはPerlスクリプトのことで、「拡張子.phpファイルのままスタイルシートでデザインを付けられる」とはPHPのヒアドキュメントのことだというご質問であれば、下記サイトが参考になるでしょう。

◎質問者からの返答

ありがとうございます。

書籍に載ってなかったので「ヒアドキュメント」初めて知りました。


2 ● gorimaru9
●23ポイント

原則は同じです。

CGIを実行した結果、出力されるHTMLにスタイルシートが適用されているようにプログラミングすれば良いのです。

◎質問者からの返答

ありがとうございます。

SSIの場合、

をHTMLに記述してスタイルシートで

デザインしていたのですが、

書籍に載っていた拡張子.cgiのファイルにデザインを付けたいのですが・・・。

拡張子.cgiを.htmlに変えたらダメですよね・・・。


3 ● 牛乳先生(tukihatu)
●22ポイント

CGIの中に書いてあるHTMLの文を変更したり、すれば大丈夫です。

基本的にPHPと同じですね。

ただCGIはドリビとかで読んでもデザインの形では表示してくれないので、

サーバにあげて確認、という感じになってしまいます。

今回は、書籍に載っていた拡張子.cgiのファイルにデザインを付けたいということなので無理そうですが、

デザインとシステムを分ける方法が一般的です。テンプレート化、というやつです。

たとえばbbs.cgiとbbs.htmlを作って、デザインをhtmlの方に書いてcgiで呼び出す、という感じです。

こうしておけばシステム(cgi)は触らず、デザイン(html)だけ修正すればOKだし、HTML作成ソフトでもデザインで確認できて非常に便利です。大体出回ってるcgiはこのタイプですね。

$filename = "index.html";

if(open(IN,$filename)){
@lines = <IN>;
close(IN);
print "Content-Type: text/html\n";
print "\n";
print @lines;
}else{
print "Content-Type: text/html\n";
print "\n";
print "File Open Error";
}
exit;

http://perl.misty.ne.jp/function01/open.html

こんな感じでopen命令で外部のhtmlを呼び出して出力しています。

htmlじゃなくても良いので、tempだったりdatだったりtplだったり拡張子はさまざまです。


4 ● しろっくす
●22ポイント

以前PHPをやっていて、現在Perlを勉強したいと思っている方とお見受けします。

理想的にはロジックとデザインは分離しておくのが良いと思います。

TemplateToolkitを使うのがベターだと思います。

http://d.hatena.ne.jp/keyword/Template%20Toolkit

その為には

mod_perlのインストール

CPANモジュールの活用

などを勉強する必要があるかと思いますが、

上記のようなものは初めから視野に入れて進まれた方が良いと思います。

Catalystなどのフレームワークを使うと、

さらに開発が楽になってくるでしょう。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ