PHP Sessions
Posted chuanzi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP Sessions相关的知识,希望对你有一定的参考价值。
1、Session概述
php session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用
通过在服务器上存储用户信息以便随后使用,不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。
Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。
2、启动Sessions会话
使用session_start() 函数启动会话,且该函数必须位于 <html> 标签之前
<?php session_start(); ?>
<html>
<body>
</body>
</html>
上面的代码会向服务器注册用户的会话,以便可以开始保存用户信息,同时会为用户会话分配一个 UID
设置session存储路径
$path = ‘./tmp/‘; //将session存储到当前目录的tmp目录下 session_save_path($path); session_start();
Session客户端缓存
session_cache_limiter(‘private‘); $cache_limit = session_cache_limiter(); session_cache_expire(30); $cache_expire = session_cache_expire(); session_start();
3、获取Session会话ID
session_start(); echo session_id();
也可以自己设置Session会话ID
session_id(“www.gzhu.edu.cn"); session_start(); echo session_id();
4、存储 Session 变量
存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量:
创建一个简单的 page-view 计数器。isset() 函数检测是否已设置 "views" 变量。如果已设置 "views" 变量,累加计数器。如果 "views" 不存在,则创建 "views" 变量,并把它设置为 1:
session_start(); if(isset($_SESSION[‘views‘])) $_SESSION[‘views‘]=$_SESSION[‘views‘]+1; else $_SESSION[‘views‘]=1; echo "Views=". $_SESSION[‘views‘];
5、终结 Session
unset() 函数用于释放指定的 session 变量:
unset($_SESSION[‘views‘]);
通过 session_destroy() 函数彻底终结 session:
session_destroy();
6、应用
使用COOKIE限制用户访问网站的时间
登录页面:
setcookie("cookie1",$_POST[‘user‘],time()+30);
验证页面:
session_start(); if(isset($_COOKIE[‘cookie1‘]) && $_COOKIE[‘cookie1‘]!=‘‘){ echo "<p>用户您好</p></span> <p> 您当前使用的是“试用版学习资源网”,主要应用COOKIE实现对网站访问时间的限制,当浏览者在网站中停留的时间超过网站规定的访问时间时,将自动跳转到登录页面,只有重新登录才可以继续访问 </p>"; }else{ echo "您在本网站停留的时间已经超过我们限制的时间,系统将在5秒钟后退出登录!!谢谢!请稍等..."; echo "<meta http-equiv="Refresh" content="5;url=index.php">"; }
应用Session技术实现聊天室换肤
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>应用Session技术实现聊天室换肤</title> <style type="text/css"> <!-- .style6 { font-size: 24px; color: #000000; font-weight: bold; } --> </style> </head> <?php if(isset($_POST[‘select‘])){ $_SESSION[‘color1‘]=$_POST[‘select‘]; } ?> <body style="background-color:<?php if(isset($_SESSION[‘color1‘])) echo $_SESSION[‘color1‘];?>"> <table width="1024" border="1" align="center" cellpadding="1" cellspacing="1"> <tr align="center" valign="middle"> <td height="80" colspan="2" class="style6">聊天室</td> </tr> <tr valign="middle"> <td width="209" height="479" valign="top"><br> <span> ***进入聊天室,欢迎光临!!</span><br> <?php echo date("y-m-d h:i:s");?> </td> <td valign="top"><br> 在这里显示聊天的内容,希望大家遵守聊天室的规则,不要在聊天室中传播不健康的和非法的内容,谢谢合作! </span></td> </tr> <tr valign="middle"> <td height="50" colspan="2"><p><br> 在这里选择您喜欢的颜色,您的页面也将随即更新!</p> <form name="form1" method="post" action=""> <span> 请选择您喜欢的风格:</span> <select name="select" id="select"> <option value="green">草绿色</option> <option value="yellow">亮黄色</option> <option value="white">纯白色</option> <option value="red">鲜红色</option> <option value="gray">深灰色</option> <option value="lavender" selected>熏衣草</option> </select> <input type="submit" name="Submit" value="提交"> </form></td> </tr> </table> </body> </html>