[英]Some characters of $_POST string variable are wrongly displayed
我有2个php页面。 在第1页上提交表单后,已发布的数据将显示在第2页上。 这工作得很好,但有的像人物'
和"
自动获得一个\\
只是自己之前和空间也没有了。
例如,我在第1页上输入' "
。这在第2页上显示为\\' \\"
。 如您所见,字符附加了\\
,空格也消失了。
我的代码:
Page1.php
<html>
<head>
<title>PAGE 1</title>
</head>
<body>
<form enctype="multipart/form-data" action="page2.php" method="post">
<input type="text" name="txtNaam" id="txtNaam" />
<input type="submit" value="Submit">
</form>
</body>
</html>
Page2.php
<?php
// TEST 1
echo $_POST['txtNaam']; // <== \' \"
echo "<br/>";
// TEST 2
echo rawurlencode($_POST['txtNaam']); // <== %5C%27%20%20%20%20%5C%22
echo "<br/>";
// TEST 3
echo urlencode($_POST['txtNaam']); // <== %5C%27++++%5C%22
?>
这些特殊字符发布后如何正确显示?
尝试这个:
echo stripslashes($_POST['txtNaam']);
如果打开了magic_quotes_gpc
则PHP中的所有$_GET
, $_POST
和$_COOKIE
变量(GPC)都已包含特殊字符,例如转义了"
, '
和\\
。
为防止这种情况发生,可以将其禁用。
像这样编辑您的php.ini
:
magic_quotes_gpc = Off
你有没有尝试过
echo htmlspecialchars($_POST['txtNaam'], ENT_QUOTES);
要么
echo htmlentities(stripslashes($_POST['txtNaam']), ENT_QUOTES)
您还可以使用base64_encode ()和base64_decode ()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.