PHP中SESSION和COOKIE使用

来源:互联网 发布:一键无痕偷开视频软件 编辑:程序博客网 时间:2024/05/21 10:05


1.COOKIE

cookie的使用方法:

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

<?phpsetcookie("username","littleboy",time()+60*60*24);// echo $_COOKIE["username"];  这样会出错print_r($_COOKIE);?>

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

数组形态的cookie使用:

<?phpsetcookie("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中(后面讨论)。

每个页面都要有一个

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


第一次访问网站的时候

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

设置session:

<?phpsession_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:

<?phpsession_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了,写完手工~~~得意

0 0