如何使用Flash执行的php脚本设置co​​okie?

时间:2009-07-17 22:09:49

标签: php flash apache lighttpd

我有一个flash上​​传脚本,它使用.php文件作为处理器。我需要处理器文件来设置一个带有php脚本创建的图库ID的cookie,并将其传递给确认页面。除非Flash运行php文件...它没有设置cookie。它确实设置了会话变量,这已经足够好了,但是现在我使用lighttpd用于站点(包括确认页面)和apache用于实际的上传处理器脚本(因为lighttps很难上传大文件),所以会话变量' t在2服务器软件之间转移。

如何将变量从php处理器(在apache上运行)传输到运行lighttpd的确认页面?

4 个答案:

答案 0 :(得分:1)

我认为它没有设置cookie,因为它是由flash脚本而不是浏览器调用的,并且浏览器存储了cookie。

我能想到的唯一方法是mysql数据库,或者只是一个文本文件。

答案 1 :(得分:0)

想到第二种解决方案可能效率低于Nico,但可能更适合您。如果发送给Flash的cookie也没有发送到浏览器,您可以使用Flash的ExternalInterface类将cookie的内容传递给javascript函数,该函数将在浏览器中设置cookie。或者你可以调用一个javascript函数来进行AJAX调用以获取cookie的内容。

答案 2 :(得分:0)

不确定我们是否也在做同样的事情,但我遇到了类似的问题,无法通过flash脚本从php脚本设置co​​okie。但后来我意识到它失败了,因为我错过了论点。

flash.swf:
sendToURL('script.php?val=dataFromFlash');

script.php:
//setcookie('flashData', $_GET['val']); //this did not work
setcookie('flashData', $_GET['val'], '0', '/'); //this worked

PHP手册说只需要name参数,但是我必须指定expire和date参数才能使它工作。也许这是因为,正如Nico的回答所示,它不是通过浏览器发送的?无论如何,希望这会有所帮助。

答案 3 :(得分:0)

这里找到最好的解决方案,用php脚本存储所有上传图像数据

    $array                          =   array(); 
    $array["large_filename"]    =   $image_file_name; 
    $array["large_path"]        =   DIR_WS_IMAGES_TEMPIMAGES . $image_file_name;
    $setcookie              =   serialize($array); setcookie( "ImageCookie", 
    $setcookie, time()+(60*60*24*15) );