PHP session用法其实很简单它可以把用户提交的数据以全局变量形式保存在一个session中并且会生成一个唯一的session_id,这样就是为了多了不会产生混乱了,并且session中同一浏览器同一站点只能有一个session_id,下面我们一起来看看关于session使用方法。
如何使用session,凡是与session有关的,之前必须调用函数session_start();
为session赋值很简单,如:

复制代码
代码如下:
<?php
Session_start();
$Name =
"这是一个Session例子";
Session_Register("Name");//注意,不要写成:Session_Register("$Name");
Echo
$_SESSION["Name"];
//之后$_SESSION["Name"]为"这是一个Session例子"
?>

在php4.2之后,可以为session直接赋值:

复制代码
代码如下:
<?PHP
Session_Start();
$_SESSION["name"]="value";
?>

取消session可以这样:

复制代码
代码如下:
<?php
session_start();
session_unset();
session_destroy();
?>

读取 session

PHP 内置的 $_SESSION 变量可以很方便的访问设置的 session 变量。

复制代码
代码如下:
<?php
session_start();
echo
"登记的用户名为:".$_SESSION["username"];    //输出
登记的用户名为:nostop
?>

检查变量是否被登记为会话变量
session_is_registered
语法:boobean session_is_registered(string
name);
这个函数可检查当前的session之中是否已有指定的变量注册,参数name就是要检查的变量名。成功则返回逻辑值true。

复制代码
代码如下:
<?php
    session_start();
   
if(!session_is_registered("gender")){ //判断当前会话变量是否注册
       
session_register("gender");    //注册变量
    }
    $gender="女";
    echo
$_SESSION['gender'];  //女
?>

存取当前会话名称  session_name
语法:boolean session_name(string
[name]);
这个函数可取得或重新设置当前session的名称。若无参数name则表示获取当前session名称,加上参数则表示将session名称设为参数name。

复制代码
代码如下:
<?php
$sessionName =
session_name();   //取得当前 Session 名,默认为 PHPSESSID
$sessionID =
$_GET[$sessionName];   //取得 Session ID
session_id($sessionID);      //使用
session_id() 设置获得的 Session ID
?>

存取当前会话标识号session_id
语法:boolean session_id(string
[id]);
这个函数可取得或重新设置当前存放session的标识号。若无参数id则表示只获取当前session的标识号,加上参数则表示将session的标识号设成新指定的id。
设置
Session 的生存期

复制代码
代码如下:
<?php
    session_start
    //
保存一天
    $lifeTime = 24 * 3600;
    setcookie(session_name(),
session_id(), time() + $lifeTime,
"/");
?>

session_set_cookie_params:设置 Session 的生存期的,该函数必须在
session_start() 函数调用之前调用。
如果客户端使用 IE 6.0 , session_set_cookie_params(); 函数设置
Cookie 会有些问题,所以我们还是手动调用 setcookie 函数来创建 cookie。

复制代码
代码如下:
<?php
// 保存一天
  $lifeTime = 24 *
3600;
  session_set_cookie_params($lifeTime);
  session_start();
  $_session["admin"]
= true;
?>

设置 Session 文件的保存路径
session_save_path() :必须在 session_start()
函数调用之前调用。

复制代码
代码如下:
<?php
  // 设置一个存放目录
  $savePath =
"./session_save_dir/";
  // 保存一天
  $lifeTime = 24 *
3600;
  session_save_path($savePath);
  session_set_cookie_params($lifeTime);
  session_start();
  $_session["admin"]
= true;
?>

<?php
session_start();   
//启动Session
$username='nostop';
session_register('username');   
//注册一个名为username变量
echo '登记的用户:'.$_SESSION['username'];    //登记的用户:nostop  
读取Session变量

$_SESSION['age']=23;    //声明一个名为age的变量,并赋值
echo '年龄:'.$_SESSION['age'];
//年龄:23

session_unregister('username'); //注销Session变量
echo $_SESSION['username']; 
//空
echo $_SESSION['age'];//23

unset($_SESSION['age']); //注销Session变量
echo
'登记的用户:'.$_SESSION['username']; //空
echo '年龄:'.$_SESSION['age'];
//空
?>

注意:

1:在调用Session_Start()之前不能有任何输出.例如下面是错误的.

1行
2行 <?PHP
3行 Session_Start();//之前在第一行已经有输出
4行 .....
5行
?>

提示1:

凡是出现"........headers already
sent..........",就是Session_Start()之前向浏览器输出信息.
去掉输出就正常,(COOKIE也会出现这种错误,错误原因一样)

提示2:

如果你的Session_Start()放在循环语句里,并且很难确定之前哪里向浏览器输出信息,可以用下面这种方法:
1行 <?PHP
Ob_Start(); ?>
........这里是你的程序......

2:这是什么错误

