掲示板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>