cookie和session都可以暂时保存多个页面中使用的变量,但是它们有本质的差别:cookie存放在客户端浏览器中;
session保存在服务器上; 它们之间的联系是session ID 一般保存在cookie中,或者放在URL上。
当客户端禁用cookie时(点击IE中的“工具”—“Internet选项”,在弹出的对话框里点击“安全”—“自定义级别”项,将“允许每个对话COOKIE”设为禁用),session_id将无法传递,此时session失效。不过php5在linux/unix平台可以自动检查cookie状态,如果客户端设置了禁用,则系统自动把session_id附加到url上传递。windows主机则无此功能

解决方案 »

  1.   

    session可以保存在客户端浏览器,只是默认保存在服务器端
      

  2.   

    session怎么保存在客户端浏览器??session不就两种传输方式么?1.cookie 2.url
      

  3.   

    cookie是一种在远程浏览器端存储数据并以此来跟踪和识别用户的机制。
    session存储于服务器端,根据提供的id来得到用户的文件,取得变量的值,session id可以通过客户端的cookie或者访问的url的附加数据传送给服务器,然后服务器来读取session的目录。也就是说session id是取得存储在服务器上session变量的身份证。一般情况下cookie能解决的session都能解决。session用的比较广泛。cookie用于实现用户登录比较多!
      

  4.   

    不错,短短几句话就描述的比较清晰。至于session id如何传送,无非就是利用http协议,要么url里,要么http头中的cookie项,或者扔http body里,甚至可以自己自定义一个http头,扔进去,只要服务器端能读到就ok,因为在session_start()之前有个session_id()可以让你自定义session id值。 
      

  5.   

    反正我是习惯用的session的,session存在服务器端,没有用cookie那么麻烦
      

  6.   

    http://cwu163.blog.163.com/blog/static/845540720082610594370/  
    刚刚发现的,这个blog里说的还是蛮详细好懂的,你可以去看下
      

  7.   

    Session为服务器存储Cookie为客户端存储。 
    是,对于Session及Cookie来说最大的区别在此,以下就是我所根据代码及相关理解所整理的。 
    代码: 
    A1.php 
    <?php 
    function CookiesTest($newValue){ 
                  if(!isset($_COOKIE["CookiesTest"])){ 
                                setcookie('CookiesTest',$newValue,time() + 3600); 
                                echo "CookieValue:".$_COOKIE["CookieValue"]; 
                  } 

    function SessionTest($newValue){ 
                  if(!session_is_registered('SessionTest')){ 
                                session_register("SessionTest"); 
                  } 

    CookiesTest("HelloCookies!"); 
    SessionTest("HelloSession!"); 
    echo "CookieValue:".print_r($_COOKIE)."<br>"; 
    echo "CookieValue:".$_COOKIE["CookiesTest"]."<br>"; 
    $SessionTest = "dd"; 
    echo $SessionTest; 
    echo $_SESSION["SessionTest"]; 
    ?> A2.php <?php 
    //session_start(); 
    echo $_SESSION["SessionTest"]; 
    echo $CookiesTest; 
    ?> 
    Cookie: 
    (1)用来存储连续访问一个页面时所使用。(即,对地Cookie的值不是真正意义上的全局变更的概念,即,对于A1.php来说通过调整$_COOKIE[“XX”]可以调用相应的Cookie值,但是如果再打开一个A2.php的IE游览器,再取该Cookie值时就取不出来了!因此对于Cookie来说并不是实际意义上的全局概念。) 
    (2)Cookie是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。 Session:(一种特殊的Cookie,当Cookie被禁时Session也会被禁,但是对于Session可以通过重定向的方式重新获得) 
    (1)可以用来存储用户全局的唯一变量。对于Session来说可以通过Session_start()重新定向并获得Session的值并进行操作且并不分浏览是否被重复打开。如上面的A1.php进行了Session的操作,如果再打开一个IE后使用Sessoin_start();后Session相应的变量又会被重新启用,即实现了真正意义的全局及唯一。 
    (2)对于Session来说是存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放。
      

  8.   

    (来自百度知道)
    session在服务器端存储,安全性应该不成问题,但占用了系统资源
    cookie在客户端存储,安全性较差,有被篡改欺骗的可能,可通过blowfish或xxtea等算法加密来弥补