PHP会话和Javascript回调

时间:2009-12-14 15:32:48

标签: php ajax apache session swfupload

我正在使用swf-upload来处理我正在处理的网站上的文件上传。

问题是捕捉功能,称为swf-upload.php。如果我访问它直接它的URL工作正常,它正确读取启动会话并获得用户权限,但当网页使用ajax回调调用它时,它声称会话为空。

我正在使用错误处理程序和输出日志记录的组合来查明它正在做什么,直接访问和ajax访问之间的代码路径完全没有区别。

任何想法是什么?

2 个答案:

答案 0 :(得分:3)

这是swfupload中的已知问题,您需要将会话ID传递给swfupload构造函数,然后使用您传递的会话ID重新显示在远程文件中重新启动此会话,如下所示:

 // in your javascript file 
 swfu = new SWFUpload({
  upload_url: "http://<?=$_SERVER['HTTP_HOST']?>/scripts/swfupload2/upload.php",
  post_params: {"PHPSESSID": "<?=session_id()?>"}
 }

 // in your PHP file
 if (isset($_POST["PHPSESSID"])) {
  session_id($_POST["PHPSESSID"]);
 }

答案 1 :(得分:1)

也许你可以通过你的ajax网址中的PHPSESSID显式传递会话ID?您可以使用session_id()函数http://pl2.php.net/manual/en/function.session-id.php

来阅读它