1.cookie和session之间的关系
转自https://www.cnblogs.com/andy-zhou/p/5360107.html
2.浏览器没有禁用cookie时,服务器端会生成session_id存储在浏览器端中的cookie里面。
8.php页面代码如下所示
1 <?php
2 session_start();
3 $_SESSION['va'] = 'abc';
4 $s = session_id();
5 echo "<a href='9.php?s=".$s."'>a</a>";
浏览器访问如下展示。说明存储在cookie里面的PHPSESSID的值和页面上session_id()函数生成的值是一样
3.cookie禁用之后怎么识别用户的session_id
1)使用url携带sessionid的值
2)设置php.ini的session.use_trans_sid = 1或者打开enable-trans-sid选项,让PHP自动跨页传递session id。
3)session_id值存储在登陆后存储在数据库或者中,在其它页面传入session_id值。
第一种方式的代码如下
8.php
<?php session_start(); $_SESSION['va'] = 'abc'; $s = session_id(); echo "<a href='9.php?s=".$s."'>a</a>";
9.php
<?php //session_id()函数必须在session_start()函数前面调用 session_id($_GET['s']); session_start(); echo "客户端禁止了cookie依然能传来session值:".$_SESSION['va'];