web-dev-qa-db-ja.com

チェックボックス入力をサニタイズする方法

メタボックスを追加しました:管理者編集画面のチェックボックス

<input type="checkbox" name="changeposition" />

それでsanitize_text_field()による入力タイプのテキストのように、どのようにしてチェックボックスからの入力をサニタイズできるのでしょうか。チェックボックスをサニタイズするためのこのような関数はありますか、それともカスタムメソッドを作成する必要がありますか?

2
Ashish

必ずマークアップに値を設定してください。あなたが持っているべきです。

<input type="checkbox" name="changeposition" value="yes" />

それなら、私は sanitize_key() をサニタイズするために使うことを勧めます。

キーは内部識別子として使用されます。小文字の英数字、ダッシュ、およびアンダースコアを使用できます。

Wordのyesをキーとして考えてください。それがあなたが期待しているのは小文字の英数字値です。


https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox も参照してください。

Value属性を省略した場合、送信されたデータにはデフォルト値のonが与えられるため、その場合の送信されたデータはsubscribe = onになります。

1
jaswrks

私はPHPで filter_var() 関数を提案します。それはあなたが使うことができるいくつかの定義済みのフィルタを持っています。

番号をサニタイズするには:

$sanitizedCheckbox = filter_var( $yourVar, FILTER_SANITIZE_NUMBER_INT );

文字列の場合は_NUM_INT_STRINGに変更するだけです。

0
550