博客列表 >PHP与javascript的cookie交互

PHP与javascript的cookie交互

沅有芷兮澧有兰
沅有芷兮澧有兰原创
2019年04月04日 14:44:05785浏览
<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport"
	      content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title>cookie</title>
</head>
<body>
<?php
setcookie('php_cookie','php_cookie');
echo isset($_COOKIE['js_cookie'])?$_COOKIE['js_cookie']:'暂无';
//echo $_COOKIE['js_cookie']??'暂无';
?>
<hr>
<script type="text/javascript">
    var Cookies = {};
    /** 设置Cookies */
    Cookies.set = function(name, value){
        var argv = arguments;
        var argc = arguments.length;
        var expires = (argc > 2) ? argv[2] : null;
        if(expires != null){
            var exp   = new Date();
            exp.setTime(exp.getTime() + 8*3600 + expires);
        }
        //alert(exp.toGMTString());
        var path = (argc > 3) ? argv[3] : '/';
        var domain = (argc > 4) ? argv[4] : null;
        var secure = (argc > 5) ? argv[5] : false;
        document.cookie = name + "=" + escape (value) +
            ((expires == null) ? "" : ("; expires=" + exp.toGMTString())) +
            ((path == null) ? "" : ("; path=" + path)) +
            ((domain == null) ? "" : ("; domain=" + domain)) +
            ((secure == true) ? "; secure" : "");
    };
    /** 读取Cookies */
    Cookies.get = function(name){
        var arg = name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var i = 0;
        var j = 0;
        while(i < clen){
            j = i + alen;
            if (document.cookie.substring(i, j) == arg)
                return Cookies.getCookieVal(j);
            i = document.cookie.indexOf(" ", i) + 1;
            if(i == 0)
                break;
        }
        return null;
    };
    /** 清除Cookies */
    Cookies.clear = function(name) {
        if(Cookies.get(name)){
            var expdate = new Date();
            expdate.setTime(expdate.getTime() - (86400 * 1000 * 1));
            Cookies.set(name, "", expdate);
        }
    };
    Cookies.getCookieVal = function(offset){
        var endstr = document.cookie.indexOf(";", offset);
        if(endstr == -1){
            endstr = document.cookie.length;
        }
        return unescape(document.cookie.substring(offset, endstr));
    };
/**-----------------------------------------------*/
    Cookies.set('js_cookie','js_cookie');
    document.write(Cookies.get('php_cookie'));
</script>
</body>
</html>

第一次执行结果:

cookie-1.jpg

第二次执行结果:

cookie-2.jpg

-------------------------------------------

tips:

js读取php的中文cookie需要 "decodeURIComponent (escape( )) "函数处理
php读取js的中文cookie需要 "unescape( )" 函数处理

----------------------------------------------

如果只是要在js中使用,可以用下面的方法:

1,localStorage.setItem("cookie", 123);//保存cookie

2,localStorage.getItem("cookie");//获取cookie值

3,localStorage.removeItem("cookie");//清除cookie值

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议