Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用mysql\u real\u escape\u字符串后在textarea中显示多行_Php_Html_Mysql_Mysql Real Escape String - Fatal编程技术网

Php 使用mysql\u real\u escape\u字符串后在textarea中显示多行

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

在将数据插入数据库之前,我尝试使用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);
不管出于什么原因,这都没用。我甚至尝试了
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库。另见