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