はじめまして。makademiと申します。
phpはまったくの初心者ですので、的外れでしたらすみません。
現在、以下のような構成のアンケートフォームを作成しています。
form.cgi
↓読み込み
input.html 入力画面
check.html 確認画面
error.html エラー画面
end.html 完了画面
全てのhtmlはcgiでコードを読込んだ後に、print文で書き出しております。
今回はこのhtml内にphpのコードを書き込み、phpを動作させたいのですが、この場合どのようにすればよろしいでしょうか。
phpの動作の前提が『ファイル名.php』であるかと考えてますので、これだと拡張子は.cgiになってしまいます。
何か手はないでしょうか。
No.1
- 回答日時:
今ひとつ要件が理解できていないので的外れかもしれません。
一番単純なのはhtmlに書き出すのではなくphpとして書き出せば?
htmlで書き出さなければならない理由があるのでしょうか?
htmlで書き出さなければならないのであれば例えばボタンなどでphpファイルを呼び出せばよいだけでは?
>phpの動作の前提が『ファイル名.php』であるかと考えてますので
サーバー側の設定でどのようにでもなりますけど。
この回答への補足
ご回答ありがとうございます。
また、書き方がわかりにくくて申し訳ございません。
htmlである必要は全くないのですが、どちらにせよcgiから表示をしておりますので、ブラウザに表示されるURLとしてはhttp://localhost/form.cgiとなります。
こうなると最後の拡張子がphpではなくcgiになってしまい、phpが動作しないのです。
>サーバー側の設定でどのようにでもなりますけど。
なるほど…サーバ側で.cgiでもphpが動作するように設定が出来るということでしょうか。
どうもphpの動作条件がわかっておらず、拡張子が.phpであることがトリガとなって動作するのかと考えているのですが(.htmlだと同じコードでも動作しないので)間違っておりますでしょうか。
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の競合は出来ない(できたとしても非常に厄介)なのですね…
色々制約がありまして、なかなか言語の統一が難しい状況ではありますが、なんとか統一してしまったほうが後々楽な気がしてきました。
そちらの方向で一度考え直してみたいと思います。
お世話になりました。
お探しの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ランキング
-
ホームページでCGIのフォームを...
-
エクセルで集計したい。
-
number 改行が追加できない
-
htmlからcgiを自動的に起動させ...
-
ラズパイでのCGIで、pythonソー...
-
CGIが読み書きするデータファイ...
-
フォームを再送信しますか?
-
apacheでPerl CGIが作動せず、5...
-
POSTメソッドの最大容量について
-
CGIの設置が分かりません・・・
-
(フリーの)ツリー掲示版CGI、...
-
ディープフェイクを作成するサ...
-
500 Internal Server Error
-
ホームページにCGIを設置したの...
-
CGIで出力するhtmlの<!DOCTYPE ...
-
cgi
-
CGIでinit.dで起動したプロセス...
-
フォーム送信とURLエンコードに...
-
cgiファイルのパス指定について
-
生成AI画像について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perlからphpを実行して結果を得...
-
CGIとPHPの違いってなんですか?
-
CGIで外部のPHPを実行するには?
-
サイトをアクセスした人の所在...
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
SFTPなどは使わないホームペー...
-
VBAでサーバーにアクセスするに...
-
URLに~/cgi-bin/~を隠す方法
-
ラジオボタンのグループ化
-
ASPから既存のexcelブックを開...
-
CGIでソースがそのままでてしま...
-
ApacheでのCGIについての質問
-
perl 矢印演算子 -> の使い方
-
ユーザの所属するグループを取...
-
FTPにて553エラー
-
ASP(IIS?)のエラーについて
-
JAVAで別サーバーのファイルの...
-
クライアントサイドとサーバー...
-
Ajax React Jqueryの位置づけと...
おすすめ情報