前言:之前关于客户端cookie和服务端session的关系有点模糊,认为cookie禁用后session指定不能用了,通过验证后才发现自己的错误。

1:在php环境中的php.ini中有关session的设置值:

//处理session存取的模式session.save_handler=files//session档案存放路径session.save_path=/tmp//session使用cookie的功能,启动:1session.use_cookies=1//session名字session.name=PHPSESSID//自动启动;0:关;1:开启session.auto_start=0//session使用cookie的生存期,以秒为单位session.cookie_lifetime=0这些默认值,不需要修改,就可以使用session了。2:但是当我们得浏览器禁用cookie时,则会出现你认为的样子,session不能用。此时我们应该在php.ini中再去研究一下发现session.use_trans_sid=1//这个字段允许SessionID通过URL明文传输session.use_only_cookies=1;//开启仅使用cookies存放会话id此时再去测试发现session又获取到了。但当session.use_only_cookies=0;时,无法获取到session的,在php.ini中这个值默认是03:代码:①当浏览器没有禁用cookie时:a.php:<?phpsession_start();$_SESSION['url']='$url="<ahref='./b.php'>下一个页面</a>";echo$url;?>b.php<?phpsession_start();echo"session中url是:".$_SESSION['url'];?>②当浏览器禁用cookie后,并且设置php.ini中session.use_trans_sid=1//这个字段允许SessionID通过URL明文传输session.use_only_cookies=1;//开启仅使用cookies存放会话id代码:a.php<?phpsession_start();$_SESSION['url']='$name=session_name();$id=session_id();$url="<ahref='./b.php?".$name."=".$id."'>下一个页面</a>";echo$url;?>b.php<?phpsession_id($_GET['PHPSESSID']);session_start();echo"session中url是:".$_SESSION['url'];?>

以上是我对cookie和session的理解,如有不对,可以留言,一起学习,进步。