電子書籍の厳選無料作品が豊富!

<form>で文字列を送信して「$_POST」で受信する場合、
「'」「"」「\」の前にのみ自動で「\」がついてしまいます。
(「'」「"」「\」→「\'」「\"」「\\」)
これはなぜでしょうか?
できれば\を付けないようにしたいのですが…

お詳しい方、よろしくお願いいたします。

<環境>
EUC-JP
PHP4.4.4
<プログラム>
<?php
header('Content-Type: text/html; charset=EUC-JP');
header('Content-Language: ja');
mb_internal_encoding("EUC-JP");
$step = $_GET["step"];
$tx = $_POST["tx"];
if($step==''){ // ---- 初期画面
print "<form action='hoge.php?step=end' method='POST'>";
print "<input type='text' name='tx'>";
print "<input type='submit' value='ENTER'>";
print "</form>\n";
}
if($step=='end'){ // ---- 受信画面
print "{$tx}";
}
?>

A 回答 (2件)

マジッククォート機能により、一部記号類がエスケープ処理されているためです。

stripslashesで戻してください。

$step = stripslashes($_GET["step"]);
    • good
    • 0
この回答へのお礼

できました!
これは簡単でいいですね。
ありがとうございました!!

お礼日時:2007/10/11 10:18

magic_quotes_gpcという設定をoffにしてしまえば解決されそうな気がします。



http://jp2.php.net/manual/ja/function.addslashes …

この辺のページに詳しく書かれていると思うので見てみてください。
    • good
    • 0
この回答へのお礼

なるほど。
やはり自動で付加する機能があるのですね。
ありがとうございました。

お礼日時:2007/10/11 10:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!