仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3866|回复: 18
打印 上一主题 下一主题

[学习教程] PHP网页设计PHP若何读取COOKIES

[复制链接]
飘飘悠悠 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:21:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
聪明的你,显然已经逐渐的开悟了,慢慢的理解了编程的概念,那么祝贺你,你已经迈出了成功的第一步。cookie|cookies   观察阅读器的 Cookies
  让咱们来看看保留在阅读器中的内容。假如你用的是 IE5 ,在 windows 目次下有一个 cookies 的目次,外面有良多文本文件,文件名都是相似于 wudong@15seconds[1].txt 如许的,这就是阅读器用来保留值的 cookies 了。在之前的 IE 版本中, cookies 的内容是可以观察的,但如今内容已被编码了。在阅读器失掉一个 Web 页面之前,它会先看这个页面的域名,是不是在 cookie 中存在,假如有比拟配的,阅读器会先把婚配的 cookie 传送到办事器,然后才承受处置办事器传送过去的页面。
  先举个 cookies 使用的例子:当我毗连到 Amazon.com 时,阅读器在承受第一个页面之前会把它之前设置的 cookies 的内容传送给 Amazon 。然后 Amazon.com 对传送过去的内容加以反省,看看在数据库中有无相干材料,在婚配以后,在为我创立一个定制的页面传送到过去。
======================
为 cookies 赋值
必需在办事器传送任何内容给客户阅读器之前为 Cookies 赋值。要做到这一点, cookies 的设置就必需放在 < HEAD> 标签内:



< ?php
setcookie("CookieID", $USERID);
?>
< HTML>
< BODY>
< /BODY>
< /HTML>
   setcookie 函数一共有六个参数,用逗号来分隔:
cookie 的称号,是一个字符串,例如: "CookieID" 。其间不答应有冒号,逗号和空格。这个参数是必需的,而其它的一切参数都是可选的。假如只要这一个参数被给出,那末这个 cookie 将被删除。
cookie 的值,凡是是一个字符串变量,例如: $USERID 。也能够为它赋一个 ?? 来略过值的设置。
cookie 生效的工夫。假如被省略(或被赋值为零), cookie 将在这个对话期( session )停止后生效。这个参数可所以一个相对的工夫,用 DD-Mon-YY HH:MM:SS 来暗示,好比: "24-Nov-99 08:26:00" 。而更经常使用的是设置一个绝对工夫。这是经由过程 time() 函数或 mktime 函数来完成的。好比 time()+3600 将使得 cookie 在一个小时后生效。
一个途径,用来婚配 cookie 的。当在一个办事器上有多个同名的 cookie 的设置,为防止搅浑,就要用到这个参数了。利用 "/" 途径的和省略这个参数的后果是一样的。要注重的是 Netscape 的 cookie 界说是把域名放在途径的后面的,而 PHP 则与之相反。
办事器的域名,也是用来婚配 cookie 的。要注重的是:在办事器的域名前必需放上一个点( . )。例如: ".friendshipcenter.com" 。由于除非有两个以上的点存在,否者这个参数是不克不及被承受的。
cookie 的平安级,是一个整数。 1 暗示这个 cookie 只能经由过程“平安”的收集来传送。 0 或省略则暗示任何类型的收集都可以。
=======
Cookies 和变量
  当 PHP 剧本从客户阅读器提取了一个 cookie 后,它将主动的把它转换成一个变量。例如:一个名为 CookieID 的 cookie 将酿成变量 $CookieID.
Cookies 的内容被报存在 HTTP_COOKIE_VARS 数组中,你还可以经由过程这个数组和 cookie 的称号来存取指定的 cookie 值:
print $HTTP_COOKIE_VARS[CookieID];
==============
记住每个用户
   回过火在来看看下面的 submitform.php3 文件,它的感化是把客户的姓名添加到数据库中,如今我想为它添加一些器材。我想为每一个用户都分派一个独一的用户标记,然后把这个标记放在 Cookies 中,如许每当用户会见我的网站的时分,经由过程 cookie 和个中的用户标记,我就可以够晓得他是谁了。
