WD1X.COM - 问答一下,轻松解决,电脑应用解决专家
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win11Linux
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascript服务器
PHP教程CSS教程XML教程

跟我学cookies(二)

更新时间:2005-12-30 19:13 作者:45IT收集点击:

  2.如何读取复杂的cookies

  以上的cookies很简单,保存的信息也很有限,下面看看如何读取复杂的cookies,比如保存用户的姓名,年龄,电话信息,cookies设置如下:

  var the_cookie = "username:danny/age:40/tel:65283366";
  document.cookie="multi_cookie=" + escape(the_cookie);

  我用斜杠/来分割属性名称,用分号区别不同的属性名称及其属性值.当然你可以自行选择限位器.只要你注意在对cookie解码时也使用同样的限位器即可.

  以下是读取上面这个cookies的代码:

  function readTheCookie(the_info)
  {
  // 把cookies读入一个变量并解码
  var the_cookie = document.cookie;
  var the_cookie = unescape(the_cookie);
  // 提取整个cookies的数值---the_values的值是username:danny/age:40/tel:65283366
  var read_cookie = the_cookie.split("=");
  var the_values = read_cookie[1];
  // 分割每个"选项:数值"配对并将它们存为一个数组
  var sep_values = the_values.split("/");
  var property_value="";
  for (loop = 0; loop < sep_values.length; loop++)
  {
  property_value = sep_values[loop];  property_value是一个中间变量
  var last_info = property_value.split(":"); 
  var the_name = last_info[0];   //配对的第一个元素即"选项"的值
  var the_value = last_info[1];  //配对的第二个元素即"数值"的值
  the_info[the_name] = the_value; //把每个配对以"the_info[选项] = 数值" 形式保存
  }
  }

  这时侯,以下等式成立,你可以在程序中加以调用:

  the_info["username"] = "danny"
  the_info["age"] = "40"
  the_info["tel"] = 65283366

  3.关于cookies的二点重要提示

  a.路径和域

  缺省情况下cookie只能被在同一个服务器上同一个路径下设置了该cookie的网页读取,如何让某站点所有网页都能访问某一路径下特定的cookie呢?

  在你的cookie中加入path=/; 如果你只想让"new" 目录中的网页可以使用该cookie,则加入path=/new;.

  实现不同域名之间cookies的调用,可以在cookie中加入 "domain=xxxxx.com" 
  看以下实例:

  function setCookie()
  {
  var the_name = prompt("输入姓名:","");
  var the_cookie ="first_samp=" + escape(the_name) + ";" ; 
  var the_cookie = the_cookie+ "path=/;"; 
  var the_cookie = the_cookie + "domain=xxxx.com;"; //其中xxxx可以是任意的域名
  document.cookie =the_cookie; 
  }

  a.cookies失效期

  基本的cookie常常在用户关闭他的浏览器时会被自动删除,为解决这一问题,我们需要为cookies设定一个失效期,以使它确保存储在用户的硬盘上:

  function setCookie()
  {
  var the_name = prompt("输入姓名:",""); 
  var the_date = new Date("December 31, 2010"); 
  var the_cookie_date =the_date.toGMTString(); //把日期转换成cookies能识别的GMT格式
  var the_cookie = "first_samp=" + escape(the_name); 
  the_cookie = the_cookie +";expires=" + the_cookie_date; 
  document.cookie = the_cookie; 
  } 

  4.为cookies正名

  cookies曾在网络界引起很大的争论,直到现在,许多用户包括一些资深 的网虫,仍然把cookies与邪恶的目的联系在一起,他们甚至认为cookies是对 个人空间的侵犯,他们担心cookies信息一旦落入他人之手,自己会成为无谓的 牺牲品,其实,cookies信息是无法跨过网站来读取的,以这种目的来应用 cookies是不可能实现的,故笔者在此呼吁那些“视cookies如洪水猛兽”的人, 大可不必如此紧张,试着了解一下cookies并给它一个自由发展的空间吧。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容