2011-03-28 6 views
0

私は数時間前にphpを使い始めました。勉強を始めるために、コードスニペットの管理に焦点を当てた小さなウェブアプリを作ることにしました。すべてのCRUD操作は魅力的に機能しています。問題は次のとおりです。CakePHPでデータベースに保存されたPHPコードを扱う

ユーザーはアプリケーションに任意の種類のコードを追加します。これはPHP以外のプログラミング言語でスニペットを追加するときに機能します。 Model :: find()メソッドを使用すると、(データベースに格納されたコードのスニペットの)PHPコードが空の文字列に置き換えられ、ビューに表示できません。

なぜそれが起こっているのですか、どのように解決できますか?

読んでいただきありがとうございます。

+0

レンダリング中にデータベースに失われていますか?格納された後、phpmyadminを使用してテーブルに表示されますか? –

+0

あなたはもっと具体的になることができますか?コードの知識がなくてもこれをデバッグするのは難しいです。問題を引き起こす正確なコードのリンク/リストを提供できますか? – Unsigned

+0

はい、データベースに正しく保存されています。それは、Model :: find()メソッドによって返されたときにのみ消えます。私は配列を参照し、 "<?echo 'Hello World';?>"のような文字列があるべき場所は空の文字列です。 – marcio

答えて

1

ブラウザがPHP <? ?>タグをHTMLとしてレンダリングしようとしているため、おそらくブラウザの出力が表示されません。ブラウザに出力するためにコードをエスケープする必要があります:

<pre><code><?php echo htmlentities($model['Model']['code']); ?></code></pre> 
+0

はい、そうです。問題が解決しました! htmlentity()の代わりにhtmlspecialchars()を使用することにしました。これは攻撃的ではなく、 '&'、 '' '、' ''、 '<', '>'文字のみをサニタイズします。 – marcio

+0

ありがとうございました! – marcio

関連する問題