2014-12-03 168 views
0

我有一个通过post提交的textarea。插入之前我这样做:为SQL插入保留换行符 - PHP

mysql_real_escape_string($notes) 

而且我与输出检索的记录:

stripslashes($notes) 

然而,当我做符删除行,我得到一个巨大的段落。

使用换行符存储textarea并输出检索到的数据的正确方法是什么?

不知道它是否重要,但我插入到Mssql数据库。

+0

看看输出的来源。在HTML中,浏览器不会显示换行符。如果要在html中显示带有分隔符的文本,则可以使用'nl2br'函数来插入'
'标签来代替换行符。 – GolezTrol 2014-12-03 14:43:52

+5

难道是换行符仍然存在,但在浏览器中不可见,但仅在源代码中显示?简单的修正:'nl2br(stripslashes($ notes))' – RichardBernards 2014-12-03 14:43:53

+0

嗯,我一定是在事情的插入方面做错了什么,因为我以前的研究建议nl2br(stripslashes($ notes))应该可以工作,但事实并非如此。 – 2014-12-03 14:49:48

回答

0

stripslashes肯定不是输出到html的方式,为了逃避不可信的输入,请使用htmlspecialchars

最好的办法是利用white-space CSS规则:

<div style="white-space: pre-wrap"><?php echo htmlspecialchars($notes) ?></div> 

如果你看到在输出多余的斜线,你必须在数据库错误的数据。解决这个问题,而不是输出。