0

私は2つのphpページを持っています。page1 でフォームを送信すると、投稿されたデータが page2 に表示されます。これは正常に機能しますが、一部の文字のよう'に、"自動的に\直前に が取得され、スペースもなくなります。

たとえば、私はページ1に与え' "ます。これは\' \"page2 のように表示されます。ご覧のとおり、文字が\くっつき、スペースもなくなりました。

私のコード:

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
?>

これらの特殊文字が投稿されたときに正しく表示されるようにするにはどうすればよいですか?

4

4 に答える 4

0

magic_quotes_gpcがオンになっている場合、PHPのすべての$_GET$_POSTおよび変数 (GPC) には、 、およびエスケープなどの特殊文字が既に含まれています。$_COOKIE"'\

これを防ぐには、無効にすることができます。

php.iniあなたのように編集してください:

magic_quotes_gpc = Off
于 2013-08-13T13:56:19.963 に答える
0

やってみました

echo htmlspecialchars($_POST['txtNaam'], ENT_QUOTES);

また

echo htmlentities(stripslashes($_POST['txtNaam']), ENT_QUOTES)
于 2013-08-13T13:59:35.887 に答える