掲示板CGIがあるのですが、その中でPHPを動かすことは可能でしょうか。
具体的には、PHPのセッションを使い
- ログインの切り分け
- メニューの表示の分岐
- 名前の入力欄にあらかじめ入力
などがやりたいです。
.htaccessを使い htmlファイルでphpやcgiを実行する方法はあるのですが、CGIプログラムの中でPHPが動かせるととても便利なのですが。
よろしくお願いいたします。
##追記
CGIのサイトは
https://www.kent-web.com/bbs/patio.html
patio.cgi
というプログラムがhtmlファイルを読み込んでいます(63行目)。
このhtmlにPHPを入れられれば動きそうなのですが、ソースがそのまま出てしまいます。
.htaccess
AddType application/x-httpd-php .php .html
patio.cgi(66行目まで)
#!/usr/local/bin/perl #┌───────────────────────────────── #│ WEB PATIO : patio.cgi - 2019/11/10 #│ copyright (c) kentweb, 1997-2019 #│ http://www.kent-web.com/ #└───────────────────────────────── # モジュール宣言 use strict; use CGI::Carp qw(fatalsToBrowser); use lib "./lib"; use CGI::Minimal; # 設定ファイル認識 require "./init.cgi"; my %cf = set_init(); # データ受理 CGI::Minimal::max_read_size($cf{maxdata}); my $cgi = CGI::Minimal->new; error('容量オーバー') if ($cgi->truncated); my %in = parse_form($cgi); # 認証モード my %au = authent() if ($cf{authkey}); # 処理分岐 if ($in{read}) { read_log(); } if ($in{edit}) { pwd_form(); } if ($in{mode} eq 'form') { form_page(); } if ($in{mode} eq 'find') { find_page(); } if ($in{mode} eq 'note') { note_page(); } if ($in{mode} eq 'past') { past_page(); } bbs_list(); #----------------------------------------------------------- # メニュー部表示 #----------------------------------------------------------- sub bbs_list { # アラーム数定義 my $alarm = int ($cf{m_max} * 0.9); # ページ数 my $pg = $in{pg} || 0; # スレッド表示 my ($i,@log); open(IN,"$cf{nowfile}") or error("open err: $cf{nowfile}"); my $top = <IN>; while (<IN>) { $i++; next if ($i < $pg + 1); next if ($i > $pg + $cf{pgmax_now}); push(@log,$_); } close(IN); # 繰越ボタン作成 my $page_btn = make_pgbtn($i,$pg,$cf{pgmax_now}); # テンプレート読込 open(IN,"$cf{tmpldir}/bbs.html") or error("open err: bbs.html"); my $tmpl = join('',<IN>); close(IN);
テンプレとして読み込んだファイルでPHPを実行したい
htmlファイル
<?php session_start(); // ログイン状態のチェック if (!isset($_SESSION["USERID"])) { header("Location: login.html"); exit; }//if ?> <!doctype html> <html lang="ja"> <head>
「可能です」だけで良いでしょうか。
あと「CGI」は総称です。
具体的な言語名や環境など情報を提示されたほうが良いです。
(過去質問が何一つ参考にならないとは思えません)
「CGIとしてPHPを動かすことができるか」なのか、「現在稼働している掲示板CGIプログラムの中からPHPを使ってスクリプトを動かすことができるか」、どちらか判然としませんね。何となく後者を想像していて、PHPでセッションなどを利用して現存のCGI以上の動的なページを実現したい、とのような要望をお持ちな気がしますが。そうだとすると何か誤解しているところがあるのでは。
先の私の[2020/11/07 16:47]のコメントにすれ違いで質問文が追記されましたね。後者に近い印象です。
ひとまず、言語名は、Perlだと思われるので、
Perlの質問タグをつけるのと、質問をそのように修正しましょう。
Perlは、.cgiと拡張子がつくことが多いため、CGI = Perlと思われがちですが、
他の方のコメント通り、
CGIは総称のため、
あくまで、「PHPもPerlもCGIとして動かすことが可能な言語」になります。