php - MySQL 和 PHP - 选择/选项列表并向用户显示仍然允许我生成查询的数据

标签 php mysql forms hidden-field

抱歉,标题不明确,举个例子说明一切:

TABLE: Scenario_victories

ID  scenid        timestamp      userid side    playdate
1   RtBr001   2010-03-15 17:13:36   7     1     2010-03-10
2   RtBr001   2010-03-15 17:13:36   7     1     2010-03-10
3   RtBr001   2010-03-15 17:13:51   7     2     2010-03-10

IDtimestamp添加其他 4 个字段时,数据库会自动插入。

首先要注意的是,用户可以在同一日期 (playdate) 录制同一场景 (scenid) 的多次播放,结果可能相同(side = winner)。因此需要唯一的 ID 和时间戳才能很好地衡量。

现在,在他们的用户页面上,我在 <select><option>... 中显示他们录制的播放历史记录末尾有 2 个按钮的列表表单 - Delete RecordGo to Scenario

我的脚本采用了 scenid在访问了一些其他表格后,返回了一些更用户友好的内容,例如:

  (playdate)   (from scenid)        (from side)
#########################################################
# 2010-03-10  Road to Berlin #1 -- Germany, Hungary won #
# 2010-03-10  Road to Berlin #1 -- Germany, Hungary won #
# 2010-03-10  Road to Berlin #1 -- Soviet Union won     #
#########################################################
     [Delete Record]              [Go To Scenario]

在 HTML 中:

<select name="history" size=3>
  <option>2010-03-10  Road to Berlin #1 -- Germany, Hungary won</option>
  <option>2010-03-10  Road to Berlin #1 -- Germany, Hungary won</option>
  <option>2010-03-10  Road to Berlin #1 -- Soviet Union won</option>
</select>

现在,如果您要突出显示第一条记录并单击 Go to Scenario那里有足够的信息供我解析它并生成您想要查看的确切场景。但是,如果您选择 Delete Record没有-我有playdate我可以解析 scenidside根据所列内容,但在此示例中,所有三个记录将具有相同的结果。

我好像把自己逼到了墙角。有没有人建议我如何获得一些唯一的识别数据( ID 和/或 timestamp )以在不向用户显示的情况下使用此表单?

仅限 PHP,我必须符合 NoScript!

最佳答案

你可以设置一个value选项上的属性,并使其包含 ID (唯一的) 您的数据:

<select name="history" size=3>
  <option value="1">2010-03-10  Road to Berlin #1 -- Germany, Hungary won</option>
  <option value="2">2010-03-10  Road to Berlin #1 -- Germany, Hungary won</option>
  <option value="3">2010-03-10  Road to Berlin #1 -- Soviet Union won</option>
</select>

然后,当收到已发布的数据时,$_POST['history']将包含 ID对应于用户选择的条目。

并且,像这样 ID是独一无二的,您可以毫无疑问地使用它来识别您的数据。


value的内容属性在设置后会在提交表单时传递给服务器——它不会显示给用户。

当没有value为选项设置时,浏览器会在提交表单时将该选项的内容传递给服务器——这就是您所得到的。

旁注:与用户提交的所有内容一样,您必须检查收到的值是否为 $_POST['history']是有效的、安全的,以及所有这些——它应该是一个整数,它应该是用户可以访问的值之一,...

关于php - MySQL 和 PHP - 选择/选项列表并向用户显示仍然允许我生成查询的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2541643/

相关文章:

php - 如何将删除按钮添加到将从 MySQL 表中删除行的 PHP 表单

c# - 强制表单以焦点/顶部打开

PHP 数组到对象的转换

php - 自动填充动态生成的表单

php - propel 2,mysql - 反向没有错误,没有创建 schema.xml

c# - 从 MySqlReader 读取

python-mysqldb插入图像int值错误

php - Elementor Pro 表单到 webhook 集成的示例

php - PDO 插入查询失败

javascript - jQuery .clone() 整个 HTML 表单及其所有值