我对php和stackoverflow相当新,但我知道基础知识,我可以很快地选择。
我有一个应用程序,涉及向用户提供一组复选框和单选按钮,每个组在一个单独的页面上,并从菜单到达。
e.g。 国籍 办公室名称 收入情况
他们不必从每个组中进行选择,当他们做出选择时,他们可以根据他们的选择查询数据库,然后显示数据。我希望他们能够通过重新访问任何选择页面来调整他们的选择,然后重新查询数据库。
当他们浏览这些选择表格时,我如何最好地存储他们的选择。我使用cookie或会话变量吗?我考虑过将他们的选择存储在数据库中,但这可能会变得复杂。
我在这个阶段只需要指针。
由于
贾斯汀
答案 0 :(得分:0)
我会按以下方式设计:
创建包含您想要的任何和所有数据的表单。编写PHP,这样如果您提供用户的ID(将很快到达),如果从数据库查询其记录并显示他们已保存的所有内容。他们可以进行任何他们喜欢的更改并提交表单。这将更新他们在数据库中的记录,下次他们查看页面时,会显示新信息。
提交表单时,应首先检查表单是否已存在 - 如果是,请更新记录 - 如果没有,请插入表单。您可以在PHP中执行此操作,但您也可以通过一个很好的mysql语句(在重复键更新时插入...)来执行此操作。
当用户创建帐户时,他们的登录名/用户名与数据库中的唯一ID相关联。当他们验证这一点(通过再次登录)时,ID被传递给会话变量,以便您可以随时从数据库中轻松访问他们的数据。
最后,我建议当你这样做时,使用预准备语句从数据库中获取数据,我建议PDO自己,这很好,可以跨数据库兼容类似。如果您正在寻求良好的安全性,我建议不要直接存储密码,而是将其保存并保留即时验证的哈希值。最好是直接插入一个半独特的令牌,这样如果他们忘记了密码,你可以发送给他们通过链接回来验证。此外,在cookie中存储用户名/登录是可以的,但从不在那里存储密码。事实上,永远不要在会话中存储密码 - 一旦验证了密码,只需存储某种签名的标志并检查它。
编辑:
如果您能够在流程开始时为用户分配唯一的ID(比如说从用户那里收到电子邮件),那么您可以给他们一个唯一的ID(或者哎呀,在紧要关头,使用他们的电子邮件地址那么你可以从一开始就将数据插入到最后一行。 Mysql提供insert ... on duplicate key update
语法。这意味着您可以将数据插入到每个传递的页面的行中,在任何时候返回它并作为奖励,因为您使用像他们的电子邮件地址这样的唯一键,这将使他们与数据绑定,他们能够要输入一些数据,请离开您的网站,稍后再返回,然后填写其余部分。