php会话控制之PHP中使用session

了解了session的原理后,我们来学习如何在PHP中使用session。

1.开启session
首先我们要开启session,那么第一个要学习的函数就是
bool session_start()了,这个函数没有参数。在php文件的开始使用

   session_start();

就可以启用新会话或者重用现有会话了。

2.添加session数据
开启会话之后,那么在接下来的处理中,我们就可以使用$_SESSION变量来存取信息了。我们要知道的是$_SESSION变量是个数组。当我们要把信息存入session的时候应该这么写:

   $_SESSION['userName'] = 'wang';

3.读取session数据
读取很简单,就像我们使用数组一样,如下:

   $userName = $_SESSION['userName'];

当然也可以 $_SESSION['userName'] 来用。和数组一样的使用。
4.销毁session数据
我们可以使用很多种方式来销毁session数据。
a) unset函数
我们通过使用类似

   unset($_SESSION['XXX']);

来销毁session中的 XXX 变量。PS:请不要!请不要!请不要unset($_SESSION),会导致后续无法使用$_SESSION这个变量!!!
b) 空数组赋值给session变量

   $_SESSION = array();

之前我们说过$_SESSOIN变量是个数组,那么空数组赋值的话也是相当于将当前会话的$_SESSION变量中的值销毁。
c) session_destory() 函数
这个函数会销毁当前会话中的全部数据,并结束当前会话。但是不会重置当前会话所关联的全局变量, 也不会重置会话 cookie。

5.session的扩展:默认session存储在哪里。
在php.ini配置文件中有这么一行 session.save_handler = files, 
files,说明了php默认的是用文件读写的方式来保存session的。那么在哪个目录呢?继续看。session.save_path = "/tmp",
这一行前面有个 ; ,说明是被注释的,不过即便这样,php默认的
session 也是保存在这里的,/tmp目录。上图:

11.PNG

 从图中我们可以看到确实在这个目录下面,我们顺便看看里面的内容

document_2015-08-31_55e44c8eb3e27.PNG

 我的写入session的语句是:

$_SESSION['as'] = 'as';

解读一下,第一个as代表的是$_SESSION['as']中的as,|后面的s表示的是这是一个字符串类型的数据,2表示的是这个字符串所占的字节数,最后双引号引起来的是值as。

继续学习
||
<?php session_start(); // store session data $_SESSION['views']=1; ?> <html> <body> <?php //retrieve session data echo "Pageviews=". $_SESSION['views']; ?> </body> </html>
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

php入门教程之一周学会PHP

  • 推荐课程
  • 评论
  • 问答
  • 笔记
  • 课件下载
y的小公举

y的小公举

自学的困难只有自己知道,如何让学习不再困难让学习提高效率

4年前    添加回复 0

回复

创建的session文件是存放在服务器哪个位置上呢?

[最新 阿神 的回答]PHP配置文件中session.save_path负责session文件的存放位置。如果没有配置则不会生成session文件,如果配置的目录session.save_path = "E:/ttt"不存在,则会报错:Warning: session_start() [function.session-start]: open(E:/ttt\sess_e0b64760c92422d81c1d6202b66884f6, O_RDWR) failed: No such file or directory (2) in E:\APMServ5.2.6\www\htdocs\session\index.php on line 13Warning: Unknown: open(E:/ttt\sess_e0b64760c92422d81c1d6202b66884f6, O_RDWR) failed: No such file or directory (2) in Unknown on line 0Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (E:/ttt) in Unknown on line 0所以,如果需要生成session文件,需要检查配置文件.如果没有配置目录,则请将php.ini中的“;session.save_path = "/tmp"” 改为“session.save_path = "E:/yourdir"”,并切记在E盘根目录下新建,名为yourdir的文件夹。设置完成后需要重启服务,然后设置生效。

时间:5年前

session是将用户的会话数据存储在服务端,那是否关闭了浏览器,session就释放了呢?

[最新 阿神 的回答]php中的session一般是根据过期时间自动释放的如果只是关闭浏览器,服务器不会立即释放session

时间:5年前

课件暂不提供下载,工作人员正在整理中,后期请多关注该课程~