php - 跟踪网站多个页面的信息

标签 php javascript forms session

我有一个模糊的问题,你们非常适合回答。我有很多次遇到这样的情况,我有一个表单供我的用户填写,其中包含许多不同的页面。到目前为止,我一直将它们保存在 session 中,但我有点担心这种做法,因为 session 可能会过期,而且这似乎是一种相当不稳定的做法。

例如,我可以看到在每页末尾都有一个用于保存 SQL 临时表单的表。我可以看到将到目前为止获取的所有数据发布到下一页。沿着这些路线的事情。你们是怎么做到的?在这些情况下有什么好的做法?

最佳答案

是的,你肯定可以把中间的数据保存在数据库中,然后在用户提交最终结果的时候翻转一些位表示记录完成。根据您拆分数据集合的方式,每个页面可能会在不同的表中创建一行(通过一些键将它们绑定(bind)在一起)。

您可能还想考虑以更自由形式的方式保存数据,例如将 XML 保存在单个列中。这将允许您在简单的数据模式中维护复杂的数据结构,但会使查询数据变得困难(除非您的数据库支持 xml 列类型,而大多数现代企业级数据库都支持)。

将临时数据存储在数据库中的另一个好处是,如果用户愿意,以后可以返回它。只需在用户开始时向他发送一封电子邮件,其中包含指向他的工作项的链接。当然,您可能需要在其之上添加任何安全层,以确保其他人不会返回到他的工作项目。

将临时数据存储在数据库中还允许用户从一页跳到另一页,并重新访问过去的页面。

隐藏字段也是一种好方法,但它们不允许用户稍后返回。

我会避免在 session 中存储大型数据结构,因为如果用户没有明确地使 session 无效,并且如果您没有清理旧 session 的良好机制,这些过期的 session 可能会持续很长时间时间。

最后,这实际上取决于您的具体业务需求,但希望这能给您一些思考。

关于php - 跟踪网站多个页面的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1904568/

相关文章:

django - 在 ModelForm 的 Charfield 中显示以逗号分隔的 ManyToMany 项目列表

jquery 在父容器上捕获模糊事件

java - 如何配置spring mvc根据Jackson注释填充@RequestMapping的参数?

php - 表示在 PHP 中使用的 n/深度树的最佳方法(MySQL/XML/?)

javascript - 无法在 javascript jQuery 中读取 PHP 结构数组

php - 在codeigniter中的Active Record中的查询中转换sql查询

javascript - Tawk.to(免费实时聊天脚本)产生 400 错误请求错误

javascript - php - 将 mysql 信息从 php 传递到下一页

php - mysql存储过程错误命令不同步;你现在不能运行这个命令

php - 拉维尔 4 : Prevent form re-submissions