如何在web应用程序中构造PHP AJAX函数?

如何在web应用程序中构造PHP AJAX函数?,php,ajax,Php,Ajax,我在一家开发web应用程序的小公司工作(读作:三名员工),我们一直在应用程序的每个页面上使用这种结构: 设置环境的PHP页面“占位符” HTML分离到Smarty.tpl文件中 JavaScript被分离到不同的.js文件中 以及一个“ajax_functions.php”文件,由JavaScript发布到该文件 我对文件结构感觉很好,虽然有点凌乱(如果我错了,请告诉我!)。我的问题是关于“ajax_functions.php”页面的。现在JavaScript将按照“ajax_functio

我在一家开发web应用程序的小公司工作(读作:三名员工),我们一直在应用程序的每个页面上使用这种结构:

  • 设置环境的PHP页面“占位符”
  • HTML分离到Smarty.tpl文件中
  • JavaScript被分离到不同的.js文件中
  • 以及一个“ajax_functions.php”文件,由JavaScript发布到该文件
我对文件结构感觉很好,虽然有点凌乱(如果我错了,请告诉我!)。我的问题是关于“ajax_functions.php”页面的。现在JavaScript将按照“ajax_functions.php?action=subscribe”的行向某些内容发出$.post请求,页面本身如下所示:

    switch($_GET['action']){
      case('subscribe'):
        //Do stuff...
      break;
      default:
        die('Invalid request');
    }

我只是觉得这种方式太不安全了:如果有人想直接链接到该页面,并反复向其发送信息,那么几乎没有办法阻止他们。是否有更好的方法来组织请求

这看起来不错

作为对比,这里是我做的(非常相似)

我的结构

-用于AJAX等的JS文件

-处理POST和GET数据的PHP类/函数

真的是这样

类/函数检查正确的POST或GET数据,并执行我需要的任何其他验证检查

从函数中我返回一个数组,然后可以对其进行json_编码并发送回JS


这对我来说很好,因为这些函数可以用于发送相同数据的表单

在我看来似乎是合理的,您仍然可以通过会话管理来锁定这一点,或者您可以生成在第一页上生成、通过ajax请求传递并在ajax_functions.php脚本中验证的单次使用请求令牌。请看一下前面关于保护ajax请求的问题-