首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Ajax.Request调用PHP方法

用Ajax.Request调用PHP方法
EN

Stack Overflow用户
提问于 2010-01-15 20:44:09
回答 1查看 642关注 0票数 0

用Ajax.Request (使用prototype)调用PHP文件中的某个方法的最佳方式是什么?我用Form.serialize提交了一个表单,所以我想添加一个参数(比如要调用的方法的名称),然后在服务器脚本上检查它。类似于:

代码语言:javascript
复制
var params=Form.serialize("someform")+"&=method='check_data'";
new Ajax.Request('somescript.php',{method:'post',parameters:params,onSuccess:
function(response)
{ 
    .. do something with the response

在somescript.php中:

代码语言:javascript
复制
if($_POST["method"] == "check_data")
{
    check_data();
...
}

这是可行的,但我确信有更好或更简单的方式来调用远程方法(ala MVC)。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-15 20:46:08

对于普通的PHP方法,在任何情况下都不会这样做。它打开了一个巨大的潜在安全漏洞。即使您限制了可以以这种方式调用的命令,从长远来看,这也不是一个好方法。

要么继续你已经做的事情:定义一个可以传递给PHP脚本的命令列表(例如command=deletecommand=updatecommand=copy,任何你需要的),并使用switch调用它们。

或者使用带有可从外部安全调用的方法的类:

代码语言:javascript
复制
class myCommands
{
  function copy()  {  ... }
  function delete()  {  ... }
  function update()  {  ... }
 }

然后,在PHP文件中传递如下命令

代码语言:javascript
复制
if (method_exists($class, $_POST["method"]))  
 call_user_func(array($class, $_POST["method"]));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2071487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档