【问题标题】:PHP use session vars in class functionsPHP 在类函数中使用会话变量
【发布时间】:2017-11-07 11:40:50
【问题描述】:

万事如意,

所以,我正在使用 jQuery File Upload,它工作正常,除了上传目标,我可以设置一个静态路径,它工作正常,但是,我正在尝试使用动态设置文件夹路径一个会话变量,我似乎无法让它工作,我已经尝试了 2 天,但无法弄清楚......

我找到了返回会话 var 的代码(请注意,我已将错误返回更改为 '32/Docs/',以便给我一个误报检查...)

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 文件上传脚本之前通过代码中的回显调用它,它按预期显示,显示要设置的会话变量...

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

提前致谢。

【问题讨论】:

  • 你开始会话了吗:session_start()
  • 您是否设置了 $_SESSION['DBPrimaryKeyRef'] 的值?
  • 该站点是一个多用户级站点,它始终使用 $_session 值,所以是的,session_start() 已被调用,并且 $_SESSION['DBPrimaryKeyRef'] 已被设置,并在其他地方完美返回跨度>

标签: php jquery function session


【解决方案1】:

首先,分解你的问题:

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

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

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

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

【讨论】:

  • 调试会话的简便方法并确保所有必须存在的内容,例如 DocsULDIRkey
【解决方案2】:

感谢输入的人,原来我不得不在上传者中引用的受保护函数中调用会话:)

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

【讨论】:

    猜你喜欢
    • 2016-02-29
    • 2013-02-17
    • 2011-03-08
    • 1970-01-01
    • 2017-08-29
    • 2014-06-15
    • 2013-06-11
    • 2012-04-23
    • 2012-09-30
    相关资源
    最近更新 更多