MySQL 可以被设置成为每个新的记载主动的分派一个数字,这个数字从 1 入手下手,今后每次主动加 1 。用一行 SQL 语句,你就能够轻松的为数据表添加如许的一个字段,我把它叫做 USERID:
ALTER TABLE dbname
ADD COLUMN
USERID INT(11) NOT NULL
PRIMARY KEY AUTO_INCREMENT;



  对这个字段咱们作了一些出格的设置。起首,经由过程“ INT(11) ”界说它的类型为 11 位的整数;然后用“ NOT NULL ”关头字让这个字段的值不克不及为 NULL ;再用“ PRIMARY KEY ”把它设置为索引字段,如许搜刮起来就会更快;最初,“ AUTO_INCREMENT ”界说它为主动增一的字段。
   当把用户的姓名拔出到数据库后,就应当在他们的阅读器上设置 cookie 了。这时候使用的就是方才咱们谈到的 USERID 字段的值 :
< ?php
mysql_connect (localhost, username, password);
mysql_select_db (dbname);
mysql_query ("INSERT INTO tablename (first_name, last_name) VALUES ("$first_name", "$last_name")");
setcookie("CookieID",
mysql_insert_id(),
time()+94608000,
"/"); /* 三年后 cookie 才会生效 */
?>
PHP 函数 mysql_insert_id() 前往在最初一次履行了 INSERT 查询后,由 AUTO_INCREMENT 界说的字段的值。如许,只需你不排除失落阅读器的 Cookies ,网站就会永久“记住”你了
==================
读取 cookie
  咱们来写一个像 Amazon.com 所作的那样的剧本。起首, PHP 剧本会先反省客户阅读器是不是发送了 cookie 过去,假如是那样的话,用户的姓名就会被显示出来。假如没找到 cookie 的话,就显示一个表单,让客户挂号他们的姓名,然后把他添加到数据库中,并在客户阅读个中设置好 cookie 。
   起首,先来显示 cookie 的内容:
< ?php
print $CookieID;
?>
然后,就能够把名字显示出来了:
< ?php
mysql_connect (localhost, username, password);
mysql_select_db (dbname);
$selectresult = mysql_query ("SELECT * FROM tablename WHERE USERID = "$CookieID"");
$row = mysql_fetch_array($selectresult);
echo " 接待你的惠临 ", $row[first_name], "!";
?>
   就是如许的了。我在个中没有作判别,交给你本人来完成好了。  终于学会把表单的数据插入数据库,然后显示出来了,应该说一个程序的雏形已经诞生了。
admin 该用户已被删除
沙发
发表于 2015-2-4 12:33:43 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
小女巫 该用户已被删除
板凳
发表于 2015-2-4 13:14:38 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
蒙在股里 该用户已被删除
地板
发表于 2015-2-4 13:42:54 | 只看该作者
爱上php,他也会爱上你。
简单生活 该用户已被删除
5#
发表于 2015-2-6 07:30:41 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
不帅 该用户已被删除
6#
发表于 2015-2-7 04:12:03 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
透明 该用户已被删除
7#
发表于 2015-2-7 19:55:18 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
谁可相欹 该用户已被删除
8#
发表于 2015-2-9 05:33:46 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
变相怪杰 该用户已被删除
9#
发表于 2015-2-26 17:16:13 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
莫相离 该用户已被删除
10#
发表于 2015-3-8 16:12:40 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
兰色精灵 该用户已被删除
11#
发表于 2015-3-16 04:04:31 | 只看该作者
做为1门年轻的语言,php一直很努力。
12#
发表于 2015-3-22 20:04:05 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
愤怒的大鸟 该用户已被删除
13#
发表于 2015-3-23 02:38:35 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
小妖女 该用户已被删除
14#
发表于 2015-3-27 08:10:27 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
飘飘悠悠 该用户已被删除
15#
 楼主| 发表于 2015-4-16 04:10:08 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
冷月葬花魂 该用户已被删除
16#
发表于 2015-4-29 18:00:14 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
飘灵儿 该用户已被删除
17#
发表于 2015-7-10 23:12:26 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
老尸 该用户已被删除
18#
发表于 2015-10-6 03:29:40 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
活着的死人 该用户已被删除
19#
发表于 2015-11-2 21:04:51 | 只看该作者
实践是检验自己会不会的真理。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 03:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表