来源 -
控制器 -
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'])); ?>
错误在哪里?
答案 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。总是验证输入。