
PHPのhtmlspecialcharsについての質問です。
とあるフォームで、「情報登録フォーム」→「確認ページ」→「完了ページ」という構成でプログラムを組んでいます。
タグはエスケープした状態でDBに保存しようと思ってます。
<b>カズン</b>のようにエスケープした文字列をPOST送信したらもとの<b>カズン</b>に戻るという現象に見舞われてます。
まず「情報登録フォーム」で下記のように値をおくります。
<input type="text" name="shop" value="<b>カズン</b>" />
「情報登録フォーム」でタグが入ってもてもエスケープできるように、「確認ページ」の出力時にhtmlspecialcharsを使っています。
結果、下記のようになります。
<input type="hidden" name="shop" value="<b>カズン</b>" />
次にこの値を「完了ページ」にPOSTで送ろうとしたら元の<b>カズン</b>にかわってしまいます。
「完了ページ」で再度htmlspecialcharsをかけたら<b>カズン</b>になるんですが。
私は<b>カズン</b>は普通にPOSTすれば<b>カズン</b>が送られてくると仮定してたのですが、これは正しい仕様なのでしょうか?
A 回答 (4件)
- 最新から表示
- 回答順に表示

No.4
- 回答日時:
$_POST['shop']は「<b>カズン</b>」となります。
正しい実装の全てのブラウザで、このようになります。
(私は、そうならないブラウザを見たことがありません)。
エスケープしてDBに保存したい場合は、SQL文を組立てる際に、
htmlspecialchars、mysql_real_escape_string(mysqlの場合)を
しなければなりません。
#一般的に、DBには「<b>カズン</b>」を入れておき、
#HTML出力する際に、htmlspecialcharsでエスケープする方式と
#することが多いと思います。
No.3
- 回答日時:
連投失礼します。
InternetExplorer も <b>カズン</b> でPOSTされますよね・・。
<b>カズン</b> というデータを <b>カズン</b> のまま送信するのは InternetExplorer は <textarea></textarea> 内のデータでした。
すみません。
No.2
- 回答日時:
以前私も同じようなことを試していましたが、CGI側にPOSTされるデータはブラウザによって異なるようです。
おそらく value="<b>カズン</b>" でPOSTされたデータが <b>カズン</b> になってしまうのは Firefox ではないでしょうか?
InternetExplorer の場合は <b>カズン</b> がそのままPOSTされてきます。
よってブラウザによりますが正しい仕様だと思います。
No.1
- 回答日時:
一度html上で評価されてしまっているのでそうなっているのでしょう。
もしやるなら
<input type="hidden" name="shop" value="&lt;b&gt;カズン&lt;/b&gt;" />
という感じでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームを使わずにPOST送信す...
-
閉じるボタン「×」を制御したい
-
PHPで返信メールにチェックボッ...
-
「取得先」という表現について
-
Excel VBA:特定の文字列以降(...
-
findstrのerrorlevel
-
wordの差し込み印刷で文字...
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
クリップボード画像転送方法
-
DTOとEntityの差は何ですか。
-
VBAでPDFファイルの文書のプロ...
-
ps3で久しぶりにCDの音楽情報取...
-
Dosブロンプトでtabを出力したい
-
ActiveReportのサブレポート機...
-
VBA内でのGetPixelを使用した時...
-
DBのハッシュ化したパスワード...
-
テレビ番組表
-
MSFlexGridのデータを初期化し...
-
WordでExcelデータを差込...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ページネーション」で検索キ...
-
PHPで値を保持する方法
-
「表参道」が「侮Q道」となる
-
php 入力画面から確認表示画面...
-
php history.back()の戻るボタ...
-
PHP、MySQLで動作する検索プロ...
-
IFRAME内PHPのセッション変数取...
-
cookieの最大数
-
ページ移動での値の保持
-
設置されているページごとに宛...
-
POSTで受け渡したものを保存し...
-
処理時間のカウント
-
session,タスク作成,formでPOST...
-
セッション使用時のフォームの...
-
asp.netでのセッションを使用し...
-
必須入力項目チェック
-
php に関して質問です。 各ユー...
-
アクセスでのデータ保存について。
-
変数を送信したいのですが……
-
ログアウト処理
おすすめ情報