Php 处理表单处理的最佳实践
我想知道处理表单处理的最佳实践是什么 就我而言,我会这样做:Php 处理表单处理的最佳实践,php,html,forms,Php,Html,Forms,我想知道处理表单处理的最佳实践是什么 就我而言,我会这样做: 如果用户尚未提交表单 显示表单 否则 如果有表单错误 显示错误 再次显示表单 否则 显示一条成功消息 (和)再次显示表单 我的问题是,我将表单的HTML代码重复了3次,我认为这不是一个好的做法(长文件,难以阅读)。鉴于在每次显示表单时,您是否可以默认显示相同的表单,然后添加错误消息等附加内容 您还使用了哪些其他技术?您的工作流看起来是正确的。我不明白为什么需要为表单重复HTML代码。重新构造代码,使成功消息显示在表
- 如果用户尚未提交表单
- 显示表单
- 否则
- 如果有表单错误
- 显示错误
- 再次显示表单
- 否则
- 显示一条成功消息
- (和)再次显示表单
- 如果有表单错误
我的问题是,我将表单的HTML代码重复了3次,我认为这不是一个好的做法(长文件,难以阅读)。鉴于在每次显示表单时,您是否可以默认显示相同的表单,然后添加错误消息等附加内容
您还使用了哪些其他技术?您的工作流看起来是正确的。我不明白为什么需要为表单重复HTML代码。重新构造代码,使成功消息显示在表单顶部(如果存在),错误显示在输入框旁边(如果存在)。在(PHP?)文件的顶部,处理所有内容并设置将在下表中显示的变量。您可以使用相同的表单代码,只需在表单上方显示错误/成功消息 您可以将脚本分成两部分:
- 其中一个显示表单
- 获取表单数据,检查它并返回错误或成功消息
if POST_REQUEST:
ERRORS = VALIDATE_FORM()
if ERRORS IS EMPTY:
PROCESS_REQUEST
REDIRECT TO <Successful URL>
DISPLAY_FORM(ERRORS)
如果POST\u请求:
错误=验证表单()
如果错误为空:
处理请求
重定向到
显示表单(错误)
以下是可能的情况:
- 在表单url获取请求:
POST_请求为false,因此您只需显示没有错误的表单(因此是一个正常的空表单) - 表单提交有错误:
如果POST_请求为真,则验证表单。在这种情况下,errors变量(可能是数组)将返回一些错误。ERRORS变量不是空的,因此您只需显示带有错误消息的表单 - 正确的表单提交:
POST_请求为真,您验证表单。由于这一次表单是有效的,所以ERRORS变量将为空,并且您将执行重定向到的,该重定向将向用户显示成功消息
<ul class="errors"><?php foreach(ERRORS['field_name'] as $error) { echo "<li>$error</li>"; } ?></ul>
<input name="field_name" type="text" ... />
看,这就像鸡蛋一样简单只需按不同的顺序执行相同的操作:
- 如果用户提交了表单
- 如果有表单错误
- 填充错误数组
- 否则
- 将数据记录到数据库中
- 302 regirect,根据HTTP标准的要求
- 出口
- 如果有表单错误
- 如果我们有一些错误
- 显示错误
- 填写表单字段值
- 显示表单
哎呀!这是一个旧的 我还要指出,使用模式和HTML5是避免使用无效数据提交表单的一个很好的实践 您使用什么技术来处理表单?我已经在问题中添加了PHP标记。通过这种方式,您可能会得到更具体的响应。我自己也在寻找一个更优雅的解决方案,但这并不是那么糟糕。在经过多次过滤后,通过设置令人费解的if/else迷宫来显示表单的代码很难读取。但是,使用类似display_form()的函数使其更具可读性。在表单中,只需检查是否将错误设置为设置为显示错误($errors)。