0

假设我有一个照片上传系统,用户必须为每个相册设置一个类别,以获得一个漂亮而干净的搜索功能的基础知识。但是,如果用户现在正在更改这样的值:

<select>
    <option value="">Choose a Category</option>
    <option value="Holiday">Holiday</option>
</select>

对此:

<select>
    <option value="">Choose a Category</option>
    <option value="Holiday">Something Stupid</option>
</select>

是“愚蠢的东西”输入到数据库中。

这就是为什么我必须进行服务器端检查的原因。但我不知道如何获取选项字段的所有正确值以将其与发布的值进行比较。

所以我的首要考虑如下:

PHP:

// Get all values of the option fields

// Push all the values into an array

if (in_array('foo', $array)) {
    // foo is in the array
}

感谢您的帮助。

4

2 回答 2

1

好的,所以我想我猜到了你想告诉什么。

您不应该在list.php文件中硬编码标签,而是在其中有一个数组。这样,您既可以使用它来生成选择字段,也可以用于验证。但是,通常最好使用带有类别的数据库表。

路径/list.php

return array(
    '1' => 'Name of Ctg 1',
    '2' => 'Name of Ctg 2'
);

在这里你生成选择

<select name="whatever">
<?php

$options = include('path/list.php');

foreach($options as $id => $name) {
    echo '<option value="' . $id . '">' . $name . '</option>';
}

?>
</select>

以及如何在“目标”页面中验证它

$options = include('path/list.php');
if(!array_key_exists( $valueFromUser, $options ) ) {
    // invalid option
} 
于 2013-09-20T19:32:16.347 回答
-1

当数据从包含选择标记的页面发布时,它将位于 $_REQUEST 数组中,如果您在 catcher php 页面中运行此 php:

foreach ($_REQUEST AS $key => $value) echo "$key = $value <br>";

您将看到 list.php 中的结果。

于 2013-09-20T19:31:20.107 回答