首页 php里session的用法

php里session的用法

举报
开通vip

php里session的用法php里session的用法 php里session的用法(超级经典) php中session的用法 PHP中的session默认情况下是使用客户端的Cookie。当客户端的Cookie被禁用 时,会自动通过Query_String来传递。 Php处理会话的函数一共有11个,我们详细介绍一下将要用到几个函数。 1、 session_start 函数功能:开始一个会话或者返回已经存在的会话。 函数原型:boolean session_start(void); 返回值:布尔值 功能说明:这个函数没有参...

php里session的用法
php里session的用法 php里session的用法(超级经典) php中session的用法 PHP中的session默认情况下是使用客户端的Cookie。当客户端的Cookie被禁用 时,会自动通过Query_String来传递。 Php处理会话的函数一共有11个,我们详细介绍一下将要用到几个函数。 1、 session_start 函数功能:开始一个会话或者返回已经存在的会话。 函数原型:boolean session_start(void); 返回值:布尔值 功能说明:这个函数没有参数,且返回值均为true。最好将这个函数置于最先,而 且在它之前不能有任何输出,否则会报警,如:Warning: Cannot send session cache limiter - headers already sent (output started at /usr/local/apache/htdocs/cga/member/1.php:2) in /usr/local/apache/htdocs/cga/member/1.php on line 3 2、 session_register 函数功能:登记一个新的变量为会话变量 函数原型:boolean session_register(string name); 返回值:布尔值。 功能说明:这个函数是在全局变量中增加一个变量到当前的SESSION中,参数 name就是想要加入的变量名,成功则返回逻辑值true。可以用$_SESSION[name]或$HTTP_SESSION_VARS[name]的形式来取值或赋值。 3、 session_is_registered 函数功能:检查变量是否被登记为会话变量。 函数原型:boobean session_is_registered(string name); 返回值:布尔值 功能说明:这个函数可检查当前的session之中是否已有指定的变量注册,参数name就是要检查的变量名。成功则返回逻辑值true。 4、 session_unregister 函数功能:删除已注册的变量。 函数原型:boolean session_session_unregister(string name); 返回值:布尔值 功能说明:这个函数在当前的session之中删除全局变量中的变量。参数name就是欲删除的变量名,成功则返回true. 5、 Session_destroy 函数功能:结束当前的会话,并清空会话中的所有资源。 函数原型:boolean session destroy(void); 返回值:布尔值。 功能说明:这个函数结束当前的session,此函数没有参数,且返回值均为true 上面介绍函数下文将会用到,但还有一些有关session的函数也介绍一下: 6、 session_encode 函数功能:sesssion信息编码 函数原型:string session_encode(void); 返回值:字符串 功能说明:返回的字符串中包含全局变量中各变量的名称与值,形式如:a|s:12:"it is a test";c|s:4:"lala"; a是变量名 s:12代表变量a的值"it is a test的长度是12 变量间用分号”;”分隔。 7、 session_decode 函数功能:sesssion信息解码 函数原型:boolean session_decode (string data) 返回值:布尔值 功能说明:这个函数可将session信息解码,成功则返回逻辑值true 8、 session_name 函数功能:存取当前会话名称 函数原型:boolean session_name(string [name]); 返回值:字符串 功能说明:这个函数可取得或重新设置当前session的名称。若无参数name则表示获取当前session名称,加上参数则表示将session名称设为参数name 9、 session_id 函数功能:存取当前会话标识号 函数原型:boolean session_id(string [id]); 返回值:字符串 功能说明:这个函数可取得或重新设置当前存放session的标识号。若无参数id则表示只获取当前session的标识号,加上参数则表示将session的标识号设成新指定的id 10、 session_unset 函数功能:删除所有已注册的变量。 函数原型:void session_unset (void) 返回值:布尔值 功能说明:这个函数和Session_destroy不同,它不结束会话。就如同用函数session_unregister逐一注销掉所有的会话变量。 编程思路 在社区、论坛中,我们常能看到当前在线的会员,使访问者有宾至如归之感。但这种程序是怎么做出来的呢, 流程如下: 建表user,保存注册用户信息。 字段 类型 备注 userid Int(10) 用户序列号 auto_increment 关键字 username Varchar(50) 用户匿称 userpwd Varchar(50) 密码 email Varchar(50) 电子信箱 oicq Varchar(50) OICQ号 signature mediumtext 签名 imgurl Varchar(50) 头像 joindate Varchar(50) 加入时间 建类文件user.php 定义函数 exist($username)确认新注册用户是不是已经存在 nsert($username,$userpwd,$email,$oicq,$imgurl,$signature)插入注册用户 update($userid,$username,$userpwd,$email,$oicq,$imgurl,$signature) 更新用户 数据 get_from_condition($con) 返回满足查询条件的记录集 建表session。当用户登录时即向此表插入新记录,离开或超时后删除记录,保证 表中保存的是当前在线的用户。 字段 类型 备注 sessionid Int(10) 序列号 auto_increment 关键字 userid Int(10) 用户序列号取自user表 ipaddress Varchar(50) Ip地址 lastactivity Int(10) 最后活动时间,用它来判断用户是否还在线 建类文件session.php 定义函数 insert($userid,$ipaddress,$lastactivity) 把登录成功的用户插入到表中 update($userid,$ipaddress,$lastactivity)更新在线用户最后活动时间 del($con)删除满足条件的用户,用它来清除离线用户 get_from_condition($con) 返回满足查询条件的记录集 公用文件global.php include "class/config.inc.php"; //把配置文件包含进来 $db = new db; $db-> db_connect( ); //连接数据库 $user = new user; //初始化 $session = new session; //启动会话 session_start(); //删除session表中已经过期的用户(即非在线网友)因为此文件总是被调用从而保证显示的都是当前在线的用户 $curtime=time(); $con="lastactivity<$curtime"; $session->del($con); //正在线的网友需不断更新session表中的lastactivity时间,并重新设置用户的COOKIES if ($HTTP_SESSION_VARS["online"]=="on"){ //此处也可用$_SESSION[“online”] $userid=$HTTP_SESSION_VARS["userid"]; //取当前在线用户的userid $ipaddress=substr($REMOTE_ADDR,0,50); $lastactivity=time()+3600; //更新最后活动时间,如时一个小时之内未调动页面就认 为用户已离线,从而会被删除。 $session->update($userid,$ipaddress,$lastactivity); }else{ //如果未登录那直接转入登录页面 $firstpage="logon.php"; header ("Location: $firstpage"); exit; } 登录文件logon.php if ($hiddenField=="0"){ //测检表单有未被提交 $con="username='$username' and userpwd='$userpwd'"; $result=$user->get_from_condition($con); if ($user->counter==1){ if (!session_is_registered("online")){// 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 是否被登记过 session_register("online"); //登记一个新的变量为会话变量 } if (!session_is_registered("ccauser")){ session_register("ccauser"); } if (!session_is_registered("userid")){ session_register("userid"); } $ccauser=$username; //给会话变量赋值 $online="on"; //这个变量在global.php用到以更新最后活动时间lastactivity $userid=$user->userid; $ipaddress=substr($REMOTE_ADDR,0,50); $lastactivity=time()+3600; $con=" userid=$userid"; $session->get_from_condition($con); //判断会话是否存在,有可能你在不同的机器上登两次。 if ($session->counter==1){ $session->update($userid,$ipaddress,$lastactivity); //如存在,更新 }else{ $session->insert($userid,$ipaddress,$lastactivity); //如不存在,插入 } //在客户机设置COOKIES SetCookie("ccauser",$username,time()+3600); Header("Location:test.php");//然后导向测试页 } } ?> if($HTTP_SESSION_VARS["online"]=="") { //判断是否已登录 ?> //下面是登录的表单 名称: 密码: }else{ echo "网友:".$HTTP_COOKIE_VARS["ccauser"]."你已经登录了"; //如果已登录则显示提示 $str=" [url=exit.php]退出社区[/url]"; echo $str; } ?> 测试文件test.php include "global.php"; //把global.php文件包含进来 $strWelcome="欢迎[color=red]".$_SESSION['ccauser']."[/color] "; echo $strWelcome; //显示欢迎信息 $str=” 当前在线用户: =================== ”; $con=" 1=1"; //提出session表中所有记录即是当前在线用户,未把游客算在内 $result=$session->get_from_condition($con); while($row=mysql_fetch_array($result)){ $con1="userid=$row[userid]"; $user->get_from_condition($con1); $str.=$user->username." "; } echo $str; ?> [url=exit.php]退出社区[/url] 退出文件exit.php include "global.php"; //把global.php文件包含进来 if ($_SESSION["online"]=="on"){ $con="userid=$userid"; $session->del($con); //在session表中删除用户信息。 session_destroy(); //结束当前的会话,并清空会话中的所有资源 echo "已经退出社区......"; } ?> 本文来自CSDN博客,转载请标明出处:
本文档为【php里session的用法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_668482
暂无简介~
格式:doc
大小:25KB
软件:Word
页数:0
分类:生活休闲
上传时间:2018-04-15
浏览量:13