0

私はmysqlデータベースを持っていて、フィールドの1つに通常のhtmlとphpスクリプトがたくさんあります。データベースからプルしてフィールドを表示すると、php は php ではなく html としてレンダリングされます。php スクリプトを mysql データベース フィールドに配置し、Web ページにプルしたときにそれらを php としてレンダリングすることが可能かどうか疑問に思っていました。

4

3 に答える 3

3

eval 関数を使用する前にこれを行いました。ただし、eval は危険です。悪意のあるコードが挿入された場合、重大な損害が発生する可能性があるため、注意して進めてください。

別の方法として、クラス名とパラメーターをデータベースに保存し、指定されたクラスを生成してhtmlとphpを生成します。

于 2013-01-28T20:40:19.837 に答える
1

あなたが探しているのはeval()...データベースからコードを取得すると、文字列として保存されるためです。

しかし、注意してください!...

eval()言語構造は、任意の PHP コードを実行できるため、非常に危険です。したがって、その使用は推奨されません

PHP docsから直接取得。

eval()ユーザー入力をデータベース フィールドに取り込む場合は、ユーザーが悪意のあるスクリプトをデータベースにアップロードできるため、使用しないでください。

実際、なぜ PHP をデータベースに格納する必要があるのでしょうか。これは設計が不十分に聞こえるため、別の方法を見つけることを強くお勧めします。Mustacheを確認するか、PHP テンプレート エンジンを検索してください。

eval()最初によく読む必要がある場合は、セキュリティ上のリスクを理解していることを確認してください。

于 2013-01-28T20:41:40.210 に答える
1

そもそもこれを行うのは良い考えではありません - セキュリティ、設計、およびその他の考慮事項から。

これを行う通常の方法は、テンプレート化と呼ばれます。

データベース内の HTML コードには、次のようにプレースホルダーが含まれます。

<h1>Title of this page: {$title}</h1>
<p>Contents: {$contents}</p>
...

次に、データベースからプレースホルダーを取得した後、PHP を使用してこれらのプレースホルダーに入力します。SmartyTwigなど、この仕事を行う本格的なテンプレート エンジンもあります。(後者はもう少し軽量です)

于 2013-01-28T20:42:14.600 に答える