【问题标题】:Can't access $_SESSION variable in PHP called from Flash无法访问从 Flash 调用的 PHP 中的 $_SESSION 变量
【发布时间】:2010-01-15 15:36:31
【问题描述】:

我在访问 $_SESSION 变量时遇到了困难。

我在文件开头有session_start()

我正在使用 jQuery uploadify,它调用了一个 php 后端文件,它无法访问 $_SESSION 变量,尽管外部的其他文件可以。

这可能与flash(jquery uploadify)调用php的方式有关吗?

有谁知道如何规避这个问题?

更新:在 url 中包含 session_id 但它不起作用。

$('#image_upload').uploadify({
    'uploader':     '../../frontend/jquery/plugins/uploadify/swf/uploadify.swf',
    'script':       "controllers/image_upload.php?SID='.session_id()'",
    'fileDataName': 'upload',
    'method':       'POST',
    'multi':        'true',
    'fileDesc':     'tseting',
    'fileExt':      '*.jpg; *.jpeg; *.png',
    'sizeLimit':    '100000000',
    'buttonText':   'Ladda upp bilder',
    'auto':         'true'
});

编辑:我想我知道问题出在哪里。

在 FF 中带有 livehtmlheader 的标头信息中显示错误消息:

 HTTP/1.x 404 Not Found

当其他常规页面请求显示时

 HTTP/1.x 200 OK

有人知道怎么解决吗?

编辑:对不起,我错了。这不是 404 引起的,那是对另一个文件的请求。使用uploadify发布时没有请求!没有发送 html 标头。我认为它使用另一种方法来获取带有 flash 的 php 文件(uploadify.swf)。

所以现在我想没有办法将该 sessid 发送到我的 php 文件中:( 必须找到其他方法

【问题讨论】:

  • “无法访问”有点模糊。错误/通知消息是什么?
  • 使用 LiveHTTPHeaders 检查 jQuery 发送的 HTTP 请求。是否包括 PHPSESSID cookie?
  • 您的 XMLHTTPRequests 可能缺少会话 ID。在 URL 或 cookie 中。
  • @frank farmer:你能给我一些更详细的信息吗?在哪里输入什么?
  • 如何携带会话 ID?在 URL 中还是使用 cookie?

标签: php jquery flash


【解决方案1】:

在某些浏览器 (firefox iirc) 中,“特殊”调用(例如文件上传和 amf)并不总是随会话 cookie 一起发送。最实用的方法是在嵌入 flash 时将其设置为 flashvar,并与您的请求一起手动发送。

【讨论】:

  • 不太了解您的解决方案。实现起来容易吗?有教程吗?
【解决方案2】:
【解决方案3】:

尝试手动将“?SID=".session_id() 添加到 URL。

【讨论】:

  • JavaScript 正在执行请求,而不是 PHP。所以session_id 不可用。
  • OP,您在实现 Artjom 提示时缺少打开和关闭 PHP 标记:<? ?>
猜你喜欢
  • 2015-11-05
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多