代码之家  ›  专栏  ›  技术社区  ›  Meep3D

PHP会话和JavaScript回调

  •  0
  • Meep3D  · 技术社区  · 15 年前

    我使用swf upload来处理我正在工作的站点上的文件上载。

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

    我使用错误处理程序和输出日志的组合来了解它在做什么,并且直接访问和Ajax访问之间的代码路径完全没有区别。

    有什么主意吗?

    2 回复  |  直到 15 年前
        1
  •  3
  •   robjmills    15 年前

    这是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"]);
     }
    
        2
  •  1
  •   Kamil Szot    15 年前

    也许您可以在Ajax URL中通过phpsessid显式传递会话ID?您可以使用session_id()函数读取它 http://pl2.php.net/manual/en/function.session-id.php

    推荐文章