0

我的 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 脚本(如果用户正常,如果他尝试单独调用脚本,他会首先被拒绝访问)。

那么有没有办法验证该调用?

4

2 回答 2

1

好久没碰 PHP 代码了,不过这种事情的一般机制是:

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

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

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

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

于 2012-08-18T03:26:14.657 回答
0

简单的解决方法是:

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

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

于 2012-08-18T02:04:54.287 回答