到目前为止,我有一个简单的web应用程序,使用laravel框架用php编写。
我的问题是在标题:如果我有一个有多个SELECT
元素的web表单,有人可以使用javascript将新选项附加到' SELECT'元素并提交表单(因此保存不应该在我的数据库中选择的项目?)?
正如评论所建议的,当然可以添加选项,甚至更改正在提交的值。
为了防止这种情况,您可以使用服务器端验证来检查传入的内容。Laravel提供了开箱即用的验证,使这一切变得轻而易举。
您想使用的验证规则是in
:
需要验证的字段必须包含在给定的值列表中。
在接收请求的控制器函数中,只需在顶部添加以下内容,以便在将请求传递到数据库之前验证请求:
$validator = Validator::make($request->all(), [
'select_input' => 'in:foo,bar',
], [
'select_input.in' => 'The option selected was not valid!',
]);
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
}
你需要把这些添加到你的控制器的顶部:
use Validator;
use Input;
use Redirect;
您可以使用更多的验证,请阅读文档