Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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
Javascript 避免使用不带htmlspecialchars的引号_Javascript_Php - Fatal编程技术网

Javascript 避免使用不带htmlspecialchars的引号

Javascript 避免使用不带htmlspecialchars的引号,javascript,php,Javascript,Php,我有以下search.php文件: <?php $q = $_GET["q"]; ?> <html> ... <input id="inp" type="text"> ... ... <script> // here i'm trying to avoid harmful user input with htmlspecialchars document.getElementById("inp").value = "<?ph

我有以下search.php文件:

<?php
$q = $_GET["q"];
?>

<html>
...
<input id="inp" type="text">
...
...
<script>
// here i'm trying to avoid harmful user input with htmlspecialchars        
document.getElementById("inp").value = "<?php echo htmlspecialchars($q); ?>"; 
</script>
...
</html>

...
...
...
//在这里,我试图用htmlspecialchars避免有害的用户输入
document.getElementById(“inp”).value=“”;
...
当我请求search.php?q=Adam(或任何A-Z,A-Z)时,它工作正常。但当我搜索“或\时,输入值与$\u GET[“q”]值不同

但如果我搜索“ItAdds”,请参见下图

我只需要将输入值设置为$_GET[“q”]。有没有更好的解决办法


$q=htmlspecialchars($\u GET[“q”])
@SagarV-如何使用
htmlspecialchars
第二次帮助?
$q=htmlspecialchars($\u GET[“q”])
@SagarV-如何使用
htmlspecialchars
第二次帮助?感谢您的回复。我用json_encode()替换了htmlspecialchars()。大多数角色都能正常工作。但当我搜索“或/它正在该字符之前添加另一个\时。例如,我搜索“”时,输入值更改为\”\“这可不好。@无聊的台词-听起来你好像打开了神奇的引号。更好的是:升级PHP。在PHP 5.4中删除了魔引号,该版本在2015年停止了安全修复。我的PHP版本是7.1.1,我还运行了以下命令:
if(get_Magic_quotes_gpc()){echo“on”;}else{echo“off”;}
并返回关闭。我尝试过php函数addslashes($q);它也会做同样的事情。那么您就不应该添加\了。我不能重现那个问题。是的,你是对的。这是我的错误,它是我声明的代码$q=$\u GET[“q”]的开头;但是有一行代码$q=mysqli\u real\u escape\u string($con,$q);这就是问题所在。谢谢你的帮助!谢谢你的回复。我用json_encode()替换了htmlspecialchars()。大多数角色都能正常工作。但当我搜索“或/它正在该字符之前添加另一个\时。例如,我搜索“”时,输入值更改为\”\“这可不好。@无聊的台词-听起来你好像打开了神奇的引号。更好的是:升级PHP。在PHP 5.4中删除了魔引号,该版本在2015年停止了安全修复。我的PHP版本是7.1.1,我还运行了以下命令:
if(get_Magic_quotes_gpc()){echo“on”;}else{echo“off”;}
并返回关闭。我尝试过php函数addslashes($q);它也会做同样的事情。那么您就不应该添加\了。我不能重现那个问题。是的,你是对的。这是我的错误,它是我声明的代码$q=$\u GET[“q”]的开头;但是有一行代码$q=mysqli\u real\u escape\u string($con,$q);这就是问题所在。谢谢你的帮助!
// here i'm trying to avoid harmful user input with htmlspecialchars        
document.getElementById("inp").value = "<?php echo htmlspecialchars($q); ?>";
document.getElementById("inp").value = <?php echo json_encode($q); ?>;