• 締切済み

POSTされたデータの一括操作

POSTされたデータを一括で HTMLタグの取り除きと改行の取り除きを行いたいのですが foreach($_POST as $val => $key){ $_POST[$key] = htmlspecialchars ($val); $_POST[$key] = preg_replace("/\n|\r/", "", $val); } とやってみたのですが希望通りになりませんでした。 どこがまちがっているのでしょうか?

みんなの回答

noname#93451
noname#93451
回答No.2

PHPでやろうとせず、他の道で考えるのも方法です。 POSTする前にクライアント側でJavascriptを使って取り除くとか警告するのは如何でしょうか? もし、サーバ側で取り除くなら、SQLで取り除くのも1つです。 でも、どちらにしても、入力した内容から知らない間にタグを取るよりは、クライアント側なりサーバ側で変換したらこうなりましたけど~と人間の目で見て確認をお願いした方が良いと思います。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

foreach($_POST as $val => $key){ // $key => $val では $_POST[$key] = htmlspecialchars ($val); // この処理は下の行の代入で意味が無くなります $_POST[$key] = preg_replace("/\n|\r/", "", $val); } それとマニュアルに (正規表現のような) 技巧的な置換ルールを必要としない場合、 ereg_replace() または preg_replace() の代わりにこの関数を常用するべきです。 とあるので foreach($_POST as $key => $val){ $val = htmlspecialchars ($val); $_POST[$key] = str_replace(array("\n", "\r"), "", $val); }

関連するQ&A