企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] ## 1 会话控制意义 >[info] 用来在客户端和服务器的**多次通话**中,保存**客户端信息** >[info] http作为无状态协议,无法在多次通话中,保存双方信息。 >[info] 会话控制作为补充机制,实现多次通话的双方信息保存 * * * * * >[info] 使用场景 ~~~ 客户在多个页面跳转,为了保存客户的登录信息,通常将其保存在会话机制中,实现单点登录,多个页面可以获取客户的登录信息 客户在多个页面跳转,也可以用来保存期访问路径信息。 ~~~ ## 2 cookie操作 ### Cookie意义 >[info] Cookie是会话机制的客户端存储控制。 通常将客户信息存储到客户端应用的特定目录下的文件中 可以使用$_COOKIE[key]获取相应cookie值 ### setcookie() ~~~ bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] ) ~~~ > $name:cookie键名 $value:cookie键值 $expire:cookie有效期 $path:cookie存储路径 $domain:cookie作用域名 $secure: https下使用 $httponly:http下使用 > 返回值:是否设置成功 设置cookie ~~~ <?php $value = 'something from somewhere' ; setcookie ( "TestCookie" , $value ); setcookie ( "TestCookie" , $value , time ()+ 3600 ); setcookie ( "TestCookie" , $value , time ()+ 3600 , "/~rasmus/" , "example.com" , 1 ); ?> ~~~ 输出cookie ~~~ <?php echo $_COOKIE [ "TestCookie" ]; echo $HTTP_COOKIE_VARS [ "TestCookie" ]; print_r ( $_COOKIE ); ?> ~~~ 删除cookie ~~~ <?php //设置为空,并且设置有效期为负 setcookie ( "TestCookie" , "" , time () - 3600 ); setcookie ( "TestCookie" , "" , time () - 3600 , "/~rasmus/" , "example.com" , 1 ); ?> ~~~ 设置cookie数组 ~~~ <?php setcookie ( "cookie[three]" , "cookiethree" ); setcookie ( "cookie[two]" , "cookietwo" ); setcookie ( "cookie[one]" , "cookieone" ); if (isset( $_COOKIE [ 'cookie' ])) { foreach ( $_COOKIE [ 'cookie' ] as $name => $value ) { $name = htmlspecialchars ( $name ); $value = htmlspecialchars ( $value ); echo " $name : $value <br />\n" ; } } ?> ~~~ ### setrawcookie() ~~~ bool setrawcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] ) ~~~ ## 3 session操作 ### Session意义 >[info] Session控制会话信息在服务器段的存储机制 > 可以使用文件存储或者使用数据库存储 ~~~ session_set_cookie_params() session_get_cookie_params() session_save_path() session_set_save_handler() session_statr() session_destroy() session_unset() session_reset() session_write_close() session_status() session_regenerate_id() session_id() session_name() session_cache_expire() session_cache_limiter() ~~~