0
我是用這個來我的數據保存到數據庫中:消毒:: HTML有口音CakePHP2.0
$this->request->data['Post']['body'] = utf8_decode($this->request->data['Post']['body']);
那樣,我可以保存到我的數據庫就像口音的人一些「特殊」字符: áéíóú沒有任何問題。
然後,我試圖保護我的應用程序從HTML和SQL注入和我使用的消毒是這樣的:
$this->request->data['Post']['body'] = Sanitize::html($this->request->data['Post']['body']);
所以,現在我的文字被存儲在數據庫中是這樣的:
á = á
é = é
í = í ...etc
我不想那樣。另外,我在DB上的字段有最多的字符,這沒有幫助。
我也嘗試使用options = true,encode = false或encode ='utf8'進行清理的選項參數,但似乎沒有任何改變。
我該怎麼辦? 謝謝。
更新1
我也曾嘗試使用ヶ輛功能我的控制器上,但它在我的數據庫中插入該替代的:
Ã
好的,那麼我應該在我的視圖中使用h($ myText)來保護它免受HTML注入嗎? – Alvaro 2012-04-16 16:48:52
好的,我可以在我的視圖上對待它,因爲我的身體containts在HTML格式(aaa)上創建了URL,並將其銷燬。 我也嘗試過在我的控制器上使用htmlentities,但它可以節省我這個數據庫:Ã而不是á – Alvaro 2012-04-16 16:55:38
如果你不想存儲HTML,你可以'sanitize :: stripTags()'。 'h()'不會幫助你。它只是將字符轉換爲實體,就像'Sanitize :: html()'所做的那樣。 – jeremyharris 2012-04-16 16:56:44