2010-01-15 88 views
1

我无法访问$_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' 
}); 

编辑:我想我知道问题是什么。

与livehtmlheader头信息在FF它显示一个错误信息

HTTP/1.x 404 Not Found 

,而其他普通的页面请求显示

HTTP/1.x 200 OK 

有人知道如何解决这个问题?

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

所以没有发送该sessid到我的PHP文件现在我想:(必须找到一些其他的方式围绕

+0

“无法访问”有点含糊。什么是错误/通知讯息? – zneak 2010-01-15 15:38:42

+1

使用LiveHTTPHeaders检查jQuery发送的HTTP请求。它包括PHPSESSID cookie吗? – 2010-01-15 15:39:15

+0

您的XMLHTTPRequests可能缺少会话标识。无论是在网址中还是在Cookie中。 – Gumbo 2010-01-15 15:40:43

回答

2

在某些浏览器(Firefox IIRC)“特殊”的呼叫,如文件上传和方式amf并不总是沿会话cookie发送,最实用的方法是在嵌入闪存时将其设置为flashvar,并将其与您的请求一起手动发送。

+0

不太理解你的解决方案。是否容易实现,并有任何教程? – ajsie 2010-01-15 17:00:56

0

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

+0

试过,但它没有奏效。看看我更新的帖子 – ajsie 2010-01-15 16:59:37

+0

JavaScript正在做请求,而不是PHP。所以'session_id'不可用。 – Gumbo 2010-01-15 17:13:38

+1

OP,您在执行Artjom的提示时缺少打开和关闭PHP标签:'' – 2010-01-15 18:12:59