您的位置:首页 > 编程语言 > PHP开发

PHP中SESSION和COOKIE使用

2014-07-03 20:29 441 查看
1.COOKIE

cookie的使用方法:

语法:setcookie(name, value, expire, path, domain);

<?php

setcookie("username","littleboy",time()+60*60*24);

// echo $_COOKIE["username"];  这样会出错

print_r($_COOKIE);

?>


出错原因: 在设置cookie的脚本中,第一次读取它的信息是不会生效的,必须刷新或者到下一个页面才可以看到cookie值,可以使用print_r()函数来查看$_COOKIE数组。

数组形态的cookie使用:

<?php

setcookie("user[username]","littleboy");
setcookie("user[password]",md5(123456));

setcookie("user[email]","123@qq.com");

//使用方法:
foreach ($_COOKIE["user"] as $key => $value) {
# code...
echo $key.":".$value."<br>";
}

?>
删除cookie方法和设置方法一样,让cookie过期即可。

<?php

//第一种方法,过期系统会自动删除
setcookie("username","",time()-1);

//第二种方法:
setcookie("username");

?>


2.SESSION

当用户浏览器禁用COOKIE的情况下,怎样维持一个会话呢,这就用到了session。

服务器创建一个sessionID,存储在COOKIE中,如果禁用COOKIE的话,可以保存在URL中(后面讨论)。

每个页面都要有一个

<?php

session_start();
?>
这个一定要写在最开头

第一次访问网站的时候
session_start();
函数就会创建一个sessionID,并自动通过HTTP的响应头,将这个sessionID保存在COOKIE中,当同一个用户访问这个网站时,这时session_start()函数就不会再创建sessionID了,而是在服务器的硬盘中找和这个sessionID相同的session文件。

设置session:

<?php

session_start();

$_SESSION["username"] = "littleboy";
$_SESSION["uid"] = 1;

print_r($_SESSION);
echo "SESSION ID:".session_id()."<br>";
?>


如何注销和销毁session:

<?php
//第一步:初始化
session_start();
//第二步:将当前用户的session中的变量全部清除,赋值一个空数组
$_SESSION = array();
//第三步:判断COOKIE中有没有保存sessionID,第四个参数一定要和php.ini设置的路径一致
if(isset($_COOKIE[session_name()])){
//使用setcookie方法来删除该COOKIE信息
setcookie(session_name(),"",time()-3600,"/");
}
//最后彻底结束当前会话,释放资源
session_destroy();
?>


如果禁用COOKIE的话,URL中传递sessionID:

<?php

session_start();

$_SESSION["username"] = "admin";

echo "session ID:".session_id()."<br>";
echo "session name:".session_name()."<br>";
?>

<!--在URL中附加sessionID-->

<a href="index.php?<?php echo SID ?>">通过URL中附加sessionID</a>


如果Cookie可以使用,那么SID为一个空字符串,URL为:index.php?

如果禁用的话,URL为:index.php?PHPSESSID=fhpns3n47j104540ql2ia56015这种模式 session_name=session_id的模式。

ok了,写完手工~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: