- ベストアンサー
★PHP★フォーム登録時にタグを読み込まない方法
PHPで登録フォーム作成してます。 テキストエリアにタグを入力すると、データが壊れてしまいました。 タグを入力できないようにする方法はありますでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
入力側(ブラウザ側)で処理させるとすれば、JavaScriptなりで逐一orSubmit時にチェックするわけですが・・・ 基本的にクライアント側で制御させても無効にできるので、送られてきたデータをチェックするのが普通です。 また、基本的にセキュリティを高めるためにもこういった構文を削除するのは常識になってます。 (スクリプトかけるわけだから、簡単にブラウザクラッシュさせることができます。) PHPであれば、HTML構文を削除したりする構文が存在します。 strip_tags:HTMLタグを削除する http://www.php.net/manual/ja/function.strip-tags.php htmlspecialchars:代替文字に変換 http://php.net/manual/ja/function.htmlspecialchars.php ただ、どちらも100%安全ではないです。 たとえば、strip_tagsの場合、特定のタグを許可することが可能です。 ただ、許可したタグに含まれる属性などは検証しません。 そのため、許可したタグにスクリプトを埋め込んだ場合などは実行される危険性が高まります。 後者は、ブラウザによっては文字化けします。 入力時の検証だけでなく、出力を行う際にも、できればチェックを入れたいですね。
その他の回答 (2)
- takubou05
- ベストアンサー率52% (11/21)
入力できないの意味によりますが、 phpの strip_tags()を使えばhtmlタグやphpタグを除去することができます。 ただ、テキストエリアに顔文字などで "><"と入力されると、予想外の動作がおきます。 あとは害のない文字に変換する。 いわゆるHTMLエスケープです。 htmlspecialcharsの関数で行えます。 <>をそれぞれ'<' '>'に変換してくれます。
お礼
ご連絡ありがとうございます。 簡単にできるのでしたね。 助かりました★ ありがとうございました。
- yambejp
- ベストアンサー率51% (3827/7415)
状況がわかりませんが・・・ 表示のときにhtmlspecialchars()するだけでは?
お礼
ご連絡ありがとうございます。 解決しました。 ありがとうございました。
お礼
ご連絡ありがとうございます。 分かりやすい説明で助かります。 解決しました。 ありがとうございました。