美文网首页
会话技术

会话技术

作者: 始于原子 | 来源:发表于2018-04-18 11:24 被阅读0次

    cookie

    // 添加cookie
    setcookie(COOKIE名,COOKIE值);
    
    // 修改cookie
    setcookie(COOKIE名,COOKIE值);
    
    // 删除cookie,实际是将cookie设置为空即可
    setcookie(COOKIE名,'');
    
    // 获取cookie
    var_dump($_COOKIE);
    
    // 完整版添加cookie
    setcookie(COOKIE名,COOKIE值,过期时间,有效路径,有效域名,是否安全传输,httponly);
    setcookie(COOKIE名,COOKIE值,time()+1800,'/','www.baidu.com',false,true);
    

    COOKIE参数说明

    • 有效期:默认情况一个会话周期为从新增该条COOKIE到浏览器关闭为止
    • 有效路径:默认情况表示当前程序所在目录及其子目录有效
    • 有效域名:默认情况表示当前域名及其子域名有效
    • 是否安全传输:默认情况表示http或https下都有效,如果将值设置为true,则表示只有在https下才有效
    • httponly:如果设置为true,则表示只允许原程序脚本代码进行操作

    COOKIE技术的局限性

    • COOKIE数据保存在浏览器端(用户机器上),不可控因素高,安全性相对比较低
    • 每次请求都会携带所有的COOKIE数据,如果数据量大,将会占用大量的带宽,降低网站加载效率

    session

    // 开启session
    session_start();
    
    // 添加和修改session
    $_SESSION['session名'] = 'session值';
    
    // 删除session
    unset( $_SESSION['session名'] );
    
    // 查看session
    var_dump( $_SESSION );
    

    销毁SESSION数据(区)/将该用户的所有session数据都清除

    session_destroy();
    

    SESSION 参数设置

    • 有效期:默认情况一个会话周期为从新增该条COOKIE到浏览器关闭为止
    • 有效路径:默认情况下是网站的根目录及其子目录下都有效
    • 有效域名:默认情况表示当前域名及其子域名有效
    • 是否安全传输:默认情况表示http或https下都有效,如果将值设置为true,则表示只有在https下才有效
    • httponly:session无效

    修改session参数 可以通过php.ini文件修改

    ; 有效期
    session.cookie_lifetime = 0
    
    ; 有效路径
    session.cookie_path = /
    
    ; 有效域
    session.cookie_domail =
    
    ; httponly属性
    session.cookie_httponly =
    
    ; 是否安全传输
    session.cookie_secure =
    

    程序中设置SESSION属性(推荐)

    // 有效期直接设置一个过期秒数即可
    session_set_cookie_params(有效期,有效路径,有效域,是否安全传输,httponly);
    

    禁用cookie后如何session

    在禁用COOKIE后,想要正常使用SESSION,就必须依赖于php.ini中的两个配置项的配置

    ; 表示SESSION技术的实现是否需要依赖COOKIE 1表示是 0表示否
    session.use_only_cookies = 0
    
    ; 表示是否允许使用表单传值的方式传递PHPSESSID 0表示否 1表示是
    session.use_trans_sid = 1
    

    如果use_only_cookies设置为1,则use_trans_sid必须设置为0,反之亦然。

    // 传递页面
    session_start();
    $_SESSION['name'] = 'zjlsp';
    header('Refresh:3;url=http://wwwbaidu.com/index.php?SESSIONID='.$PHPSESSID);
    
    // 接收页面
    $SESSIONID = $_GET['SESSIONID'];
    session_id($SESSIONID);
    session_start();
    var_dump($_SESSION);
    

    相关文章

      网友评论

          本文标题:会话技术

          本文链接:https://www.haomeiwen.com/subject/yolvkftx.html