为什么脚本发送/ n?

时间:2011-11-12 16:29:03

标签: php frameworks kohana

来源 -

控制器 -

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);

在使用trim()函数检查$ _POST数据之前,$ text是trim($ _ POST ['text'])。

但是当我写评论时 -

Hello!

This is a comment!

到数据库脚本发送

Hello!/n/nThis is a comment!

在视图中 -

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

错误在哪里?

2 个答案:

答案 0 :(得分:2)

我假设它发送Hello!\n\nThis is a comment!并且没有错误。
一切都很好

答案 1 :(得分:1)

假设Col. Shrapnel是对的并且您使用数据库模块(ORM使用它,只是说)您不必花费精力来逃避输入。但是,如果要将未转义的输入发送到数据库,则必须花费能量。

请参阅整个数据库模块中使用的Database::quote()Database::quote_column()Database::quote_identifier()Database::quote_table()

PS。总是验证输入。