首页 > 其他 > 详细

操作cookie

时间:2019-05-31 21:49:19      阅读:122      评论:0      收藏:0      [点我收藏+]

js中操作cookie

技术分享图片
;(function (factory) {
    var registeredInModuleLoader = false;
    if (typeof define === function && define.amd) {
        define(factory);
        registeredInModuleLoader = true;
    }
    if (typeof exports === object) {
        module.exports = factory();
        registeredInModuleLoader = true;
    }
    if (!registeredInModuleLoader) {
        var OldCookies = window.Cookies;
        var api = window.Cookies = factory();
        api.noConflict = function () {
            window.Cookies = OldCookies;
            return api;
        };
    }
}(function () {
    function extend () {
        var i = 0;
        var result = {};
        for (; i < arguments.length; i++) {
            var attributes = arguments[ i ];
            for (var key in attributes) {
                result[key] = attributes[key];
            }
        }
        return result;
    }

    function init (converter) {
        function api (key, value, attributes) {
            var result;
            if (typeof document === undefined) {
                return;
            }

            // Write

            if (arguments.length > 1) {
                attributes = extend({
                    path: /
                }, api.defaults, attributes);

                if (typeof attributes.expires === number) {
                    var expires = new Date();
                    expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
                    attributes.expires = expires;
                }

                // We‘re using "expires" because "max-age" is not supported by IE
                attributes.expires = attributes.expires ? attributes.expires.toUTCString() : ‘‘;

                try {
                    result = JSON.stringify(value);
                    if (/^[\{\[]/.test(result)) {
                        value = result;
                    }
                } catch (e) {}

                if (!converter.write) {
                    value = encodeURIComponent(String(value))
                        .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
                } else {
                    value = converter.write(value, key);
                }

                key = encodeURIComponent(String(key));
                key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
                key = key.replace(/[\(\)]/g, escape);

                var stringifiedAttributes = ‘‘;

                for (var attributeName in attributes) {
                    if (!attributes[attributeName]) {
                        continue;
                    }
                    stringifiedAttributes += ;  + attributeName;
                    if (attributes[attributeName] === true) {
                        continue;
                    }
                    stringifiedAttributes += = + attributes[attributeName];
                }
                return (document.cookie = key + = + value + stringifiedAttributes);
            }

            // Read

            if (!key) {
                result = {};
            }

            // To prevent the for loop in the first place assign an empty array
            // in case there are no cookies at all. Also prevents odd result when
            // calling "get()"
            var cookies = document.cookie ? document.cookie.split(; ) : [];
            var rdecode = /(%[0-9A-Z]{2})+/g;
            var i = 0;

            for (; i < cookies.length; i++) {
                var parts = cookies[i].split(=);
                var cookie = parts.slice(1).join(=);

                if (!this.json && cookie.charAt(0) === ") {
                    cookie = cookie.slice(1, -1);
                }

                try {
                    var name = parts[0].replace(rdecode, decodeURIComponent);
                    cookie = converter.read ?
                        converter.read(cookie, name) : converter(cookie, name) ||
                        cookie.replace(rdecode, decodeURIComponent);

                    if (this.json) {
                        try {
                            cookie = JSON.parse(cookie);
                        } catch (e) {}
                    }

                    if (key === name) {
                        result = cookie;
                        break;
                    }

                    if (!key) {
                        result[name] = cookie;
                    }
                } catch (e) {}
            }

            return result;
        }

        api.set = api;
        api.get = function (key) {
            return api.call(api, key);
        };
        api.getJSON = function () {
            return api.apply({
                json: true
            }, [].slice.call(arguments));
        };
        api.defaults = {};

        api.remove = function (key, attributes) {
            api(key, ‘‘, extend(attributes, {
                expires: -1
            }));
        };

        api.withConverter = init;

        return api;
    }

    return init(function () {});
}));
View Code
// 设置
Cookies.set(‘id‘, ‘1818‘, {expires: 7, path: ‘/‘});
// 获取
Cookies.get();
// 移除
Cookies.remove(‘id‘);

 php中操作cookie

技术分享图片
// 设置cookie
setcookie(key,value,time() * 1 * 24 * 60 * 60, /users)

    bool setcookie ( 
    string $name                 // 参数1(只传参数1是设置已过期的时间)
    [, string $value             // 参数2
    [, int $expire = 0         // 设置过期时间
    [, string $path             // 设置cookie的作用路径范围 ‘/user‘
    [, string $domain         // 设置cookie的作用域名范围 ‘www.‘
    [, bool $secure = false     // 
    [, bool $httponly = false ]]]]]] ) // 设置为true,只支持服务端访问,jS无法访问到

// 获取cookie
$_COOKIE

// 删除(时间立即到期)cookie
setcookie(key)
View Code

防止伪造的cookie

技术分享图片
// 开启session
session_start()
// 设置cookie
$_SESSION[key] = value;
View Code

 

操作cookie

原文:https://www.cnblogs.com/uncle-kay/p/10957536.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!