<p>一、在session_start() 前设置session_name(); 例子: string session_name([string $name]) 说明: PHP会话控制之如何正确设置session_name 定义: string session_name([string $name]) 说明: 在php.ini中配置为:session.name = PHPSESSID 在请求开始的时候,会话名称会被重置并存储到session.name配置项。 所以要想在不改变php.ini配置文件的情况下,更改session_name 必须要在 session_start()或 session_register()之前设置session_name。 代码演示: [ 先启动会话,再设置session_name] <?php /** * 深入理解PHP会话控制 * User: gutops */ //启动新会话 session_start(); //设置session_name session_name('PHPSESSID_NEW'); echo session_name(); //输出为PHPSESSID_NEW 这样sesssion_name并未改变,查看浏览器cookies name为PHPSESSID(php.ini中默认设置的session.name) [ 先设置session_name 再启动会话(正确的修改方式)] <?php /** * 深入理解PHP会话控制 * User: gutops */ session_name('PHPSESSID_NEW'); session_start(); echo session_name(); //输出为PHPSESSID_NEW 查看浏览器cookies,可以看到name变为PHPSESSID_NEW 二、如何应用呢 方法1、可通过token ,将session_id 存入token,每次请求带回 1.前端传账号密码给后端 2.后端将账号密码作处理加密生成token,并返回给前端 3.前端将token存入缓存,在每次请求时,在header或url中将token传给后端 4.将前端传来的token与数据库账号密码生成的token作比对,相等则成功。 方法2: 可在session_start();前, 通过$_COOKIE['你的session_name名称'] 来获取session_id ************** 接着搞: 拿到session_id后,通过session_id(你的sessionid); 告诉session你要使用sessionname名字为你刚设置的session了。 注意设置session_id(); 必须在session_start()前,这和设置session_name()是一样的, 然后你var_dump($_SESSION); 就能看到你设定的session_name的所有session了。