2011-11-12 3 views
0

ソース -なぜスクリプトが/ nを送信するのですか?

コントローラ -

Model::factory('index')->send_comment(mysql_real_escape_string($name), mysql_real_escape_string($artcl_id), mysql_real_escape_string($text), mysql_real_escape_string(time()), mysql_real_escape_string($ip)); 
         Model::factory('index')->update_comment_count($artcl_id); 

その$ _POSTデータをトリム()関数および$テキストで確認される前には、($ _ POST [ 'テキストを'])トリムです。

しかし、私はコメント書くとき - データベースのスクリプトに

Hello! 

This is a comment! 

をビューで

Hello!/n/nThis is a comment! 

を送る -

<?php echo htmlspecialchars(nl2br($comment['text'])); ?> 

間違いがありますか?

答えて

1

あなたが入力をエスケープするためにエネルギーを費やす必要はありません、データベースモジュール(ORMはそれを使用して、単に言います)を使用すると思います。ただし、エスケープされていない入力をデータベースに送信する場合は、eneryを費やさなければなりません。

データベースモジュール全体で使用されているDatabase::quote(),Database::quote_column(),Database::quote_identifier()およびDatabase::quote_table()を参照してください。

PS。常に入力を検証します。

2

私はそれがHello!\n\nThis is a comment!を送信し、間違いがないと仮定しています。
すべては大丈夫です