Warning: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f,
O_RDWR) failed:....
因为你没有指定session文件的存放路径.

解决方法:

(1)在c盘建立文件夹tmp
(2)打开php.ini,找到session.save_path,修改为session.save_path=
"c:/tmp"

(转)教你如何使用php session的更多相关文章

  1. 教你如何使用php session

    原文网址:http://www.jb51.net/article/42500.htm   学会php session可以在很多地方使用,比如做一个后台登录的功能,要让程序记住用户的session,其实 ...

  2. (转)教你如何使用php session

    学会php session可以在很多地方使用,比如做一个后台登录的功能,要让程序记住用户的session,其实很简单,看了下面的文章你就明白了.     PHP session用法其实很简单它可以把用 ...

  3. SpringBoot初始教程之Redis集中式Session管理

    1.介绍 有关Session的管理方式这里就不再进行讨论,目前无非就是三种单机Session(基于单机内存,无法部署多台机器).基于Cookie(安全性差).基于全局的统一Session管理(redi ...

  4. 一口气说出 4 种分布式一致性 Session 实现方式,面试杠杠的~

    前言 公司有一个 Web 管理系统,使用 Tomcat 进行部署.由于是后台管理系统,所有的网页都需要登录授权之后才能进行相应的操作. 起初这个系统的用的人也不多,为了节省资源,这个系统仅仅只是单机部 ...

  5. (转)Spring简介

    http://blog.csdn.net/yerenyuan_pku/article/details/52830571 阿昀以一个初学者的身份学习Spring框架,并按照一个小白的思路详细总结学习过程 ...

  6. 教你用Java安全有效的实现两星期内自动登陆功能-Session

    现在很多网站都有为用户保存登陆信息(即保存Cookie)的功能,当用户下一次进入网站时,可以帮助用户自动登陆,使网站显得更加友好.笔者通过研究ACEGI项目的自动登陆源码,编写了一个安全有效的实现两星 ...

  7. 教你在Java的普通类中轻松获取Session以及request中保存的值

    曾经有多少人因为不知如何在业务类中获取自己在Action或页面上保存在Session中值,当然也包括我,但是本人已经学到一种办法可以解决这个问题,来分享下,希望对你有多多少少的帮助! 如何在Java的 ...

  8. Spring Security教程之session管理(十一)

    1.1     检测session超时 1.2     concurrency-control 1.3     session 固定攻击保护 Spring Security通过http元素下的子元素s ...

  9. Spring Security教程之session管理

    1.1     检测session超时 1.2     concurrency-control 1.3     session 固定攻击保护 Spring Security通过http元素下的子元素s ...

随机推荐

  1. Javascript自动换图片

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. 【转】调整mac电脑鼠标移动速度

    原文网址:https://www.zhihu.com/question/19579075 作者:陆猛链接:https://www.zhihu.com/question/19579075/answer/ ...

  3. Spark SQL JSON数据处理

    背景   这一篇可以说是“Hive JSON数据处理的一点探索”的兄弟篇.   平台为了加速即席查询的分析效率,在我们的Hadoop集群上安装部署了Spark Server,并且与我们的Hive数据仓 ...

  4. Java正则表达式应用总结

    http://lavasoft.blog.51cto.com/ http://lavasoft.blog.51cto.com/62575/179324      Java正则表达式应用总结   一.概 ...

  5. Cogs 309. [USACO 3.2] 香甜的黄油 dijkstra,堆,最短路,floyd

    题目:http://cojs.tk/cogs/problem/problem.php?pid=309 309. [USACO 3.2] 香甜的黄油 ★★   输入文件:butter.in   输出文件 ...

  6. Linux C 编译错误总结

    1. test.c:59:5: warning: incompatible implicit declaration of built-in function ‘memset’ [enabled by ...

  7. 1116 HTML CSS

    1. JPEG和GIF在使用时的注意事项: JPEG可以连续调次(复制品中有中间层次,如照片)图像中获得最好效果:JPEG可以用1600万色显示图像,是有损格式,不支持透明. GIF适用于几种纯色组成 ...

  8. 理解runtime system

    最近需要编译不同平台的库,因此比以前只开发C++程序关注底层更多点.先来看看术语runtime system的解释. 主要参考资料: http://en.wikipedia.org/wiki/Runt ...

  9. Spring学习总结

    spring是当前流行的一个框架.在学习spring之前当然的先准备一些jar包.可以在官网找找,(也可以留言,网盘分享): 基于IDEA环境学习. 第一天完成的任务: 1.使用spring框架输出一 ...

  10. PHP技术开发微信公众平台

    这篇文章主要介绍了微信公众平台的两种模式(编辑模式和开发模式)顾名思义编辑模式就是写普通的功能,开发模式具有更多的功能,下面主要是针对开发模式做介绍,需要的朋友可以参考下 下面通过图文并茂的方式介绍微 ...