首頁 >php教程 >php手册 >php学习笔记之cookie/session

php学习笔记之cookie/session

WBOY
WBOY原創
2016-06-06 19:55:22752瀏覽

今天学习了cookie和session,终于知道登录神马的是怎么弄的了,原谅我这个小菜鸟吧。没有比解开神秘面纱神马的最令人激动的了。下面来 回顾一下学习的内容: 1、cookie和session简介: 老听说cookie,以前也在IE上清理过这玩意,但是还真的没有认真的学习和

今天学习了cookie和session,终于知道登录神马的是怎么弄的了,原谅我这个小菜鸟吧。没有比解开神秘面纱神马的最令人激动的了。下面来回顾一下学习的内容:


1、cookie和session简介:

老听说cookie,以前也在IE上清理过这玩意,但是还真的没有认真的学习和了解过这个神器的小东西到底是什么。在非常多时候,我们需要跟踪浏览者在整个网站的活动,对他们身份进行自动或半自动的识别(也就是平时常说的网站登陆之类的功能),这时候,我们常采用Cookie与 Session来跟踪和判断。cookie和session就是登录界的两把神器。

那么这两把神器有什么区别呢?

Session信息是存放在server端,但session id是存放在client cookie的,当然php的session存放方法是多样化的,这样就算禁用cookie一样可以跟踪的。

Cookie是完全保持在客户端的如:IE firefox 当客户端禁止cookie时将不能再使用

哦明白了,原来是是存放数据的位置不同,原来这两把神器放在两个不同的盒子里,一个是保存在浏览器里面的(cookie),一个是保存在服务器端的或者其他保存方式。

那么还有什么区别么呢?

这两把神器有不同的优缺点:

Cookie:是保持在客户端(浏览器等),因此就减少了服务器端的压力,同时能够长时间保存cookie信息。但是因为保存在客户端,因此安全性比较差,比如一些伪cookie等。可以通过加密来增加安全性。

Session:以为是保存在服务器端的,用户是无法修改的。因此安全性比较高,但是因为保存的数据比较大,会增大服务器的压力。

那么已经初步了解到了这两把神器,那么他们怎么使用呢?接着往下看。

2.cookie的配置应用:

(1)配置cookie的函数:

Setcookie(string name, string value, int expire,string path, string domain, int secure); 

来看一下各个参数的意义,name就是cookie参数的名字,value就是值,expire是cookie保存的时间,path是保存的路径,domain 表示cookie变量的网站;secure 则需在 https 的安全传输时才有效。 其中name和value是必写的变量,其他变量可选。

下面举个例子:

SetCookie("Cookie", "value",time()+3600, "/www", ".baidu.com", 1);

time()+3600表示保存一个小时。1表示https。

(2)cookie的使用:全局函数$_COOKIE[]用法类似与$_POST[]和$_GET[];

(3)如何删除cookie:

有两种方法:一:set_cookie("name","");把cookie的值变为空。

      二:set_cookie("name","value",time()+(-1)/time());把时间赋为0或者是-1。


下面是我写的一个具体例子:

<?php //删除cookie
if ($_POST[out]) {
	setcookie("id",'');
	setcookie("pass",'');
	echo "退出成功";
	echo "<script>location.href='cookie.php'";

	
	
}
//设置cookie,判断是否输入了帐号密码。
if ($_POST[name]&&$_POST[password]) {

	setcookie("id",$_POST[name]);
	setcookie("pass",$_POST[password]);
	echo "<script>location.href='cookie.php'</script>";//注意,因为cookie不是实时生效的,因此第一次不能把cookie直接显示出来,因此要加一个跳转的js//

}
if ($_COOKIE[id]&&$_COOKIE[pass]) {
 
echo "登录成功<br>帐号:".$_COOKIE[id]."<br>密码:".$_COOKIE[pass];
}
else
{
	echo "帐号或密码错误";
}


?>

帐号:

密码:

验证码:

3.Session的配置应用:


session_start();                    //初始化session.需在文件头部

$_SESSION[name]=value;  //配置Seeeion

echo $_SESSION[name];    //使用session

isset($_SESSION[name]);   // 判断

unset($_SESSION[name]);   //删除

session_destroy();             //消耗所有session

继续上代码:

<?php session_start();


if ($_POST[out]) {
	unset($_SESSION[id]);

		unset($_SESSION[pass]);
	# code...
}

if ($_POST[name]&&$_POST[password]) {


	$_SESSION[id]=$_POST[name];

	$_SESSION[pass]=$_POST[password];

	

	}

if ($_SESSION[id]&&$_SESSION[pass]) {
 
echo "登录成功<br>帐号:".$_SESSION[id]."<br>密码:".$_SESSION[pass];
}
else
{
	echo "帐号或密码错误";
}




?>


帐号:

密码:

注意:这里忘记说一个cookie和session的区别。就是cookie不是实时生效的,第一次是生存cookie。但是session却是实时生效的,因此不用加跳转。


好了,cookie和session就复习到这个,欢迎大家批评指导。








 




陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn