$ _POST和$ _GET将quote(')转换为反斜杠+引号(\')

use*_*472 6 html php post get

我有这个代码:

<?php  
echo $_GET['user'];
?>

<html >
<head>


</head>
<body>
<form method = "GET"  action="file.php">
    <input type = "text" name = "user"><br> 
    <input type = "submit" value ="submit"><br>
</form>
</body>
</html>  
Run Code Online (Sandbox Code Playgroud)

当我输入'文本框时,它打印出\'而不是'.
例如,如果我键入'hello'它打印出来\'hello\'.
那么我该如何解决?

hek*_*mgl 13

添加斜线,因为你必须magic_quotes_gpc=On在你的php.ini.请注意,此功能已被删除,您应该将其关闭php.ini.这是以前的安全功能,但你不应该依赖它.相反,编写自己的代码,valides 所有输入,并使用预处理语句时,你通过输入SQL查询或使用escapeshellarg(),如果您通过输入shell脚本.

但是,用于stripslashes()删除斜杠:

echo stripslashes($_GET['user']);
Run Code Online (Sandbox Code Playgroud)


che*_*che 5

看起来你的PHP解释器中设置了魔术引号.它们可以通过ini设置关闭.