Php 使用mysql\u real\u escape\u字符串后在textarea中显示多行
在将数据插入数据库之前,我尝试使用mysql\u real\u escape\u字符串来防止sql注入:Php 使用mysql\u real\u escape\u字符串后在textarea中显示多行,php,html,mysql,mysql-real-escape-string,Php,Html,Mysql,Mysql Real Escape String,在将数据插入数据库之前,我尝试使用mysql\u real\u escape\u字符串来防止sql注入: $data=mysql_real_escape_string($_POST['data']); 现在,数据按如下方式存储: That\\\'s an apostrophe.\r\n\r\nThis new line isn\\\'t displaying properly! 因此,我试图在将其从mysql中拉出后,使其在文本区域内正确显示: $data = nl2br($data);
$data=mysql_real_escape_string($_POST['data']);
现在,数据按如下方式存储:
That\\\'s an apostrophe.\r\n\r\nThis new line isn\\\'t displaying properly!
因此,我试图在将其从mysql中拉出后,使其在文本区域内正确显示:
$data = nl2br($data);
不管出于什么原因,这都没用。我甚至尝试了str\u replace
将\r\n'
s替换为
,但是
仅显示在文本区域内
如何将mysql中的内容显示为:
That's an apostrophe.
This new line isn't displaying properly!
实际上使用
mysql\u real\u escape\u string
并不能完全保护您免受SQL注入
攻击
- 看这里
PDO
或MySQLi
- 看这里
mysql\u real\u escape\u string
并不能完全保护您免受SQL注入攻击
- 看这里
最好的方法是使用PDO
或MySQLi
- 看这里
你可能已经开启了魔法引号,
用
echo get_magic_quotes_gpc()
否则你会加倍报价
设置GPC(Get/Post/Cookie)操作的magic_quotes状态。当magic_quotes打开时,所有(单引号),(双引号),\(反斜杠)和NUL都会自动用反斜杠转义。"
顺便说一下,使用magic_引号不是一个好主意,请尝试使用其中一个类
PDO
或者mysqli您可能已经打开了magic_quotes,
用
echo get_magic_quotes_gpc()
否则你会加倍报价
“设置GPC(Get/Post/Cookie)操作的状态。启用magic_quotes时,所有“(单引号)、“(双引号)、\(反斜杠)和NUL将自动用反斜杠转义
顺便说一下,使用magic_引号不是一个好主意,请尝试使用其中一个类
PDO
或者mysqli是最好的解决方案
$data=mysql\u real\u escape\u字符串($\u POST['data'])代码>(如果需要,可以将其插入数据库)
echo stripslashes(str_replace('\r\n',PHP_EOL,$data))代码>(输出与输入完全相同)最佳解决方案
$data=mysql\u real\u escape\u字符串($\u POST['data'])代码>(如果需要,可以将其插入数据库)
echo stripslashes(str_replace('\r\n',PHP_EOL,$data))代码>(输出与输入完全相同)验证代码。看起来您多次转义该字符串。mysql\u real\u escape\u strin的输出应该是:这是一个撇号。新行显示不正确代码>。请注意,mysql\u xxx()
函数被认为是过时和不安全的(即使您正确地进行了转义)。它们也被弃用,这意味着它们可能在将来的版本中从PHP中删除。建议切换到等效的mysqli_xx()
函数或PDO库。请参见验证您的代码。看起来您多次转义该字符串。mysql\u real\u escape\u strin的输出应该是:这是一个撇号。新行显示不正确代码>。请注意,mysql\u xxx()
函数被认为是过时和不安全的(即使您正确地进行了转义)。它们也被弃用,这意味着它们可能在将来的版本中从PHP中删除。建议切换到等效的mysqli_xx()
函数或PDO库。另见