• PHP和ASP的session


    ASP的SEssion就是启用的,需要使用,直接赋值就可以了!
    但是:PHP一定要自己先用session_start() 启动,才能赋值。(php.ini设置更改过的除外!)


    在过期时间设置上,ASP 设置比较灵活一些,默认是20分钟,要自定义,直接用session.timeout=时间间隔就可以了!
    但是,PHP中,默认是24分钟,而且这个时间需要改变PHP.INI设置才行,但并不是每个人都能控制
    今天看到一篇关于php的SESSION会话使用入门到文章,看到了一个函数:session_set_cookie_params(); 他必须在session_start() 之前使用!
    例子:

    <?php 
    //  保存一天 
    $lifeTime = 24 * 3600; 
    session_set_cookie_params($lifeTime); 
    session_start(); 
    $_SESSION["admin"] = true; 
    ?>

    但是对浏览器的似乎不是很感冒:IE 6.0下使用 session_set_cookie_params()函数设置 Cookie 会有问题!
    没有关系。我们可以使用SESSION和COOKIE结合的方式在做验证:
    例子:

    <?php 
    session_start(); 
    //  保存一天 
    $lifeTime = 24 * 3600; 
    setcookie(session_name(), session_id(), time() + $lifeTime, "/"); 
    ?>




    在ASP中,session 是直接保存在内存中的,而不是以文件的方式保存的,PHP是以文件的方式,默认保存在系统的临时文件夹中的,这个似乎不安全,因此,PHP提供一个函数让你可以改变它的保存位置:session_save_path(); 这个函数也和前面的session_set_cookie_params()一样,要在session_start()函数之前 (要是在之后,你怎么保存-_-)!

    如果客户端禁止了cookie,ASP方面:我还没见过有人解决过(估计是我孤陋寡闻!)
    PHP倒是提供函数session_id(),让我们通过URL的方式传递。好帅 -_-!
    使用的例子:

    <?php 
    //  取得当前 Session 名,默认为 PHPSESSID 
    $sessionName = session_name(); 
    $sessionID = $_GET[$sessionName]; 
    //  使用 session_id() 设置获得的 Session ID 
    session_id($sessionID); 
    session_set_cookie_params($lifeTime); 
    session_start(); 
    //一下注册SESSION?>
     
  • 相关阅读:
    泛型
    Java反射及注解
    Java之线程与进程
    线程池
    HashMap、ConcurrentHashMap解析
    基于Opentracing+Jaeger全链路灰度调用链(转载)
    SpringBoot 开发案例之参数传递的正确姿势
    以np.concatenate为主题,谈谈numpy数组按维度合并的问题
    为什么阿里巴巴Java开发手册中强制要求整型包装类对象值用 equals 方法比较?
    [C++面试题]之字符串(转)
  • 原文地址:https://www.cnblogs.com/zerogo/p/2209316.html
Copyright © 2020-2023  润新知