Javascript 避免使用不带htmlspecialchars的引号
我有以下search.php文件: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
<?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); ?>;