PHP Session 变量的使用方法详解与实例代码


Posted in PHP onSeptember 11, 2013

当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。
通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。

把手册抄一下,然后每个都试试然后写出来,方便自己查阅滴,谁让咱刚学呢。Session大概有12个函数分别是:

session_start: 初始 session。
session_destroy: 结束 session。
session_unset: 释放session内存。
session_name: 存取目前 session 名称。
session_module_name: 存取目前 session 模块。
session_save_path: 存取目前 session 路径。
session_id: 存取目前 session 代号。
session_register: 注册新的变量。
session_unregister: 删除已注册变量。
session_is_registered: 检查变量是否注册。
session_decode: Session 资料解码。
session_encode: Session 资料编码。

还有个全局变量就是:$_SESSION

在您把用户信息存储到 PHP session 中之前,首先必须启动会话。
注释:session_start() 函数必须位于 标签之前:

<?php session_start(); ?><html>
<body>
</body>
</html>
 

存储 Session 变量

<?php
session_start();
// store session data
$_SESSION['views']=1;
?> 
<html>
<body><?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>
 [html] 

终结 Session
unset() 函数用于释放指定的 session 变量:
[code]
<?php
unset($_SESSION['views']);
?>
 

您也可以通过 session_destroy() 函数彻底终结 session:

<?php
session_destroy();
?>
 

实例:

<?php 
session_start(); 
switch ( $_GET['action'] ){ 
case "loginif"; 
//登陆验证,假定session储存的秘密应该等于123才为正确 
if ($_SESSION['pass']=="123"){echo "密码正确 您可以执行注销";}else{echo "密码错误,您可以重新登陆";} 
break; 
case "logout"; 
//注销登陆 
session_unset(); 
session_destroy(); 
echo "注销成功!可以判断一下密码是否正确来看看是不是成功注销"; 
break; 
case "login"; 
//写入session以供验证, 
$pass="123";//密码 
$_SESSION['pass']=$pass; 
echo "写入登陆密码了 去判断密码成功与否吧。"; 
break; 
} 
?> 
<p>假定本页名为temp.php </p> 
<p><a href="temp.php?action=login">用户进行登陆post,程序处理写入session</a></p> 
<p><a href="temp.php?action=loginif">判断用户密码是否正确</a></p> 
<p><a href="temp.php?action=logout">登陆成功的用户注销登陆</a></p>
 

我总结了一下php中session的用法。

(一)开始session

在每一次使用session之前,都要加上这一句:“session_start();”。顾名思义,这个函数的作用就是开始使用session。
(二)注册session

首先要建立一个global(注意,一定要定义为global,不然在其它页面用不了)数组,如$login,其中$login['name']="Victor",$login['pwd']="111111",然后调用函数“session_register(login);”,session就成功注册了。
(三)使用session里面的变量

和注册session类似,都要先建立一个global数组,然后就和使用一般数组一样了。
(四)判断session是否注册

很简单,用“if (session_is_registered(login))”判断就可以了。
(五)卸载session

也很简单,“session_unregister(login);”就可以了。

注意:在进行(二)(三)(四)(五)之前一定要先进行(一)。

下面给出一个例子:

index.htm

<html> 
<head> 
<title>测试</title> 
</head> 
<body> 
<FORM METHOD=POST ACTION="login.php"> 
用户名:<INPUT TYPE="text" NAME="name"><br/> 
密码:<INPUT TYPE="password" name="pwd"><br/> 
<INPUT TYPE="submit" value="提交"> 
</FORM> 
</body> 
</html>
 

login.php

<?php 
global $login; 
if ($_POST['name']!="Victor" || $_POST['pwd']!="111111") 
{ 
        echo "登陆失败"; 
        echo "请<a href=index.htm>返回</a>"; 
        exit; 
} 
$login = array('name'=>$_POST['name'], 
                           'pwd'=>$_POST['pwd']); 
session_start(); 
session_register(login); 
echo "<a href=info.php>查看信息</a><br/>"; 
echo "<a href=logout.php>退出登陆</a><br/>"; 
?>
 

info.php

<?php 
session_start(); 
if (session_is_registered(login)) 
{ 
        global $login; 
        echo "hello,".$login['name']."<br/>"; 
        echo "<a href=logout.php>退出登陆</a><br/>"; 
} 
else 
{ 
        echo "非法操作<br/>"; 
        exit; 
} 
?>

logout.php

<?php 
session_start(); 
session_unregister(login); 
header("location:index.htm"); 
?>
 
PHP 相关文章推荐
php strcmp使用说明
Apr 22 PHP
phpmail类发送邮件函数代码
Feb 20 PHP
php除数取整示例
Apr 24 PHP
PHP使用GIFEncoder类处理gif图片实例
Jul 01 PHP
php实现的替换敏感字符串类实例
Sep 22 PHP
php实现的树形结构数据存取类实例
Nov 29 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
支持中文、字母、数字的PHP验证码
May 04 PHP
PHP实现抓取迅雷VIP账号的方法
Jul 30 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
Jul 20 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 #PHP
php文件夹与文件目录操作函数介绍
Sep 09 #PHP
php读取本地文件常用函数(fopen与file_get_contents)
Sep 09 #PHP
PHP函数之日期时间函数date()使用详解
Sep 09 #PHP
PHP json_encode中文乱码问题的解决办法
Sep 09 #PHP
分享PHP header函数使用教程
Sep 05 #PHP
php增删改查示例自己写的demo
Sep 04 #PHP
You might like
PHP 进程锁定问题分析研究
2009/11/24 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
php网站被挂木马后的修复方法总结
2014/11/06 PHP
php格式化金额函数分享
2015/02/02 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
网页打开自动最大化的js代码
2012/08/22 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
js限制文本框的输入内容代码分享(3类)
2015/08/20 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
jQuery实现弹出层效果
2019/12/10 jQuery
python中Apriori算法实现讲解
2017/12/10 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
意大利单身交友网站:Meetic
2020/07/12 全球购物
澳大利亚在线床零售商:Bedworks
2020/09/01 全球购物
教育课题研究自我鉴定范文
2013/12/28 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
妇女工作先进事迹
2014/08/17 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
弄虚作假心得体会
2014/09/10 职场文书
终止劳动合同通知书
2015/04/16 职场文书
2016年学校“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书