PHP在类函数中使用会话变量

时间:2017-11-05 04:54:26

标签: php jquery function session

G'全天,

所以,我正在使用jQuery文件上传,我有它工作正常,除了上传目的地,我可以设置静态路径没有烦恼,它工作正常,但是,我试图动态设置文件夹路径一个会话变量,我似乎无法让它工作,我已经尝试了2天,无法弄明白......

我发现此代码用于返回会话var(如果找到的话)(注意我已将错误的返回更改为&#39; 32 / Docs /&#39;给我一个假阳性检查来玩...)< / p>

public function getDocsULDIR($DocsULDIRkey)
{
    return (isset($_SESSION[$DocsULDIRkey])) ? $_SESSION[$DocsULDIRkey] : '32/Docs/';
}

该函数似乎在UploadHandler.php文件中有效,因为它将文件上传到误报中而不用担心:

'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/'.$this->getDocsULDIR('DBPrimaryKeyRef').'',
'upload_url' => $this->get_full_url().'/'.$this->getDocsULDIR('DBPrimaryKeyRef').'',

所以isset($_SESSION[$DocsULDIRkey])语句似乎有问题......

现在,这让我感到困惑,因为我在调用jQuery文件上传脚本之前通过代码中的echo调用它并且它按预期显示,显示要设置的会话变量...

有人可以告诉我为什么公共函数getDocsULDIR($DocsULDIRkey)没有检测到会话变量$_SESSION['DBPrimaryKeyRef']吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

首先,将你的问题分开:

1 - 尝试将其上传到静态目录,例如/ tmp,它对每个人都有写入权限,这样你就不会遇到任何问题

2 - 解决您的数据库和会话问题,通过将json返回到您的ajax上传(json_encode($ _ SESSION))并确保所有必需的变量都存在,确保在每次上传时您的会话数据都已正确设置。 / p>

3 - 使用会话变量上传路径制作胶水

只是为了确定,我看到你在那里使用$ _SERVER和$ _SESSION变量,但是上传经过$ _FILES,你使用它吗?

答案 1 :(得分:0)

感谢输入人员,结果我必须调用会话insode上传者中引用的受保护函数:)

protected function get_DIR_id() {
    @session_start();
    return $_SESSION["DocsULPrimKey"];
}
相关问题