Home >Backend Development >PHP Tutorial >微信内置浏览器中的cookie很诡异呀
微信内置浏览器中的cookie很诡异呀
这是设置和删除COOKIE的代码
<code>function set_cookie($var ,$value = '' ,$expire = 0){ $path = '/'; $domain = 'aaa.com'; $auth = 'sadfsadfasdf'; if($value!='') $value = _myencrypt($value ,$auth); $var = '__abc_'.$var; if($expire==0){ $expire = 0; }else if($expire > 0){ $expire = __TIME__ + (86400*$expire); }else{ $expire = $expire * 86400; } setcookie($var ,$value ,$expire ,$path,$domain); unset($var ,$expire ,$path ,$domain); } function delete_cookie($var){ $path = '/'; $domain = 'aaa.com'; $expire = __TIME__ - 2592000; if(is_array($var)){ foreach($var as $val){ $var = '__abc_'.$val; setcookie($var ,'' ,$expire , $path,$domain); } }else{ setcookie('__abc_'.$var ,'' ,$expire , $path,$domain); } unset($path ,$expire ,$domain); } </code>
在普通的浏览器中是根本没有问题的
但是用微信打开这个网站后,登录没有问题,但是退出就不行了,一直不能删除cookie...
还是分时段的,昨天我记得还可以来着。。。
IOS和安卓都不行
微信内置浏览器中的cookie很诡异呀
这是设置和删除COOKIE的代码
<code>function set_cookie($var ,$value = '' ,$expire = 0){ $path = '/'; $domain = 'aaa.com'; $auth = 'sadfsadfasdf'; if($value!='') $value = _myencrypt($value ,$auth); $var = '__abc_'.$var; if($expire==0){ $expire = 0; }else if($expire > 0){ $expire = __TIME__ + (86400*$expire); }else{ $expire = $expire * 86400; } setcookie($var ,$value ,$expire ,$path,$domain); unset($var ,$expire ,$path ,$domain); } function delete_cookie($var){ $path = '/'; $domain = 'aaa.com'; $expire = __TIME__ - 2592000; if(is_array($var)){ foreach($var as $val){ $var = '__abc_'.$val; setcookie($var ,'' ,$expire , $path,$domain); } }else{ setcookie('__abc_'.$var ,'' ,$expire , $path,$domain); } unset($path ,$expire ,$domain); } </code>
在普通的浏览器中是根本没有问题的
但是用微信打开这个网站后,登录没有问题,但是退出就不行了,一直不能删除cookie...
还是分时段的,昨天我记得还可以来着。。。
IOS和安卓都不行
微信里的 cookie 不是持久的,据我测试,有时关闭微信再打开就没有了。Android 和 IOS 中保存的具体时间可能有所不同。
之前想用 cookie 区别唯一用户来着,后来发现不行。但又没有服务号做 Oauth授权,着实头疼了好一阵子。后来找到这个,解决了我的问题:
微信之门api: http://wgate.gaitianxia.com/
我也遇到了同样的问题,就是删除不了Cookie,恼人!
不过现在发现是自己的手机会这样,其他的不会,我的手机参数:
LT22i
Android 4.1.2(内核3.0.8+)
微信版本6.2.4
而且cookie是还可以是重复的, js修改了cookie的值,原来的cookie的值竟然也会有效,alert之后显示"cityid=3;cityid=13;", 所以后台得到的仍然时cityid=3,太诡异了. 其他浏览器就一切正常.
<code>function delCookie(name){ document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:01 GMT"; }</code>
此方法在微信才能正常删除cookie