私はCakePHPでFCKEditorを使用しています。エディタから送信されたデータを保存するときに、htmlspecialchars()およびmysql_real_escape_string()関数をデータに適用してデータベースに保存する前に、そのデータを消去します。問題は、CakePHPフレームワーク内でこれをどこで行うのか本当にわかりません。CakePHPにデータを保存する際にmysql_real_escape_stringとhtmlspecialcharsを使う最良の方法は何ですか?
がfunction add()
{
if (!empty($this->data))
{
if ($this->Article->save(mysql_real_escape_string(htmlspecialchars($this->data))))
{
$this->Session->setFlash('Your article has been saved.');
$this->redirect(array('action' => 'index'));
}
}
}
しかします$ this->データが配列され、それが動作しませんので、これらの機能は、文字列を期待する:私はこのようなコントローラでみました。私はモデルのバリデーション配列でそれを行いますか?何も思いつきません。また、mysql_real_escape_string()の中でhtmlspecialchars()を実行するのが良い方法でないかどうかを教えてください。あなたがデータを保存とき
は、あなたがここで私を矯正するために、両方いただきありがとうございます。私はフレームワークがそれを独自に行う可能性については考えなかった。両方とも24kの評判を持っているので、私はあなたの言葉をそれに服用させてくれると思います。 :) – ryanulit
@ryanulit:私は24の評判を持っています。私は "k"がどこから来るか分かりません。 – Tomalak
@ryanulit:あなたは私たちの言葉を取る必要はありません。異なるレベルのエスケープを適用したテストデータを挿入し(このテストには特殊文字を含めてください)、テーブルをクエリして何が挿入されたかを確認します。 –