仓酷云

标题: PHP网页编程之PHP 和 MySQL 基本教程(三) [打印本页]

作者: 金色的骷髅    时间: 2015-2-4 00:22
标题: PHP网页编程之PHP 和 MySQL 基本教程(三)
如果你单纯是为了做网站赚钱,我想你还是别学php的好,去学ASP,JSP好了,毕竟它们有实力雄厚的公司去支持它们。mysql|基本教程   用 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], "!";

?>

   就是如许的了。我在个中没有作判别,交给你本人来完成好了
  基础这个东西,有人问学php需要任何基础不?
作者: 飘灵儿    时间: 2015-2-4 12:44
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 只想知道    时间: 2015-2-9 22:39
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
作者: 分手快乐    时间: 2015-2-26 02:36
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
作者: 山那边是海    时间: 2015-2-28 16:54
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
作者: 兰色精灵    时间: 2015-3-10 01:42
兴趣是最好的老师,百度是最好的词典。
作者: 海妖    时间: 2015-3-17 03:47
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 精灵巫婆    时间: 2015-3-17 20:53
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
作者: 仓酷云    时间: 2015-3-22 23:19
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 爱飞    时间: 2015-3-26 04:50
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
作者: 变相怪杰    时间: 2015-4-6 00:51
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 第二个灵魂    时间: 2015-4-9 13:12
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 愤怒的大鸟    时间: 2015-4-14 09:01
基础有没有对学习php没有太大区别,关键是兴趣。
作者: 飘飘悠悠    时间: 2015-4-20 00:30
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
作者: 柔情似水    时间: 2015-4-29 16:22
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
作者: admin    时间: 2015-6-9 03:03
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者: 再现理想    时间: 2015-6-19 14:46
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
作者: 莫相离    时间: 2015-6-26 09:43
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
作者: 再见西城    时间: 2015-6-26 20:58
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
作者: 简单生活    时间: 2015-7-6 05:57
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2