提交到process.php还是self


Php is it better to submit to process.php or self?

我经常想知道什么更安全,更有效,通常更好?

如果我有一个登录表单,最好创建一个单独的php文件来处理处理,然后在它完成后重定向回登录页面。还是最好在同一页上完成所有工作?

这有一般规则吗,还是只是个人喜好?

你的选择取决于你自己。然而,Post-Redirect-Get模式(PRG)在PHP中是常用的。使用它,您可以将表单提交给不产生输出的处理脚本。如果有办法区分不同的表单,您可以对许多不同的表单使用相同的处理脚本。处理完POST后,处理程序脚本将重定向回表单页面或另一个页面。

PRG模式有助于避免浏览器返回按钮和表单重新提交的问题。

这不是对你问题的直接回答,但仍然值得思考。

现在,许多PHP应用程序解耦了路由(url)和PHP文件。在我的应用程序中,我只有一个可供公众访问的 php文件,这被称为frontcontroller。

可以在Silex中找到一个优秀的php 5.3(以及将来的实践证明)示例,Silex是一个小框架,主要实现了frontcontroller,路由器(确保url/login将转到您的登录页面)和一些简单网站的基本需求。

见:http://silex-project.org/

我认为这是个人的喜好。我通常有一个处理所有幕后工作的"动作"脚本。这也使逻辑都在一个地方,这是我喜欢的。它还将前端代码与后端代码分离。

但这真的取决于你。如果你认为"submit a form.php"应该包含所有与提交表单相关的逻辑,而"Register.php"应该只包含注册逻辑,那也可以。

与安全性相关,它仍然是信息的提交,而不考虑端点。如果你想要更安全,你可以使用SSL对其进行分层,但它仍然必须被发送到某处

最好在单独的文件中处理请求。

这样代码将更易于维护/更符合逻辑。

对所有的代码都这样做会更好。

一个众所周知的/经常使用的模式是MVC模式,它将逻辑与表示分离。

更多信息请参见:http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller