Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 转义和HTML特殊字符_Php_Ajax_Mysqli_Htmlspecialchars - Fatal编程技术网

Php 转义和HTML特殊字符

Php 转义和HTML特殊字符,php,ajax,mysqli,htmlspecialchars,Php,Ajax,Mysqli,Htmlspecialchars,在插入DB之前,我使用以下命令转义数据:$entry=mysqli\u real\u escape\u string($link,$value)然后在显示之前在输出上使用htmlspecialchars(),但是在我的输出中,字符串中似乎有斜杠,如中,它不起作用。显然我不想那样 代码(为简单起见缩写): echo条纹斜杠(“它不工作”) 例如: 手册: 这将消除mysqli\u real\u escape\u string中的斜杠,但不是回显转义字符串,而是回显原始字符串 if (mysqli_

在插入DB之前,我使用以下命令转义数据:
$entry=mysqli\u real\u escape\u string($link,$value)
然后在显示之前在输出上使用
htmlspecialchars()
,但是在我的输出中,字符串中似乎有斜杠,如
中,它不起作用。显然我不想那样

代码(为简单起见缩写):

echo条纹斜杠(“它不工作”)

例如:

手册:

这将消除
mysqli\u real\u escape\u string
中的斜杠,但不是回显转义字符串,而是回显原始字符串

if (mysqli_query($dbc, $insert)) {
    echo htmlspecialchars($post['name']).' has been added to the inventory';
}

注意:OP更改了问题代码,以反映我在发布答案后的回答。我不是一字不差地复制他的代码。

你能给出一个示例输出吗?@PooyaSaeedi示例是:
它不起作用
试试这个:htmlspecialchars($entry['name',ENT_QUOTES)你说的“echo the original one”是什么意思?你的代码块反映了我已经在做的事情,不是吗?…是的,在你编辑问题并粘贴我的代码之后。。。现在您已经更改了代码,问题是您正在用mysqli\u real\u escape\u字符串版本覆盖$post变量。mysqli_real_escape_字符串通过添加反斜杠来转义引号。htmlentities不会做任何事情,tht函数与此情况无关,所以请将其删除。你的选择是1)返回使用你发布的原始代码,创建一个新数组,而不是覆盖$post,然后回显$post数组而不是转义数组,或者使用stripslashes。我的意思是htmlspecialchars而不是HTMLEntities,因此如果我理解正确,您的意思是不要使用数据库的输出作为成功消息的回音,只需获取原始输入并回音即可?如果您使用数据库的输出就可以了。但是您正在使用数据库的输入。我想说的是,不要重复你在mysqli\u real\u escape-string中运行过的东西,但如果你真的必须这样做,请使用斜杠。
if (mysqli_query($dbc, $insert)) {
    echo htmlspecialchars($post['name']).' has been added to the inventory';
}