2
LaravelとTwigに基づいてOctoberCMSを使用しています。フォームチェックボックス配列を検証して消毒する方法は?
私はチェックボックスqueued[]
を持つフォームを持っています。それらは、ループを使用してLaravelで送信され、削除されます。
すべて動作しますが、どのようにしてvalidateを作成して配列をサニタイズできますか?
検証にはアスタリスク*が必要ですか? '*' => Input::get('queued')
?
サニタイズすると、エラーtrim() expects parameter 1 to be string, array given
が表示されます。
フォーム
<form method="POST" action="{{ url_current() }}">
<input type="hidden" name="_handler" value="onDelete" />
<input type="checkbox" name="queued[]" value="item1" />
<input type="checkbox" name="queued[]" value="item2" />
<input type="checkbox" name="queued[]" value="item3" />
<button type="submit" name="submit" value="delete">Delete Checked</button>
</form>
PHP
public function onDelete() {
# Validator
$validator = Validator::make(
[
'_handler' => Input::get('_handler'),
'queued' => Input::get('queued'),
'submit' => Input::get('submit')
]
);
if ($validator->fails()) {
return Redirect::back()->withErrors($validator);
exit();
}
# Sanitize
function sanitize_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = strip_tags($data);
$data = htmlspecialchars($data);
return $data;
}
# Delete Checked
$checkboxes = '';
$checkboxes = isset($_POST['queued']) ? $_POST['queued'] : array();
// Sanitize
$checkboxes = $this->sanitize_input($checkboxes);
foreach($checkboxes as $file) {
File::delete("$file");
}
}
私はそれが '「キューに入れられた[]」=>入力として動作します検証のためのソリューションを持っている::(「キューに入れられた」)を取得、 'それを試してください –
sanitize_inputメソッドで渡した$ dataとは何ですか? –
@recoverymen $ dataは、関数に渡されたすべてのフォーム入力です。私はそれに$チェックボックスを渡します。私はコードを更新します。 –