欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Flash和PHP交互中同步session

程序员文章站 2024-01-18 23:40:58
...

Flash和PHP交互中同步session

今天在使用Uploadify和thinkphp进行多文件上传时遇到一个问题,在选择上传的文件并自动上传完成之后,弹出警告窗口提示“http 301”或者“http 302”重定向。后来发现是因为通过Flash插件发起的请求是另外一个客户端发起的,跟浏览器的会话不一致,而我的服务器后端代码恰好是有登录认证的。这就需要我们把当前的session_id通过url或者post的方式传递给php。

一开始我设想将session_id作为query_string传递给php后(即$_GET['session_id']或者$_POST['session_id']),通过session_destory()、session_id($_REQUEST['session_id'])、session_start()系列函数,将flash的会话同步为和浏览器一致。而一技术群里有高手提醒说只要把php.ini中的session.name作为参数传递,PHP就会自动处理了。也就是$_GET或者$_POST或者$_COOKIE数组里有一个“PHPSESSID=当前会话的id”,就能让php自动处理、实现会话的传递了。就是这样:

$("#uploadify").uploadify({
    'uploader'       : '/xxx/xxx/uploadify.swf',
    'script'         : '/xxx/xxx/xxx.php',
    'scriptData'     : {'PHPSESSID' : '= session_id() ?>'},
    ....

或者:

$("#uploadify").uploadify({
    'uploader'       : '/xxx/xxx/uploadify.swf',
    'script'         : '/xxx/xxx/xxx.php?PHPSESSID== session_id() ?>',
    ...

不过谁能告诉我Flash的Cookies要怎么清除啊。。因为这个原因调试过程中一直困难重重。哈哈。。实在太笨了

这是今天解决的的一个问题,哈哈不过 我发现flash里只传PHPSESSID参数,赋值为空也可以……