我可以在表单操作中使用php方法吗?

时间:2010-09-27 21:19:04

标签: php html-form

是否可以将表单数据发送到PHP类的方法而不是文件?或者我是否必须使用AJAX来执行此操作?

例如,我可以拥有类似的内容:

<form action="my_obj::form_submit" method="post">...</form>
//rather than
<form action="my_obj.php" method="post">...</form>

我不希望任何人能够直接访问整个文件。但是,我没有看到有一个公共静态方法可用的问题,因为单个方法很容易“强化”以供公众使用。有一个AJAX功能可以帮助我做到这一点,但我认为不这样做会更快。

由于

3 个答案:

答案 0 :(得分:2)

不,这是不可能的,因为客户端代码可以从不了解这种服务器端实现细节。正如Chuck Vose评论的那样,如果可能的话,这是一项重大的安全责任。

action元素上的

<form>属性(如<a href>)只是URI,因此您无法指向PHP代码的某些特定部分,并期望PHP汇集所有内容并运行它。同样,它是同一个客户端/服务器端问题。

除非您像许多框架一样使用某种URL路由(根据webbiedave的回答),否则您将无法继续使用指向站点中PHP脚本的URI。

答案 1 :(得分:0)

我会尝试通过特定的uri查询来处理它。因此,您可以检查是否给出了$_GET变量中的键,并使用特定方法加载该类。

如果知道$_POST变量中的给定键,您可以将进程转发到要调用的方法。因此,没有特别需要这种表单提交电话。

答案 2 :(得分:0)

你不能action="my_obj::form_submit",因为它甚至不是有效的URI。但是,您可以执行action="/my_obj/form_submit"并将URI映射到/<object>/<method>这是许多MVC框架使用的方法。