重複の可能性:
「すべての引用符の前にスラッシュ」の問題
次のようなコードを使用して、php アプリケーションのさまざまな部分間でメッセージを渡しています。
$msg='"'.$_REQUEST['site'].'" modified.';
header('Location: sites.php?msg='.$msg);
exit();
反対側でそれを拾うコードは次のようになります。
<?php if (isset($_GET['msg'])) {echo '<p><em>'.$_GET['msg'].'</em></p>';}?>
私の開発環境では、出力は次のようになります"Some site"
。私の運用環境では、出力は次のようになります\"Some site\"
。
これは、環境間の設定の違いであると私は信じていphp.ini
ます。眼球がマメになるまで探しましたが、違いがわかりません。URL で渡される内容は次のようになります。
sites.php?msg="Some site" modified
このコードを入れると:
$msg=htmlspecialchars($msg);
上記の変数割り当てとヘッダー呼び出しの間で、URL は次のようになります。
sites.php?msg="Some site" modified.
ただし、どちらの環境でもメッセージは表示されません。$_REQUEST['site']
アンパサンドが含まれている場合も同様の問題があります。
ここで何が起こっているのか、そしてそれを修正する方法を誰かが説明できますか?