MTIncludeはテンプレートモジュールを読み込む為のテンプレートタグです。
結論から言えばこれを使う必要はありません。
テンプレート内に普通にPHPスクリプトを記入すれば動きます。
ただし、出力するファイルがhtmlである場合、サーバ側がhtml内のPHPスクリプトの実行を許可している必要があります。
サーバにもよりますが、PHPの実行の際にはファイルの拡張子が「.php」か「.phtml」あたりで無ければ実行を許可していない場合が多いようです。
つまり、
「出力するファイル名をサーバがPHPの実行を許可している形式に変える」
のが方法です。
拡張子がCGIですので、通常PHPの実行は許可されないと思います。一応ロリポップで試してみましたがダメでした。
方法があるとすればCGIでインラインフレームを作り、その中にPHPファイルを表示することくらいでしょうか。
ありがとうございます。私も試してみましたがだめでした。CGIでインラインフレームを作成する以外にないでしょうか?
逆のアプローチですが、例えば.php内でSSIを実行することが許可されているならば、なんとかできないこともありません。
要するに、PerlのCGIとして動いているmt-comments.cgiを、mt-comments.phpとしてやり、中身を全てSSIとして書き換えれば動くことは動くと思います。
ただし大幅な中身の修正が必要になりますし、サーバが.phpファイル内でのSSIの実行を許可していなければやはりダメ、ということでもあります。
ちなみに拡張子がCGIだからといってPHPが実行されないわけではありません。XREAサーバなどではPHPスクリプトもCGIとして実行可能です。
あとは.htaccessファイルで使用できる場合もあります。
.htaccessファイルを作成して
AddType application/x-httpd-php .cgi
と中身を書いてサーバにおいてやれば拡張子CGI内でPHPが動くようになります。
あとはサーバ側が.htaccessファイルでそれを許可しているかどうかですが。
参考になりました。試してみます。
出力される時に、http://www.sample.com/blog/mt-comments.cgi?entry_id=50のようになるので、この場合は出力形式がCGIだと思います。CGIで出力されてもPHPを組み込む方法はありますか?