MySQL的和PHP - 选择/选项列表和显示数据,用户仍然可以让我产生疑问
-
23-09-2019 - |
题
很抱歉的标题不清楚,示例情况搞清楚:
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
和ID
是timestamp
自动插入通过时加入其它4个字段的数据库。
要注意的第一件事是,用户可以记录在同一日期(playdate)可能具有相同的结果(侧=优胜者)相同的情况下(scenid)的多个的playings。因此,需要的唯一ID和时间戳的好措施。
现在,他们的用户页面上,我展示他们的记录播放历史记录的<select><option>...
列表的形式,并在最后2个按钮 - Delete Record
和Go 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
,我可以解析从什么所列scenid
和side
,但在这个例子中所有三个记录将有同样的结果。
我似乎已经画自己陷入了困境。没有人有一个建议,以怎样可以得到一些独特的识别数据(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']
收到的值是有效的,安全的,和所有的 - 它应该是一个整数,它应该是一个一个的值,用户可以接入,...