Rob*_*est 4 html php mysql newline
我在脑海中四处奔波,试图决定如何在MySQL数据库中存储新行.
一点背景; 要求用户填写文本区域.这必须在读回之前存储在MySQL数据库中,并且内容包含在HTML电子邮件中.
我应该将它们存储为:
1)字符串文字 - 当然这是危险和不好的做法
2)作为一个字符串\r\nin - 当我从数据库中读回来时,它读取为4个字符,因此nl2br()无法正确替换它们.
3)作为HTML <br />- 因为它必须是html实体编码存储它最终存储,<br />因为当它到达电子邮件<br />打印而不是实际换行.传递它将html_entity_decode()解码需要编码的其他字符.
任何帮助都会受到赞赏.
按原样存放但先逃逸.这是您的选择1.当您需要提供此数据时,应用您需要格式化的任何功能.如果您需要在HTML使用nl2br()和htmlentities()功能中显示它.那也适用于邮件.
如果您有这样的文本区域数据,
$text="Hello Sir,
I am Robert'); Drop table students; --
.....
Yours most obedient pupil
.....";
Run Code Online (Sandbox Code Playgroud)
在您逃脱之后,只需将其存储起来,或使用准备好的声明.
$text = $mysqli->real_escape_string($text);
Run Code Online (Sandbox Code Playgroud)