PHP研究

13.フォームデータの処理

HTMLタグの処理。

$mes = htmlspecialchars($mes);

これで、
< → &lt;
> → &gt;
などに変換されます。


HTMLタグの除去。

$mes = strip_tags($mes);


<textarea>から受信した、複数行データの改行コードの処理。

$com = str_replace("\r\n", "\r", $com); //Win系は\r\n
$com = str_replace("\r", "\n", $com); //Mac系は\r
$com = str_replace("\n", "<br>", $com);


入力文字コードの判定。

$charcode = mb_http_input("G");

上は、method="GET"の場合。
method="POST"なら"P"。
クッキーから受信したデータなら"C"。
$charcodeには"SJIS"やら"EUC"などが入ります。

ただし、万能ではないようで、入力文が短いと誤認識されるようです。
フォームから送られるデータは、概ね

フォーム画面の文字コード

で送信されるようですので(例外もすこしあるようだけど)、
EUC画面ならEUCと決め付けちゃってもよいようです。

確実性を高めるなら、
hidden属性で長めの文字列を送信し、判別する方法もありです。