Php 表单提交无效--如何处理它们?

Php 表单提交无效--如何处理它们?,php,mysql,model-view-controller,error-handling,frameworks,Php,Mysql,Model View Controller,Error Handling,Frameworks,我最近读了很多关于Web应用程序设计的最佳实践的书。我的专业语言是PHP/MySQL。在为我正在开发的应用程序创建MVC体系结构时,我总是会遇到在何处存储无效表单提交的问题(这样用户就不必重新输入数据,并且可以显示有用的错误消息) 通常我已经决定将其作为一个序列化对象存储在会话变量中,但我最近的阅读告诉我,会话是不好的,并且会影响无状态web开发。我想到的几个备选方案是: 使用有效输入将其存储在数据库中,但将其标记为无效 将其存储在数据库中一个单独的表中,该表特定于无效表单提交 将其存储在文本文

我最近读了很多关于Web应用程序设计的最佳实践的书。我的专业语言是PHP/MySQL。在为我正在开发的应用程序创建MVC体系结构时,我总是会遇到在何处存储无效表单提交的问题(这样用户就不必重新输入数据,并且可以显示有用的错误消息)

通常我已经决定将其作为一个序列化对象存储在会话变量中,但我最近的阅读告诉我,会话是不好的,并且会影响无状态web开发。我想到的几个备选方案是:

  • 使用有效输入将其存储在数据库中,但将其标记为无效
  • 将其存储在数据库中一个单独的表中,该表特定于无效表单提交
  • 将其存储在文本文件中
  • 他们都有自己的缺点

  • 并非所有表单都会创建(单个)数据库实体
  • 三,。这两个变量似乎与会话变量的想法相同

  • 您有什么建议?

    如果该表单是公开的,并且您没有对其进行用户身份验证,则会话结束时您将失去访问者

      <> >代码>会话是要考虑的一个。<李>
    • 如果有用户,可以将其另存为
      数据库的序列化对象
      
    • 另一种是使用
      HTML5本地存储
      ,这是最好的方法,但只有少数浏览器支持它

    如果表单是公开的,并且您没有用户身份验证,那么会话结束时您将失去访问者

      <> >代码>会话是要考虑的一个。<李>
    • 如果有用户,可以将其另存为
      数据库的序列化对象
      
    • 另一种是使用
      HTML5本地存储
      ,这是最好的方法,但只有少数浏览器支持它

    根本不存储它,只需向用户提供一条错误消息和表单的另一份副本。使用您拥有的数据(在$\u POST/$\u中,因为您使用的是PHP)用以前输入的数据预填充表单。

    完全不存储它,只向用户显示一条错误消息和表单的另一份副本。使用您拥有的数据(在$\u POST/$\u GET中,因为您使用的是PHP)使用以前输入的数据预填充表单。

    1)如果在循环或负载平衡方案中将应用程序分散到两台或多台服务器上,则会话可能会出现问题,但如果您没有计划将应用程序扩展到一台以上的服务器,则这将不适用

    2) 您可以在服务器和浏览器之间的cookie中来回传递数据。可能使用cookie数组将所有数据保存在一起。通过这种方式,如果用户在负载平衡场景中被循环,那么数据将随之循环,并且状态不相关。

    1)如果在循环或负载平衡场景中将应用程序分散到两个或多个服务器上,但如果您没有计划将应用程序扩展到更大的服务器,则会话可能会出现问题如果只有一台服务器,则这将不适用

    2) 您可以在服务器和浏览器之间的cookie中来回传递数据。可能使用cookie数组将所有数据保存在一起。这样,如果用户在负载平衡场景中被轮换,那么数据将跟随他们轮换,并且状态是不相关的。

    看一看

    它为您处理数据填充。您还可以对数据进行自动验证和过滤

    它为您处理数据填充。您还可以对数据进行自动验证和过滤