我有一个小型多人Flash游戏,您可以通过点击他或她的头像来显示玩家个人资料:
const PROFILE_URL:String = 'http://myserver/user.php?id=';
try {
navigateToURL(new URLRequest(PROFILE_URL+id), '_blank');
} catch(e:Error) {
}
这很好用,但现在我想扩展user.php,以便玩家可以互相添加评论。对于授权,我想使用HTTP cookie,从game.swf传递给user.php。
(我不想在这里使用GET或POST,因为GET会在URL中包含auth。变量,玩家可能会偶尔发送该URL或在我的论坛中发布。并且POST会要求重新发布请你重新加载时提出。)
我的问题是我找不到通过navigateToURL()方法设置HTTP cookie的方法。请告诉我
此致 亚历
答案 0 :(得分:1)
您可以先通过单独调用登录进行身份验证,例如login.php,该脚本将启动会话。然后,对同一域的所有其他调用都已启动会话,您可以检查身份验证。当PHP可以为您完成时,无需担心cookie。
答案 1 :(得分:1)
假设您已在swf中拥有cookie值,您应该能够将URLRequestHeader与URLRequest一起使用,如下所示:
var header:URLRequestHeader = new URLRequestHeader("Cookie", "<the cookie>");
var request:URLRequest = new URLRequest("http://example.com/script.php");
request.requestHeader.push(header);
request.method = URLRequestMethod.POST;
navigateToURL(request, "_blank");
在某些情况下,即使您没有在请求中明确包含cookie,浏览器也会将cookie发送到服务器。这取决于浏览器和Flash Player的版本。您可能还需要调整crossdomain.xml文件。
另请注意,传递未加密的Cookie令牌可能会带来安全隐患。请参阅Firesheep。