1

特定のコードをテンプレートとしてデータベーステーブルに保存したいのですが、それらが問題を引き起こすかどうかはわかりません。私はさまざまな投稿でさまざまな人々からの混合メッセージを読み続けていますが、このテーマについて明確であることに満足していません。

PHPをWebページに実際にエコー/印刷することはできないことはすでにわかっています。もちろん、HTMLの文字列をエコーすることはできますが、PHPコードでそれを行おうとすると厄介になります。私がこれを行うことができた唯一の方法は、ほとんどの場合明らかに悪いevalを使用することです...したがって、テンプレートを実装するために別の方法を使用しています(つまり、インクルードファイルとして使用するphpファイルを作成します)

私が尋ねている主な質問は、PHPコード文字列(SQLステートメントを含む)をテーブルのテキストタイプフィールド(mediumtext、longtextなど)内に格納することに本当に問題があるのか​​ということです。それらのSQLステートメントは実際のアクションを実行するようなことをすることができますか、それとも単にテキスト文字列として残りますか?

明確にするために、私がコードの文字列を保存している理由は、Web管理者がそれらをページの特定の領域(div)に割り当てたい場合に使用されるテンプレートであるためです。

4

2 に答える 2

4

SMARTYテンプレートを使用します。これにより、問題がきちんと解決され、データベースに何も保存する必要がなくなります。また、PHP コードを HTML から完全に分離します。

于 2013-02-01T19:03:11.360 に答える
-2

こんなことしないで。データベースが侵害され、悪意のある PHP が挿入された場合、それが実行される可能性があります。テンプレートをファイルとして保存し、必要に応じて呼び出す必要があります。

そして、実際にPHPをエコー/印刷できます。を使用してそれを行いevalます。

このeval()言語構​​造は、任意の PHP コードを実行できるため、非常に危険です。したがって、その使用はお勧めできません。この構文を使用する以外に選択肢がないことを慎重に確認した場合は、ユーザーが提供したデータを事前に適切に検証せずに渡さないように特に注意してください。

于 2013-02-01T18:59:55.037 に答える