プロが教えるわが家の防犯対策術!

ECCUBE2.13.1を利用しているのですが、
ECCUBE4にバージョンアップしようと思い2との違いをみているのですが、
これまで2では

<!--{php}-->
$test = 'テストです。';
echo $test;
<!--{/php}-->

とブロックに記述することでPHPが使えていたのですが、
4ではPHPの内容が<pre></pre>で囲んだように全て記述されてしまいます。
※この症状はhtmlとしての処理になるのかなとふと思いました。

javascriptで行う事も可能ですが、PHPでの実装方法も知っておきたいので、
ご存知の方、ご教授お願いいたします。

A 回答 (1件)

ECCUBE4 では、セキュリティ上の理由から、テンプレート内での


PHP コードの使用が制限されています。 代わりに、PHP コードを
実行するための推奨される方法は、コントローラーとサービスを使
用することです。

ただし、ECCUBE4 のテンプレート内で PHP コードを実行したい
場合は、次の手順を使用して実行できます。

1.ECCUBE4 プロジェクトの「app/」ディレクトリに「my_functio
ns.php」という名前の新しいファイルを作成します。

2.このファイルで、テンプレートで使用する PHP 関数を定義します。
例えば:

php
function my_test_function() {
$test = 'This is a test. ';
echo $test;
}

3.テンプレート ファイルに次のコードを追加して、「my_functions.php」
ファイルをインクルードし、「my_test_function」関数を呼び出します。
php
<?php require_once(__DIR__.'/../my_functions.php'); ?>
<pre><?php my_test_function(); ?></pre>

タグ内で「my_test_function」関数を呼び出します。

ただし、この方法でもセキュリティ リスクが生じる可能性があることに注意してください。テンプレート内で PHP コードを直接実行する代わりに、コントローラーとサービスを使用することをお勧めします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!