从.post()获取对PHP文件的响应,但仅在MVC中

时间:2012-08-18 01:27:33

标签: php javascript jquery validation

我的JavaScript文件包含以下代码:

$.post('./admin/test.php', {
        todoID:todoID
    }, function(data){
        $("."+todoID).html(data);           
    });

我的PHP文件,我应该从中获得响应,包含:

  if (!defined(__ACCESS)) {
     die("Access Denied!");
  }  

  echo '<span><input type="button" value="Edit" /></span>
  <span><input type="button" value="View" /></span>
  <span><input type="button" value="Delete" /></span>';

当然,我得到的回答是“拒绝访问!”。

因为__ACCESS是在index.php中定义的,那是因为我不希望有人能够在没有验证的情况下运行任何PHP脚本(如果用户没问题,如果他试图单独调用脚本他先获得拒绝访问权。

那么有没有办法验证该电话?

2 个答案:

答案 0 :(得分:1)

我很长时间没有触及PHP代码,但这种事情的一般机制是:

  1. 用户登录您的网络应用。服务器生成会话,并将会话ID作为cookie返回给客户端。

  2. Ajax调用会保留所有Cookie,因此当您执行POST时,会话ID会再次发送。

  3. 如果请求具有有效(未过期)的会话ID,则认为该来源已经过身份验证。

  4. 看看另一个问题:how to implement php login or authentication session

答案 1 :(得分:0)

简单修复就是:

include 'index.php';
if (!defined(__ACCESS)) {
    die("Access Denied!");
}

更好的解决方法是使用适当的身份验证框架。甚至是一般的框架。