【发布时间】:2011-06-14 22:41:29
【问题描述】:
全部。
我一直在考虑 PHP 表单的设计决策,我希望得到比我更聪明的人的意见。
以下是基础知识:我有一个用户输入表单,可让人们为学校注册章节。我正在对表单字段进行输入验证,这让我 a) 清理数据和 b) 验证输入。然后我打算向注册的用户发送一封电子邮件(因为他们的电子邮件地址将在表单中提交)并将他们的信息写入 MySQL 数据库。
现在,我已经通过 POST 设置了数据验证部分(以及必要的错误消息),并且页面正在回发给自身以进行验证。这对我来说似乎是合乎逻辑的,因为我可以轻松保留经过清理的用户输入和显示错误(对于必填字段、数据类型等)。如果填写了所有必填字段并且数据有效,我想将用户重定向到包含额外信息的感谢页面。
(对不起,我太冗长了。我需要努力。)
问题是,如果可能的话,我想将验证逻辑和数据库写入/电子邮件逻辑完全分开。我最初的想法是在所有字段都有效的情况下重定向到感谢页面,但现在我认为感谢页面实际上应该包含写入数据库、发送电子邮件、然后打印感谢消息的逻辑.然而,这会使事情复杂化,并且涉及在不使用 GET 的情况下将 POST 数据传递到另一个页面。虽然我以前从来没有做过这样的事情(我对 PHP 还很陌生),但这显然是可能的(参见 here、here 和 here)并且有多种方法可以实现这一点。
不过,问题是 - 我是否应该尝试将这个逻辑分离到单独的 PHP 页面中?每个编程本能都告诉我“是的,去做吧,这是逻辑上的责任分离”....但是这是 PHP 中表单处理的最佳实践吗?任何有更多 PHP 经验的人都可以详细说明做这样的事情的利弊,以及他们的经验吗?你会怎么做?
【问题讨论】: