我有一个flash上传脚本,它使用.php文件作为处理器。我需要处理器文件来设置一个带有php脚本创建的图库ID的cookie,并将其传递给确认页面。除非Flash运行php文件...它没有设置cookie。它确实设置了会话变量,这已经足够好了,但是现在我使用lighttpd用于站点(包括确认页面)和apache用于实际的上传处理器脚本(因为lighttps很难上传大文件),所以会话变量' t在2服务器软件之间转移。
如何将变量从php处理器(在apache上运行)传输到运行lighttpd的确认页面?
答案 0 :(得分:1)
我认为它没有设置cookie,因为它是由flash脚本而不是浏览器调用的,并且浏览器存储了cookie。
我能想到的唯一方法是mysql数据库,或者只是一个文本文件。
答案 1 :(得分:0)
想到第二种解决方案可能效率低于Nico,但可能更适合您。如果发送给Flash的cookie也没有发送到浏览器,您可以使用Flash的ExternalInterface类将cookie的内容传递给javascript函数,该函数将在浏览器中设置cookie。或者你可以调用一个javascript函数来进行AJAX调用以获取cookie的内容。
答案 2 :(得分:0)
不确定我们是否也在做同样的事情,但我遇到了类似的问题,无法通过flash脚本从php脚本设置cookie。但后来我意识到它失败了,因为我错过了论点。
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) );