簡體   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