Php 未在来自SWF的POST请求中发送Cookie值
我有一个SWF文件,允许用户在我的网站上传文件。该SWF向我的服务器上的Php 未在来自SWF的POST请求中发送Cookie值,php,cookies,flash,Php,Cookies,Flash,我有一个SWF文件,允许用户在我的网站上传文件。该SWF向我的服务器上的upload.php发送POST请求,从而上传文件 但在此之前,在upload.php上,我想确保执行此操作的人已登录。目前,我检查请求头中发送的SID cookie值,并对照数据库中的该SID值检查条目(我将会话存储在数据库中)。我在chrome中工作得很好,但在firefox中失败,因为当SWF生成请求时,它不会发送任何cookie头 我该怎么做呢。谢谢你的帮助 以Chrome发送的标题 Content-Length:
upload.php
发送POST请求,从而上传文件
但在此之前,在upload.php上,我想确保执行此操作的人已登录。目前,我检查请求头中发送的SID cookie值
,并对照数据库中的该SID值检查条目(我将会话存储在数据库中)。我在chrome
中工作得很好,但在firefox
中失败,因为当SWF生成请求时,它不会发送任何cookie头
我该怎么做呢。谢谢你的帮助
以Chrome发送的标题
Content-Length: 355894
Origin: http://localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52
Content-Type: multipart/form-data; boundary=----------ei4Ij5ae0ae0ei4Ef1Ef1KM7GI3Ef1
Accept: */*
Referer: http://localhost/home Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: PHPSSID = 238e320eewbjdbew923e092ejhwbjhwebd
FireFox中发送的标题
Accept: text/*
Content-Type: multipart/form-data; boundary=----------GI3Ef1Ef1ae0GI3cH2Ef1Ef1cH2KM7
User-Agent: Shockwave Flash
Host: localhost
Content-Length: 355894
Connection: Keep-Alive
Cache-Control: no-cache
这是Chrome的一个功能,但不是FireFox的一个Bug。上传SWF必须明确发送浏览器cookie。看看从3.0版开始的FancyUpload 还要注意的是,如果用户代理头不等于浏览器的头,带有suhosin的PHP可以删除会话变量。这被称为“会话固定”。所以,在请求期间,上传SWF也必须发送浏览器用户代理(或者只是禁用suhosin补丁)