php-发布表单的新方式

php-发布表单的新方式,php,Php,我正在设计表单发布数据的方式 e、 g如果我们有一个login.php,如果用户提交,我们通常会将其发回login.php并进行处理。这意味着如果我们有其他页面,比如register.php、editprofile.php,我们必须再次重做这个过程。因此,通常我们会在每页中执行类似的操作: if($_POST["btnsubmit"]) { //do smth } 我正在考虑做一个通用的postForm.php,它接受所有post请求,将数据传递到相应的库并进行处理 这是个好主意吗?这绝对是个

我正在设计表单发布数据的方式

e、 g如果我们有一个login.php,如果用户提交,我们通常会将其发回login.php并进行处理。这意味着如果我们有其他页面,比如register.php、editprofile.php,我们必须再次重做这个过程。因此,通常我们会在每页中执行类似的操作:

if($_POST["btnsubmit"]) {
//do smth
}
我正在考虑做一个通用的postForm.php,它接受所有post请求,将数据传递到相应的库并进行处理


这是个好主意吗?

这绝对是个好主意!您所描述的是模式中的
控制器。我建议您去看看,这是一个很棒的PHP MVC web框架


一个Symfony控制器(名称类似于
actions.class.php
)可以处理所有的POST和get,以及将您送到那里的路由。根据Symfony约定,调用
http://mywebsite.mydomain.com/home
将在主控制器中运行
executeHome
功能。例如,该页面上的表单可以发布到
/attemptLogin
,并且(按照惯例)Symfony将在同一控制器文件中运行
executeAttemptLogin
函数。

这绝对是个好主意!您所描述的是模式中的
控制器。我建议您去看看,这是一个很棒的PHP MVC web框架


一个Symfony控制器(名称类似于
actions.class.php
)可以处理所有的POST和get,以及将您送到那里的路由。根据Symfony约定,调用
http://mywebsite.mydomain.com/home
将在主控制器中运行
executeHome
功能。例如,该页面上的表单可以发布到
/attemptLogin
,并且(按照惯例)Symfony将在同一个控制器文件中运行
executeAttemptLogin
函数。

hi dorkitude,tks了解Symfony的详细信息。我可以为您的场景验证attemptLogin是否在主控制器中,并且它将运行ExecuteAttleLogin。假设你已经有一个你提到的登录表单。如果您在另一个页面中有另一个类似的登录表单,那么您必须在登录控制器中有一个重复的attemptLogin代码,该代码调用ExecuteAttleLogin???否,两个表单都可以指向URL/attemptLogin:
(home、login和attemptLogin操作都将在同一个控制器中)hi。我不太明白的是,为什么登录功能会放在家庭控制器中??我实际上计划做的是将所有登录功能和操作放在登录模块(模块的单独文件夹)中。此模块将具有函数ExecuteAttleLogin。因此,当执行登录post时,postForm接收post数据,足够聪明,可以知道它是哪个模块,将数据传递给调用main()的登录模块main lib,然后调用ExecuteAttleLogin,处理它并将结果返回到main()。在此之后,main()将恢复到调用itI的任何页面表单,它没有提到“主控制器”,而是一个真正控制器中的函数。如果按照您描述的方式构建代码对您来说是有意义的,那么就去做吧!在我看来,除非你违反了我100%赞同的唯一原则,否则你不会出错:不要重复你自己——嗨,多尔基图德,tks为symfony做了一个很好的概述。我可以为您的场景验证attemptLogin是否在主控制器中,并且它将运行ExecuteAttleLogin。假设你已经有一个你提到的登录表单。如果您在另一个页面中有另一个类似的登录表单,那么您必须在登录控制器中有一个重复的attemptLogin代码,该代码调用ExecuteAttleLogin???否,两个表单都可以指向URL/attemptLogin:
(home、login和attemptLogin操作都将在同一个控制器中)hi。我不太明白的是,为什么登录功能会放在家庭控制器中??我实际上计划做的是将所有登录功能和操作放在登录模块(模块的单独文件夹)中。此模块将具有函数ExecuteAttleLogin。因此,当执行登录post时,postForm接收post数据,足够聪明,可以知道它是哪个模块,将数据传递给调用main()的登录模块main lib,然后调用ExecuteAttleLogin,处理它并将结果返回到main()。在此之后,main()将恢复到调用itI的任何页面表单,它没有提到“主控制器”,而是一个真正控制器中的函数。如果按照您描述的方式构建代码对您来说是有意义的,那么就去做吧!在我看来,除非你违反了我100%赞同的唯一原则:不要重蹈覆辙,否则你不会出错-