原文网址:http://www.jb51.net/article/42500.htm

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

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

    PHP session用法其实很简单它可以把用户提交的数据以全局变量形式保存在一个session中并且会生成一个唯一的session_id,这样就是为了多了不会产生混乱了,并且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. [ubuntu] Can not run OpenProj on Ubuntu

    Download openproj from http://sourceforge.net/projects/openproj/ Yes, you can only download the rpm ...

  2. zw版【转发·台湾nvp系列Delphi例程】HALCON FillUp2

    zw版[转发·台湾nvp系列Delphi例程]HALCON FillUp2 procedure TForm1.Button1Click(Sender: TObject);var op : HOpera ...

  3. java连接数据库URL

    转: 1.Oracle数据库 Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url ...

  4. 在ASP.NET非MVC环境中(WebForm中)构造MVC的URL参数

    目前项目中有个需求,需要在WebForm中去构造MVC的URL信息,这里写了一个帮助类可以在ASP.NET非MVC环境中(WebForm中)构造MVC的URL信息,主要就是借助当前Http上下文去构造 ...

  5. onTouch和onTouchEvent

    public boolean dispatchTouchEvent(MotionEvent event) { if (mOnTouchListener != null && mOnTo ...

  6. UINavigationController(转)

    UINavigationController是IOS编程中比较常用的一种容器view controller,很多系统的控件(如UIImagePickerViewController)以及很多有名的AP ...

  7. android 学习随笔二十(多媒体编程 )

    1.图片处理 加载大图片 图片大小的计算 图片大小 = 图片的总像素 * 每个像素占用的大小 * 单色图:每个像素占用1/8个字节* 16色图:每个像素占用1/2个字节* 256色图:每个像素占用1个 ...

  8. php用jquery-ajax上传多张图片限制图片大小

    php用jquery-ajax上传多张图片限制图片大小 /** * 上传图片,默认大小限制为3M * @param String $fileInputName * @param number $siz ...

  9. Intel Edison 参考链接2

    Edison的breakout板子的引脚: http://iotdk.intel.com/docs/master/mraa/java/edison.html Edison的引脚 http://www. ...

  10. 【Pro ASP.NET MVC 3 Framework】.学习笔记.5.SportsStore一个真实的程序

    我们要建造的程序不是一个浅显的例子.我们要创建一个坚固的,现实的程序,坚持使它成为最佳实践.与Web Form中拖控件不同.一开始投入MVC程序付出利息,它给我们可维护的,可扩展的,有单元测试卓越支持 ...