美文网首页
会话控制

会话控制

作者: 成都阿童木 | 来源:发表于2019-01-18 11:49 被阅读0次

1.setcookie

2.header ( string $string [, bool $replace = true [, int $http_response_code ]] ) 通常只用到第一个参数string

header("Set-Cookie:name=value;[expires=date;][path=path;][security;][httponly;]");

比如header("Set-Cookie:cookie=cookietest;expires=".(time()+10).";path='/';security;");

注意字符串的拼接。比如"abcd=".function()."efgh"

3.数组定义现在常用

$test=[

        "1"=>"asda",

        "2"=>"asdsadas",

        "3"=>"qwewqe"

];

4.session  默认session_id及对应数据通过cookie存储!!!

(1)会话:服务器和浏览器保有的共同小秘密的这段时间

准备建立会话的时候,服务器会分析浏览器的请求,看里面是否有session_id,若没有,则创建一个并赋值,然后传给浏览器,一般会被浏览器保存在cookie中。之后浏览器再去访问服务器时,会携带session_id,服务器就可以认识浏览器了。

服务器会为每个session_id创建session文件,存放一些会话数据.每次浏览器访问服务器都会根据session_id认领自己的信息。

2)开启会话 session_start();

(3)读取和设置会话数据  $_SESSION全局变量(是个数组)

<?php

session_start();

if(isset($_SESSION['views'])){    $_SESSION['views']=$_SESSION['views']+1;}

else{    $_SESSION['views']=1;}

echo "浏览量:". $_SESSION['views'];?>  //每刷新一次,浏览量+1 views不是session_name,session_name默认是PHPSESSID,在php.ini中配置

(4)销毁 Session

如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。

unset() 函数用于释放指定的 session 变量:

<?php

session_start();if(isset($_SESSION['views'])){    unset($_SESSION['views']);}?>

您也可以通过调用 session_destroy() 函数彻底销毁 session:

<?php

session_destroy();?>

注释:session_destroy() 将重置 session,您将失去所有已存储的 session 数据。

(5)用setcookie()来设置session的过期时间

setcookie(session_name(),session_id(),time()+3600); //session_id()返回所有session的id,而session_name都相同。name与id相同,过期时间不同,则就是不同的session。如图

(6)session的会话配置选项

php.ini关于Session的相关设置(打开php.ini文件,在“[Session]”部分): 

1、session.use_cookies:默认的值是“1”,代表SessionID使用Cookie来传递,反之就是使用Query_String来传递; 

2、session.name:这个就是SessionID储存的变量名称,可能是Cookie,也可能是Query_String来传递,默认值是“PHPSESSID”; 

3、session.cookie_lifetime:这个代表SessionID在客户端Cookie储存的时间,默认是0,代表浏览器一关闭SessionID就作废……就是因为这个所以Session不能永久使用! 

4、session.gc_maxlifetime:这个是Session数据在服务器端储存的时间,如果超过这个时间,那么Session数据就自动删除! 

(7)当cookie被禁用 怎么使用session?传递session_id(url中的? 作用与$_GET---参数传递) 

什么是$_GET

通过 URL 参数传递给当前脚本的变量的数组。


课程上的例子按下图所示写法,这个超链接写法有难度,注意赋值给href的是一大串字符串,会跳转到dump1.php页面,该页面的URL有用 ?连接的参数,即sessionid与sessionname

在某一php页面写的。然后点击该页面的超链接 跳转到dump1.php. 查看URL.注意?后的参数

要在dump1.php中获取URL的参数,必须用$_GET全局变量。图中session_id()函数用于设置该session_name对应的id。

8.会话销毁

9.自定义会话处理器 ,,可以自定义会话存储函数来将会话数据存储到数据库。shuhttps://www.imooc.com/video/15867

SessionHandlerInterface {

/* 方法 */

abstract public close ( void ) : bool

abstract public destroy ( string $session_id ) : bool

abstract public gc ( int $maxlifetime ) : int

abstract public open ( string $save_path , string $session_name ) : bool

abstract public read ( string $session_id ) : string

abstract public write ( string $session_id , string $session_data ) : bool

}

session_set_save_handler ( callable $open , callable $close , callable $read , callable $write , callable $destroy , callable $gc [, callable $create_sid [, callable $validate_sid [, callable $update_timestamp ]]] ) : bool

相关文章

  • java基础-day41-Session和Cookie

    会话控制 Cookie and Session 1. 会话控制技术概述 1.1 为什么要使用会话控制 1.2 什么...

  • PHP全栈学习笔记9

    php的会话控制,什么是会话控制,http等。什么是会话控制思想,http协议。 cookie 和 session...

  • PHP全栈学习笔记9

    php的会话控制,什么是会话控制,http等。什么是会话控制思想,http协议。 cookie 和 session...

  • 会话控制

    一、回话控制

  • 会话控制

    一、_COOKIE设置cookie:setcookie('name' , 'zhangsan' , time()+...

  • 会话控制

    会话控制 session 一、函数 put Session::put('username','lala');//插...

  • 会话控制

    1、http协议(1.0、1.1)客户端与服务器通信方式建立连接=发送请求=响应请求=关闭连接解析多图和解析a连接...

  • 会话控制

    有 两个Http头部和Cookie有关:Set-Cookie和Cookie。 Set-Cookie由服务器发送,它...

  • 会话控制

    1.setcookie 2.header(string$string[,bool$replace= true[,i...

  • PHP 会话控制

    一 COOKIE的应用 1创建cookiesSetcookie()火狐-工具-页面信息-安全-查看cookie 2...

网友评论

      本文标题:会话控制

      本文链接:https://www.haomeiwen.com/subject/euogdqtx.html