代码之家  ›  专栏  ›  技术社区  ›  TCCV

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

  •  2
  • TCCV  · 技术社区  · 16 年前

    是否可以将表单数据发送到PHP类的方法而不是文件?或者我必须使用Ajax来完成这个任务?

    例如,我能要些什么吗?

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

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

    谢谢

    3 回复  |  直到 16 年前
        1
  •  2
  •   BoltClock    16 年前

    不,这是不可能的,因为客户端代码可以 从未 了解这种服务器端实现细节。正如查克·沃斯(ChuckVose)所言,如果可能的话,这是一项重大的安全责任。

    action 上的属性 <form> 元素,比如 <a href> ,只是URI,因此您不能指向PHP代码的某些特定部分,并期望PHP组装并运行所有内容。同样,这也是客户端/服务器端的问题。

    除非使用许多框架提供的某种URL路由(根据Webbiedave的回答),否则除了指向站点中PHP脚本的URI之外,您将无法进行任何进一步的操作。

        2
  •  0
  •   Johnny    16 年前

    我将尝试通过一个特定的URI查询来处理它。所以你可以检查一下 $_GET 变量是给定的,并用特定的方法加载类。

    否则,在 $_POST 变量允许您将进程转发到要调用的方法。所以这种表单提交调用没有特定的需求。

        3
  •  0
  •   webbiedave    16 年前

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

    推荐文章