繁体   English   中英

$ _POST字符串变量的某些字符显示错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM