• ベストアンサー

CGI内でphpを含むhtmlを読込みたい

はじめまして。makademiと申します。 phpはまったくの初心者ですので、的外れでしたらすみません。 現在、以下のような構成のアンケートフォームを作成しています。 form.cgi ↓読み込み input.html 入力画面 check.html 確認画面 error.html エラー画面 end.html  完了画面 全てのhtmlはcgiでコードを読込んだ後に、print文で書き出しております。 今回はこのhtml内にphpのコードを書き込み、phpを動作させたいのですが、この場合どのようにすればよろしいでしょうか。 phpの動作の前提が『ファイル名.php』であるかと考えてますので、これだと拡張子は.cgiになってしまいます。 何か手はないでしょうか。

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

  • ベストアンサー
回答No.2

CGIとPHPはそもそもの動作する仕組みが違うため、そのままではできません。 一応、CGIの拡張子をPHPとして実行することは可能ですが、その場合はCGIとしては機能しません。 PHPは仕組みが違うと書きましたが、PHPにはCGIモードやコンソールモードといったものもあります。 たとえば、CGIモードの場合、perlのようにCGIの拡張子にして、ファイルの先頭部分に#!/usr/local/bin/phpのようにphpのコマンドラインのパスを入れてあげればCGIとして動作するはずです。 また、Perlやそのほかの言語で作成したCGIに.phpファイルのようなものを読み込みたい場合、少し手間ですが、コマンドラインのphpに.phpファイルを引数にして渡してあげれば、phpとして動作した結果のHTMLを受け取ることができるはずです。 はずばっかりですが、実際には、そういう動作は用意されているのは知っていますが、どう考えても普通にphpやperlを実行した方が早いので私はやったことはありません。 そもそも、そんなに言語をまぜこぜにする利点はあまりありませんので・・・苦労の方が多いですよ。

makademi77
質問者

お礼

ご回答ありがとうございました。 なるほど、CGIとPHPの競合は出来ない(できたとしても非常に厄介)なのですね… 色々制約がありまして、なかなか言語の統一が難しい状況ではありますが、なんとか統一してしまったほうが後々楽な気がしてきました。 そちらの方向で一度考え直してみたいと思います。 お世話になりました。

その他の回答 (1)

  • localica
  • ベストアンサー率52% (202/385)
回答No.1

今ひとつ要件が理解できていないので的外れかもしれません。 一番単純なのはhtmlに書き出すのではなくphpとして書き出せば? htmlで書き出さなければならない理由があるのでしょうか? htmlで書き出さなければならないのであれば例えばボタンなどでphpファイルを呼び出せばよいだけでは? >phpの動作の前提が『ファイル名.php』であるかと考えてますので サーバー側の設定でどのようにでもなりますけど。

makademi77
質問者

補足

ご回答ありがとうございます。 また、書き方がわかりにくくて申し訳ございません。 htmlである必要は全くないのですが、どちらにせよcgiから表示をしておりますので、ブラウザに表示されるURLとしてはhttp://localhost/form.cgiとなります。 こうなると最後の拡張子がphpではなくcgiになってしまい、phpが動作しないのです。 >サーバー側の設定でどのようにでもなりますけど。 なるほど…サーバ側で.cgiでもphpが動作するように設定が出来るということでしょうか。 どうもphpの動作条件がわかっておらず、拡張子が.phpであることがトリガとなって動作するのかと考えているのですが(.htmlだと同じコードでも動作しないので)間違っておりますでしょうか。

関連するQ&A