验证用户提交的内容是否至少有一个列入白名单的值且没有列入黑名单的值

发布于 2024-12-02 17:22:51 字数 289 浏览 4 评论 0原文

我知道有很多这样的东西,但我正在寻找稍微不同的东西。

直接的 diff 对我来说不起作用。

我有一个允许标签的列表(数组),即

["engine", "chassis", "brakes", "suspension"]

我想检查用户输入的列表。 Diff 不起作用,因为用户可能无法输入所有选项,即 ["engine"] 但我仍然希望它通过。如果他们在列表中放入诸如 banana 之类的内容,我想要发生的事情就是失败。

I know there are a lot of these, but I'm looking for something slightly different.

A straight diff won't work for me.

I have a list (array) of allowed tags i.e.

["engine", "chassis", "brakes", "suspension"]

Which I want to check with the list the user has entered. Diff won't work, because the user may not enter all the options i.e. ["engine"] but I still want this to pass. What I want to happen is fail if they put something like banana in the list.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

过气美图社 2024-12-09 17:22:51

您可以使用 array_intersect(),并且使用输入数组的大小检查结果数组的大小。如果结果较小,则输入包含不在“允许”数组中的一项或多项。如果它的大小相等,则其中的所有项目都在用户的输入中,因此您可以使用该数组做任何您想做的事情。

You can use array_intersect(), and check the size of the resulting array with the size of the input array. If the result is smaller, then the input contains one or more items not in the 'allowed' array. If its size is equal, all items in it are in the user's input, so you can use the array do do whatever you want.

海风掠过北极光 2024-12-09 17:22:51

使用 array_diff();

$allowed=array("engine","chassis","brakes","suspension");
$user=array("engine","brakes","banana");
$unallowed=array_diff($user, $allowed);
print_r($unallowed);

这将返回banana,因为它在$user 中,但不在$allowed 中。

Use array_diff();

$allowed=array("engine","chassis","brakes","suspension");
$user=array("engine","brakes","banana");
$unallowed=array_diff($user, $allowed);
print_r($unallowed);

This will return banana, as it is in $user, but not in $allowed.

离去的眼神 2024-12-09 17:22:51

array_diff()http://nl.php.net/array_diff

返回一个数组,其中包含 array1 中不存在于任何其他数组中的所有条目。

if ( array_diff( $input, $allowed ) ) {
    // error
}

array_diff(): http://nl.php.net/array_diff

Returns an array containing all the entries from array1 that are not present in any of the other arrays.

if ( array_diff( $input, $allowed ) ) {
    // error
}
阳光下的泡沫是彩色的 2024-12-09 17:22:51
$allowed_tags = array("engine","chassis","brakes","suspension");

$user_iput = array("engine", "suspension", "banana");

foreach($user_input as $ui) {
  if(!in_array($ui, $allowed_tags)) {
    //user entered an invalid tag
  }
}
$allowed_tags = array("engine","chassis","brakes","suspension");

$user_iput = array("engine", "suspension", "banana");

foreach($user_input as $ui) {
  if(!in_array($ui, $allowed_tags)) {
    //user entered an invalid tag
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文