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将向Java靠拢
Oct 09 PHP
PHP UTF8编码内的繁简转换类
Jul 20 PHP
php 静态变量与自定义常量的使用方法
Jan 26 PHP
简单实现限定phpmyadmin访问ip的方法
Mar 05 PHP
学习php过程中的一些注意点的总结
Oct 25 PHP
php四种基础算法代码实例
Oct 29 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
PHP程序员的技术成长规划
Mar 25 PHP
java微信开发之上传下载多媒体文件
Jun 24 PHP
Swoole实现异步投递task任务案例详解
Apr 02 PHP
Laravel框架中集成MongoDB和使用详解
Oct 17 PHP
PHP实现倒计时功能
Nov 16 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中几种常见安全设置详解
2010/04/06 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
PHP图像识别技术原理与实现
2016/10/27 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
2016/12/10 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
JavaScript加强之自定义callback示例
2013/09/21 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
使用jquery实现仿百度自动补全特效
2015/07/23 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
postman+json+springmvc测试批量添加实例
2018/03/31 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
fastadmin中调用js的方法
2019/05/14 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
vuex的使用步骤
2021/01/06 Vue.js
python开发中module模块用法实例分析
2015/11/12 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
地球一小时倡议书
2014/04/15 职场文书
七一建党日演讲稿
2014/09/05 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书