Home  >  Article  >  Backend Development  >  php中cookie和session的问题

php中cookie和session的问题

WBOY
WBOYOriginal
2016-06-20 12:28:39879browse

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

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

        //处理session存取的模式                session.save_handler = files                //session档案存放路径        session.save_path = /tmp                //session使用cookie的功能,启动: 1        session.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:    <?php    session_start();    $_SESSION['url'] = '    $url = "<a href='./b.php'>下一个页面</a>";    echo $url;     ?>     b.php     <?php         session_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       <?php    session_start();    $_SESSION['url'] = '    $name = session_name();    $id = session_id();     $url = "<a href='./b.php?".$name."=".$id."'>下一个页面</a>";    echo $url;     ?>       b.php      <?php        session_id($_GET['PHPSESSID']);         session_start();         echo "session中url是:".$_SESSION['url'];     ?>

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn