session和cookie是不一样的
session存储在服务器,cookie存储在客户端
设置cookie:
function setcookie ($name, $value = null, $expire = null, $path = null, $domain = null, $secure = null, $httponly = null) {}
获取cookie:
$_COOKIE[$sCookieName];
题主的写法只是操作了服务器端的session,并没有向浏览器发送cookie
session.cookie_secure 使得cookie是否可以通过https传输,改向设置为1则仅可以通过https传输cookie
session.cookie_httponly 使得cookie是否可以被客户端js等进行操作,该项设置为1则仅能够通过http请求访问cookie
====================更新===================
测试了题主的写法,session需要cookie来保存会话id,如果配置禁止了http写cookie的权限的话
那么每次交互响应头都会发送set-cookie命令,且会话id每次都会重新生成
而由于当前请求内$_SESSION是超全局变量,其内容在当前上下文是存在的,所以是可以正确获取到的
并且客户端和服务器交互请求头会发送sessionid来唯一识别本次会话,如果客户端不能够存储cookie
则服务器不能够查找到当前交互设置的session,也就是说当前请求设置的session仅存在于当前上下文,
下一个请求到来时,由于请求头没有携带上次会话的sessionid,就无法识别相应的session,上次请求设置的session相当于不存在,由于服务器端session存储在文件中,那么每次交互都会在session.save_path产生新的sess_j9pul3sdggncaas6luc4cild95文件,这样会耗尽服务器资源