はじめまして。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を実行した方が早いので私はやったことはありません。
そもそも、そんなに言語をまぜこぜにする利点はあまりありませんので・・・苦労の方が多いですよ。
ご回答ありがとうございました。
なるほど、CGIとPHPの競合は出来ない(できたとしても非常に厄介)なのですね…
色々制約がありまして、なかなか言語の統一が難しい状況ではありますが、なんとか統一してしまったほうが後々楽な気がしてきました。
そちらの方向で一度考え直してみたいと思います。
お世話になりました。
No.1
- 回答日時:
今ひとつ要件が理解できていないので的外れかもしれません。
一番単純なのはhtmlに書き出すのではなくphpとして書き出せば?
htmlで書き出さなければならない理由があるのでしょうか?
htmlで書き出さなければならないのであれば例えばボタンなどでphpファイルを呼び出せばよいだけでは?
>phpの動作の前提が『ファイル名.php』であるかと考えてますので
サーバー側の設定でどのようにでもなりますけど。
この回答への補足
ご回答ありがとうございます。
また、書き方がわかりにくくて申し訳ございません。
htmlである必要は全くないのですが、どちらにせよcgiから表示をしておりますので、ブラウザに表示されるURLとしてはhttp://localhost/form.cgiとなります。
こうなると最後の拡張子がphpではなくcgiになってしまい、phpが動作しないのです。
>サーバー側の設定でどのようにでもなりますけど。
なるほど…サーバ側で.cgiでもphpが動作するように設定が出来るということでしょうか。
どうもphpの動作条件がわかっておらず、拡張子が.phpであることがトリガとなって動作するのかと考えているのですが(.htmlだと同じコードでも動作しないので)間違っておりますでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
会議室予約のプログラムを作成...
-
ssiのinclude fileについて
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
VBScriptで、ファイルから任意...
-
ApacheでのCGIについての質問
-
FTPにて553エラー
-
ラジオボタンのグループ化
-
【緊急】セッション変数を別の...
-
特定のCGIだけ、作動するかわり...
-
XサーバーでCGIを使うには??
-
.htaccessを2つ以上設置した場合
-
WEBデザイナーの方にお聞きした...
-
ftpでuploadのとき上書きとする...
-
VBAでサーバーにアクセスするに...
-
cgiのsystem関数を用い、ファイ...
-
WIn32API ディレクトリ内ファイ...
-
#!/usr/bin/perl --
-
CGI cgi-bin 動かない エ...
-
jcode.plファイルが閲覧できる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perlからphpを実行して結果を得...
-
CGIとPHPの違い
-
&や=、@を違うコードで表記したい
-
ssiのinclude fileについて
-
perl,ruby,phpは同系列?
-
CGIで外部のPHPを実行するには?
-
Perlについて聞きたいです.
-
ブログを作成するためのCGI...
-
CGI(perl)って・・・
-
CGIとPHPの違いってなんですか?
-
応募フォームを作るのは難しい...
-
PerlかPHP
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
URLに~/cgi-bin/~を隠す方法
-
CGIでソースがそのままでてしま...
-
FTPにて553エラー
-
ASPからJavaScriptへの受け渡し...
-
VBScriptで、ファイルから任意...
-
ラジオボタンのグループ化
おすすめ情報