PHP和会话的奇怪问题

PHP和会话的奇怪问题,php,zend-framework,session,Php,Zend Framework,Session,所以这个页面的基础是我在页面加载时设置一个会话值,并在他们访问的任何其他页面上清除它。然后页面可以进行ajax调用以下载文件。如果会话值与我通过URL传递的值匹配,我允许他们下载文件。如果不是,我返回404错误。我遇到了一些奇怪的问题,所以我删除了404,并将其设置为回显值,以查看我得到了什么。以下是页面上代码的顶部: $code = $this->_request->getParam('code'); $confirm = $_SESSION['mp3_code'];

所以这个页面的基础是我在页面加载时设置一个会话值,并在他们访问的任何其他页面上清除它。然后页面可以进行ajax调用以下载文件。如果会话值与我通过URL传递的值匹配,我允许他们下载文件。如果不是,我返回404错误。我遇到了一些奇怪的问题,所以我删除了404,并将其设置为回显值,以查看我得到了什么。以下是页面上代码的顶部:

$code = $this->_request->getParam('code');
    $confirm = $_SESSION['mp3_code'];
    echo $code."-1-".$confirm;
    if($code != $confirm)
        echo $code."-2-".$confirm;//header("HTTP/1.1 404 Not Found");
    else
    {
下面是ajax调用在页面上显示的内容 12723430-1-12723430-2-


正如你所看到的,当它们第一次存在时,它会发出回声,然后在我比较它们之后,它失败了,你会看到它会发出空白值的回声,就像它们突然不存在一样。有什么想法吗?

务必确保在任何使用会话的脚本顶部调用
会话\u start
。我想这里可能就是这样

在您的代码中,它正在回显
$code
$confirm
。但是,
$confirm
是一个空字符串,因为您没有实际检索会话数据(为什么还没有确定),所以该条件在大多数情况下都会计算为TRUE