我一直在想一个PHP表单的设计决策,我想要一些比我更聪明的人的输入。
以下是基本知识:我有一个用户输入表单,可以让人们为学校注册一章。我在表单字段上进行输入验证,这可以让我a)清理数据并b)验证输入。然后,我打算发送一封电子邮件给注册用户(因为他们的电子邮件地址将在表单中提交)并将他们的信息写入MySQL数据库。
现在,我已经获得了通过POST设置的数据验证部分(以及必需的错误消息),并且该页面将发回给自己进行验证。这对我来说似乎是合乎逻辑的,因为我可以轻松地保留消毒的用户输入和显示错误(对于必填字段,数据类型,whatnot)。如果所有必填字段都已填写且数据有效,我希望将用户重定向到带有额外信息的感谢页面。
(对不起,我这么详细。我需要在这项工作。)
事情是,我想验证逻辑和数据库的写入/电子邮件逻辑完全,如果可能的话分开。如果所有字段都是有效的,我最初的想法是重定向到一个感谢页面,但现在我认为感谢页面实际上应该包含写入数据库的逻辑,发送电子邮件,然后打印感谢信息。但是,这会使事情变得复杂,并且会涉及将POST数据传递到另一个页面而不使用GET。虽然我以前从来没有这样做过(我对PHP相当陌生),但显然这是可能的(请参阅here,here和here),并且有多种方法可以实现此目的。
这个问题虽然 - 我应该甚至试图在单独的PHP页面中分离这种逻辑吗?每种编程本能都会告诉我“是的,做到了,这是责任的逻辑分离”......但这是PHP中表单处理的最佳做法吗?任何拥有更多PHP体验的人都可以详细说明做这种事情的利弊,以及他们的经历吗?你会怎么做?
将不得不做的阅读在这一个不少。不过谢谢你。 – 2011-06-15 16:32:12