プロが教える店舗&オフィスのセキュリティ対策術

お世話になっております。
先日、フォームへ入力する際、使って欲しくない文字をpreg_matchを使うことで回避する事を教えていただきましたが、その際、二重防衛?として出力したとき、htmlspecialcharsを利用するとの事もお教えいただいたのですが、メールアドレスなどの@をエンティティするのはhtmlentitiesとの事なので、試にと、以下のようなコードを記述したのですが、変換されていない事に気付きました。

設置の仕方が可笑しいのでしょうか?それとも利用する関数が違うのでしょうか?アドバイス頂ければ幸いです。

以下は試行錯誤ながら実際に記述しているコードの一部です。
//echo preg_replace($row["mail"]);
//echo (htmlentities($row["mail"]));
echo (htmlspecialchars($row["mail"]));

A 回答 (1件)

htmlspecialchars で変換されるのは、参考URLにあるように


「"」「'」「&」「<」「>」の5つで
「@」は、対象外です。

元々「@」を表すエンティティ文字列は、無かったように思います。

参考URL:http://jp.php.net/manual/ja/function.htmlspecial …
    • good
    • 0
この回答へのお礼

BLUEPIXY様

こんばんは。お世話になっております。

>元々「@」を表すエンティティ文字列は、無かったように思います。

そうでしたか…今回教えていただいたサイトは以前にもこちらで教えていただき、「"」「'」「&」「<」「>」の5つというのはその時知りましたが、他に手立てはあるのか?と探して居たもので…。
いずれにせよ、無いと分かれば次に進めます。ご親切な回答を有難う御座いました。

お礼日時:2006/06/05 21:25

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