解決済み

htmlspecialcharsについて

  • 困ってます
  • 質問No.2399976
  • 閲覧数529
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 85% (35/41)

フォームから送られてきたデータの中に「<」や「>」が含まれていたら
htmlspecialcharsを使用してを変換したいのですが、変換されず
その原因もわからない状態でおります。

$text=$_POST['text'];
$text= htmlspecialchars($text);
print"text=$text";
としています。
フォームから「"」を入力すると「\"」と変換されます。
PHPマニュアルなど見ますと「<」は「&lt;」に変換され表示される
のでは思っているのですが。
また、preg_replace も試しましたが変換されませんでした。
PHP Version 4.3.10です。
どなたかご教授いただけないでしょうか。お願いします。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 66% (6/9)

例えばtextに「<」をPOSTした場合、このコードをブラウザから確認した場合「text=<」と表示されると思いますが、ソースを見てもそうなっていますか?ソースを見た時「text=&lt;」となっていれば、正常に動いています。(&は全角で記入しました。)

また、「"」をPOSTした場合、\"になるのは、マジッククオートが有効になっているんだと思います。
マジッククオートについては、参考URLをどうぞ。
お礼コメント
99Micchi

お礼率 85% (35/41)

ご回答ありがとうございました。
ソースではきちんと「&lt;」となっておりました。
画面上に表示されるはずと思いこんでしまいましたが、
ソースを見ればよかったんですね。。
なんだかお騒がせしてすみません。
投稿日時 - 2006-09-12 17:40:06

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 56% (18/32)

>フォームから「"」を入力すると「\"」と変換されます。
これは、PHPのmagic_quotes_gpcの働きです。'"/NULLはSQL的に意味のある文字をエスケープするやつです。

>PHPマニュアルなど見ますと「<」は「&lt;」に変換され表示される
もし、htmlspecialcharsで変換されないとなると、セキュリティ的にだいぶ面白いことになりそうです。
HTMLソースはどんな感じですか?
お礼コメント
99Micchi

お礼率 85% (35/41)

ご回答ありがとうございました。
ソースではきちんと変換されていました。
どうもすみません。
投稿日時 - 2006-09-12 17:50:46
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