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> &nbsp;&nbsp;&nbsp; 您当前使用的是“试用版学习资源网”,主要应用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>&nbsp;&nbsp;***进入聊天室,欢迎光临!!</span><br>
&nbsp;&nbsp;<?php echo date("y-m-d h:i:s");?>
</td>
    <td  valign="top"><br>
    &nbsp;&nbsp;&nbsp;&nbsp;在这里显示聊天的内容,希望大家遵守聊天室的规则,不要在聊天室中传播不健康的和非法的内容,谢谢合作! </span></td>
  </tr>
  <tr valign="middle">
    <td height="50" colspan="2"><p><br>
      在这里选择您喜欢的颜色,您的页面也将随即更新!</p>
      <form name="form1" method="post" action="">
        <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请选择您喜欢的风格:</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>

 


以上是关于PHP Sessions的主要内容,如果未能解决你的问题,请参考以下文章

PHP php db sessions

php中Sessions

PHP Sessions

PHP Sessions

PHP Sessions 或 cookie,哪个更好? [复制]

PHP上传进度支持(Upload progress in sessions)