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.cookiedocument.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的主要内容,如果未能解决你的问题,请参考以下文章

怎么用javascript获取文本域的信息

javascript怎么获取cookie

JavaScript 怎么获取元素的宽度 ?

php怎么获取当前页面 javascript的变量值

javascript怎么获取手机设备,电脑或者pad的唯一ID。

javascript 怎么获取指定url网页中的内容