cookie与sharedObject之间的比较以及flex利用cookie
2010-04-10 14:20
281 查看
在php里创建cookie只需要:
setcookie ($user,$value,time()+2*60); //cookie写入客户端
删除cookie也只需要再次设置一次 cookie将 时间变成过去的就可以了 setcookie ($user,$value,time()-20); //
在flex里创建sharedObject
var so:sharedObject= sharedObject.getLocal("sample"); //得到sharedObject的引用,没有则创建Sharedobject ,这部可以理解为加载SO
//我们像在cookie里一样给其赋值:
so.data.user="dreamnight"// 写入user属性
//由于SharedObject是存储在硬盘上的文件我需要刷新缓冲区,将其写入文件
由于cookie可以再flex/flash和其他的html以及x像php这样的语言中使用 而SO只能在flex/flash中使用
为了更好的利用他们 我们以cookie作为中间量:
so.flush();
与cookie的删除对比
注意SharedObject本身是一个文件 也就是个空壳 只有填充数据后才能称为真正的SO
例如
var so:sharedObject= sharedObject.getLocal("sample");
if(so.data.size()==){
trace("so对象不存在");//这里并没有实际意义上的cookie(SO) 相当于没有SO.一样,只有填充数据了才叫SO
}
由上可知,当我们删除SO时,不需要删除SO文件 只需要删除里面的数据即可:
So.data.clear();
注意clear后 只是将so.data.user的值删掉了 但是 这个uer属性还是存在的!只是user undefined 下次我们创建SO时可以再次写一遍,即再次 So.data.user=“某个值”
虽然SO很好但是 我还是喜欢cookie些 下面是flash利用cookie的例子:
php端:
<?php
if(isset($_POST['act']) && $_POST['act'] == 'getcookie') // act 属性是flash端通过URLLoader(或者httpService)发送过来的
{
if(isset($_COOKIE['sample']))
{
print "resp=" . $_COOKIE[$_POST['cookieName']];// resp 最后返回给flash端
}
else
{
print "resp=" . "cookie_not_found";
}
}
?>
flash端:
var phpFile:String = "http://localhost/flashphp/examples/ch%2006/cookies/loadCookie.php";
var variables:URLVariables = new URLVariables();
variables.act = 'getcookie';
variables.cookieName = 'sample';
var urlRequest:URLRequest = new URLRequest(phpFile);
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = variables;
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, serverHandler);
loader.load(urlRequest);
function serverHandler(e:Event):void
{
var loader:URLLoader = URLLoader(e.target);
var variables:URLVariables = new URLVariables(loader.data);
if(variables.resp == 'cookie_not_found')
{
trace("Requested Cookie Not Found");
}
else
{
trace("Cookie Data: " + variables.resp);
}
}
setcookie ($user,$value,time()+2*60); //cookie写入客户端
删除cookie也只需要再次设置一次 cookie将 时间变成过去的就可以了 setcookie ($user,$value,time()-20); //
在flex里创建sharedObject
var so:sharedObject= sharedObject.getLocal("sample"); //得到sharedObject的引用,没有则创建Sharedobject ,这部可以理解为加载SO
//我们像在cookie里一样给其赋值:
so.data.user="dreamnight"// 写入user属性
//由于SharedObject是存储在硬盘上的文件我需要刷新缓冲区,将其写入文件
由于cookie可以再flex/flash和其他的html以及x像php这样的语言中使用 而SO只能在flex/flash中使用
为了更好的利用他们 我们以cookie作为中间量:
so.flush();
与cookie的删除对比
注意SharedObject本身是一个文件 也就是个空壳 只有填充数据后才能称为真正的SO
例如
var so:sharedObject= sharedObject.getLocal("sample");
if(so.data.size()==){
trace("so对象不存在");//这里并没有实际意义上的cookie(SO) 相当于没有SO.一样,只有填充数据了才叫SO
}
由上可知,当我们删除SO时,不需要删除SO文件 只需要删除里面的数据即可:
So.data.clear();
注意clear后 只是将so.data.user的值删掉了 但是 这个uer属性还是存在的!只是user undefined 下次我们创建SO时可以再次写一遍,即再次 So.data.user=“某个值”
虽然SO很好但是 我还是喜欢cookie些 下面是flash利用cookie的例子:
php端:
<?php
if(isset($_POST['act']) && $_POST['act'] == 'getcookie') // act 属性是flash端通过URLLoader(或者httpService)发送过来的
{
if(isset($_COOKIE['sample']))
{
print "resp=" . $_COOKIE[$_POST['cookieName']];// resp 最后返回给flash端
}
else
{
print "resp=" . "cookie_not_found";
}
}
?>
flash端:
var phpFile:String = "http://localhost/flashphp/examples/ch%2006/cookies/loadCookie.php";
var variables:URLVariables = new URLVariables();
variables.act = 'getcookie';
variables.cookieName = 'sample';
var urlRequest:URLRequest = new URLRequest(phpFile);
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = variables;
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, serverHandler);
loader.load(urlRequest);
function serverHandler(e:Event):void
{
var loader:URLLoader = URLLoader(e.target);
var variables:URLVariables = new URLVariables(loader.data);
if(variables.resp == 'cookie_not_found')
{
trace("Requested Cookie Not Found");
}
else
{
trace("Cookie Data: " + variables.resp);
}
}
相关文章推荐
- Flex动态获取Object的属性和值以及完成Object之间value的拷贝
- Flex SharedObject 使用技巧-- 在Application之间传值
- Flex Cookie sharedObject
- Java包装类,以及Integer与int之间的比较
- 关于Flex 和java之间利用Blazeds通信的类型转换问题
- 如何使用Flex RemoteObject components(含java/flex类之间的转换)TESTED
- Flex中如何利用dataDescriptor和labelFunction属性,以及hasChildren()和getChildren()函数设置Tree中包含子节点个数
- Flex记录用户名SharedObject
- Flex ActionScript 3.0 SharedObject 用于在用户计算机或服务器上读取和存储有限的数据
- FLEX中SharedObject介绍及应用
- FLEX SharedObject介绍及应用
- cookie,sessionStorage,localStorage分别是什么,以及三者之间的区别
- 字节数组、文件以及Object之间的转换
- ARM和X86架构之间区别以及性能比较杂谈
- 字节数组、文件以及Object之间的转换
- Cookie、session和localStorage、以及sessionStorage之间的区别
- Flex 序列化自定义类 解决 sharedObject 保存自定义对象
- 利用flex秘密窃取商业网站的Cookie(XSS跨站攻击)-----luodfu
- Flex Shared Object
- JSE -->深入剖析 Object 中的 equals(),==,以及对象的比较