2012-03-01 7 views
1

PHPでget_magic_quotes_gpc()という機能について読むと本当に混乱します。私はいつも_POST _GETと_COOKIE変数にstripslashを使うべきですか

どこでも関数は廃止予定です(example)。

しかし、PHP 5.3のデフォルトの動作は何ですか?私はmagic_quotes_gpcがオンになっているかどうかを確認していましたが、その場合はすべてスクリプトPOSTGETCOOKIEという変数のためにすべてのスラッシュを取り除いてしまいました。

get_magic_quotes_gpc()を使用して追加されたスラッシュをチェックしてはならない場合、スラッシュを削除すると、PHP 5.3でスラッシュが追加されていないと間違ったデータになります。

私は現時点magic_quotes_gpcthis

と同じ混乱を持っているが私のサーバー(PHP 5.2.17)上にあるので、私はスラッシュを削除する必要があります。しかし、これを将来のPHP版に備えてどうすればいいですか?

今後、スクリプトの開始時にランタイム中にデフォルト値を設定することはできますか?しかし、デフォルト値は何ですか?

答えて

7

get_magic_quotes_gpc機能は推奨されていませんが、廃止予定の設定はmagic_quotes_gpcです。

ソリューションは、独自のサーバー上magic_quotes_gpcコンフィグ設定を使用していますが、非推奨magic_quotes_gpc設定がオンになっていないサーバー上で実行される堅牢なコードを書きたい場合もget_magic_quotes_gpcを使用しないことです。言い換えれば

    は、あなたの設定に magic_quotes_gpcをオフにし
  • 現在stripslashesを使用している場合は、get_magic_quotes_gpc() == 1の場合はstripslashesに変更してください。
+0

残念ながら私はそのサーバーの設定ファイルに書き込みアクセス権を持っていません。私はmagic_quotes_gpc()をチェックする独自の関数を書きました。しかし、追加のスラッシュは、PHP> 5.3のデフォルトの動作であると言いますか?あなたはそれについての参考文献を持っていますか? –

+0

いいえ、 'magic_quotes_gpc'が有効になっていなければ、スラッシュを追加するのはデフォルトの動作ではありません。独自のバージョンの 'get_magic_quotes_gpc'を書く必要はありません。非推奨ではありません。 –

+0

関数 "filter_input_array()"の使用を開始しました。この関数は値のスラッシュを自動的に削除するようです。私は実際にhttp://www.php.net/manual/en/filter.filters.sanitize.phpで与えられた警告テキストを得ていません。スラッシュを削除するフィルタのサニタイズのデフォルトの動作ですか?配列内のスラッシュが削除されないのはなぜですか?たとえば、 '' name [3] [to \ "ll]:" 'を出力として与えます。したがって、スラッシュは削除されますが、キーの値は削除されません。しかし、私はPHPのマニュアルでこの動作についての説明を見つけることができませんでした。 –

関連する問題