我有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
?>
如何在发布这些特殊字符时正确显示这些特殊字符?
答案 0 :(得分:1)
试试这个:
echo stripslashes($_POST['txtNaam']);
答案 1 :(得分:0)
如果启用了magic_quotes_gpc
,PHP中的所有$_GET
,$_POST
和$_COOKIE
变量(GPC)都会有"
之类的特殊字符,{ {1}}和'
已转义。
为防止这种情况发生,您可以将其停用。
像这样编辑\
:
php.ini
答案 2 :(得分:0)
你试过吗
echo htmlspecialchars($_POST['txtNaam'], ENT_QUOTES);
或
echo htmlentities(stripslashes($_POST['txtNaam']), ENT_QUOTES)
答案 3 :(得分:0)
您还可以使用base64_encode()&amp; base64_decode()