javascript怎么获取cookie
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript怎么获取cookie相关的知识,希望对你有一定的参考价值。
function getCookie(name)var strcookie = document.cookie;//获取cookie字符串
var arrcookie = strcookie.split("; ");//分割
//遍历匹配
for ( var i = 0; i < arrcookie.length; i++)
var arr = arrcookie[i].split("=");
if (arr[0] == name)
return arr[1];
return "";
参考技术A 浏览器cookie分析
简单点说就是数据存储,通过javascript将要保存的数据保存在客户端浏览器,下次打开网页时调用保存的cookie。浏览器中cookie保存的形式:user=aa; pwd=123; sex=man; 还要注意的是cookie的过期时间expires。好了!简单分析到此结束,开始代码吧!
END
设置cookie
最简单的就是:document.cookie="user=aa"。
但是这样就没有过期时间了,只是暂存于电脑内存里没有保存下来,几天后无法显示cookie内容。下面开始正式写规范完整的函数。
代码如下:
function setCookie(name, value, iDay)
/* iDay 表示过期时间
cookie中 = 号表示添加,不是赋值 */
var oDate=new Date();
oDate.setDate(oDate.getDate()+iDay);
document.cookie=name+'='+value+';expires='+oDate;
JavaScript中Date对象的setDate方法用于设置一个月的某一天,而getDate获得当前的日期,由此可以按照保存为多少天就在当前(getDate)日期加多少天。
END
获取cookie
前面分析的时候我们讲过浏览器cookie是由像:user=aa; pwd=123;等等组成的,所有要想获取cookie关键还是字符串和数组的操作。
代码如下:
function getCookie(name)
/* 获取浏览器所有cookie将其拆分成数组 */
var arr=document.cookie.split('; ');
for(var i=0;i<arr.length;i++)
/* 将cookie名称和值拆分进行判断 */
var arr2=arr[i].split('=');
if(arr2[0]==name)
return arr2[1];
return '';
END
删除cookie
删除cookie的思想很简单,就是将cookie的过期时间设置为过期(-1),已经过了一天。那么就能实现了,当然了需要调用设置cookie的函数setCookie。
代码如下:
function removeCookie(name)
/* -1 天后过期即删除 */
setCookie(name, 1, -1);
使用 PHP 获取/读取 Javascript cookie
【中文标题】使用 PHP 获取/读取 Javascript cookie【英文标题】:Get/Read Javascript cookie with PHP 【发布时间】:2014-04-19 02:11:16 【问题描述】:我有一个理论问题..
我知道您可以使用 javascript 获取/读取 PHP cookie,方法是:document.cookie
在 PHP 中有类似的方法吗?
PHP 可以获取/读取在 JavaScript 中创建的 cookie 吗? 如果是,那你怎么做?
【问题讨论】:
您也可以在 PHP 中使用 setcookie 函数设置 cookie。真正发生的是响应将带有 cookie 标头;然后浏览器将存储 cookie。从现在开始,每个请求都将在请求标头中进行中继,PHP 和其他服务器端脚本会在其中访问之前存储的内容。 【参考方案1】:您可以使用超全局$_COOKIE
。只需像引用任何数组一样引用它,其中 $_COOKIE['key_name']
是您要访问的 cookie。
请参阅PHP API documentation。
【讨论】:
所以我只需要使用 $_COOKIE['cookiename'] i 的 php 代码广告 php 将获取已在 JS 中设置的 cookie? this 对在 js 中设置 cookie 时使用正确的域有更多说明,供登陆这里的人使用【参考方案2】:PHPglue 的答案很好,但有几个错别字。它也不会告诉您索引是什么,这会很有帮助。
foreach($_COOKIE as $key=>$value)
echo "key: ".$key.'<br />';
echo "value: ".$value.'<br />';
;
我的问题是我在 Javascript 中设置了名称中带有句点的 cookie。这些被转换为下划线。例如 cookie 名称,facebookLogin.myapp.com 被更改为 facebookLogin_myapp_com。运行上面的代码后,我可以看到名称与预期不同,并正确读取了 PHP 中的名称。
【讨论】:
【参考方案3】:要查看它们,您可以这样做:
foreach($_COOKIE as $v)
echo htmlentities($v, 3, 'UTF-8').'<br />';
对于单个 cookie,它只是:
echo htmlentities($_COOKIE['cookieName'], 3, 'UTF-8');
随意更改引用样式(3 为 ENT_QUOTES)和字符集以满足您的需要。
注意:cookie 必须设置在同一个域上才能访问它。
【讨论】:
【参考方案4】:Javascript 可以通过两种方式(我知道)window.cookie
和 document.cookie
设置 cookie。如果使用window.cookie
php 无法评估cookie,则php 只能评估document.cookie
设置的cookie。
javascript
document.cookie = 'name=value';
PHP
print_r($_COOKIE);
您将在其中看到您的 javascript 创建的 cookie,以及其他由 php 创建的。
或
回声 $_COOKIE['name'];
使用 javascript 评估 php cookie
使用相同的document.cookie
来评估文档 (php) cookie 和使用 document.cookie 创建的 javascript cookie。
Javascript 只能评估 window.cookies 创建的 cookie
【讨论】:
【参考方案5】:我认为这是在一个 cookie 中设置所有提示并在您的信息之间使用符号的好方法。然后在通过 JavaScript 设置 cookie 后在“PHP”中使用例如这个
$mystr = print_r($_COOKIE);
$way=explode(";",$mystr);
【讨论】:
以上是关于javascript怎么获取cookie的主要内容,如果未能解决你的问题,请参考以下文章