プロが教える店舗&オフィスのセキュリティ対策術

はじめまして。makademiと申します。
phpはまったくの初心者ですので、的外れでしたらすみません。

現在、以下のような構成のアンケートフォームを作成しています。

form.cgi
↓読み込み
input.html 入力画面
check.html 確認画面
error.html エラー画面
end.html  完了画面

全てのhtmlはcgiでコードを読込んだ後に、print文で書き出しております。

今回はこのhtml内にphpのコードを書き込み、phpを動作させたいのですが、この場合どのようにすればよろしいでしょうか。

phpの動作の前提が『ファイル名.php』であるかと考えてますので、これだと拡張子は.cgiになってしまいます。

何か手はないでしょうか。

A 回答 (2件)

今ひとつ要件が理解できていないので的外れかもしれません。



一番単純なのはhtmlに書き出すのではなくphpとして書き出せば?
htmlで書き出さなければならない理由があるのでしょうか?

htmlで書き出さなければならないのであれば例えばボタンなどでphpファイルを呼び出せばよいだけでは?

>phpの動作の前提が『ファイル名.php』であるかと考えてますので

サーバー側の設定でどのようにでもなりますけど。

この回答への補足

ご回答ありがとうございます。
また、書き方がわかりにくくて申し訳ございません。

htmlである必要は全くないのですが、どちらにせよcgiから表示をしておりますので、ブラウザに表示されるURLとしてはhttp://localhost/form.cgiとなります。

こうなると最後の拡張子がphpではなくcgiになってしまい、phpが動作しないのです。

>サーバー側の設定でどのようにでもなりますけど。

なるほど…サーバ側で.cgiでもphpが動作するように設定が出来るということでしょうか。
どうもphpの動作条件がわかっておらず、拡張子が.phpであることがトリガとなって動作するのかと考えているのですが(.htmlだと同じコードでも動作しないので)間違っておりますでしょうか。

補足日時:2010/01/07 14:37
    • good
    • 0

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を実行した方が早いので私はやったことはありません。

そもそも、そんなに言語をまぜこぜにする利点はあまりありませんので・・・苦労の方が多いですよ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
なるほど、CGIとPHPの競合は出来ない(できたとしても非常に厄介)なのですね…

色々制約がありまして、なかなか言語の統一が難しい状況ではありますが、なんとか統一してしまったほうが後々楽な気がしてきました。

そちらの方向で一度考え直してみたいと思います。
お世話になりました。

お礼日時:2010/01/12 10:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!