zoukankan      html  css  js  c++  java
  • PHP学习2 — PHP Cookie 与 Session

    PHP Cookies

    cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

    创建cookie:setcookie(name, value, expire, path, domain);

           setcookie() 函数必须位于 <html> 标签之前。

           在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码

    取回cookie: $_COOKIE 变量用于取回 cookie 的值。

    1 <?php
    2 // Print a cookie
    3 echo $_COOKIE["user"];
    4 
    5 // A way to view all cookies
    6 print_r($_COOKIE);
    7 ?>

    判断是否设置cookies:isset() 函数

    1 <?php
    2 if (isset($_COOKIE["user"]))
    3   echo "Welcome " . $_COOKIE["user"] . "!<br />";
    4 else
    5   echo "Welcome guest!<br />";
    6 ?>

    删除cookie:使过期日期变更为过去的时间点。

    1 <?php 
    2 // set the expiration date to one hour ago
    3 setcookie("user", "", time()-3600);
    4 ?>

    PHP Sessions

    PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。

    工作机制:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。

    开始 PHP Session: session_start() 函数

      session_start() 函数必须位于 <html> 标签之前

    存储和取回 session 变量:使用 PHP $_SESSION 变量

    1 <?php
    2 session_start();
    3 // store session data
    4 $_SESSION['views']=1;
    5 ?>

    检测Session变量:isset();

    删除session:unset() 函数用于释放指定的 session 变量,session_destroy() 函数彻底终结 session.

    1 <?php
    2 unset($_SESSION['views']);  //释放session变量view
    3 session_destroy();  //彻底终结session
    4 ?>

    php cookie与 session区别

    1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

    2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。

    3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE。

    4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

    5、将登陆信息等重要信息存放为SESSION,其他信息如果需要保留,可以放在COOKIE中(如用户名)把一些敏感的东西存到session中,不太敏感的东西可以存在session或者Cookie中,但是session有的时候在服务器中容易丢失,所以我们可以结合cookie一起使用,就是说当session的丢失的时候,如果cookie还在我们设定的有效期内,就可以再一次从Cookie中取出值放进session里,所以我们最好同时用session和cookie保存用户名等信息或者在配置文件里。

    (*整理自W3School)

  • 相关阅读:
    poj 3096 Surprising Strings (set)
    hdu 4038 stone
    STL set 使用总结
    poj 3185 The Water Bowls (bfs 加未压缩)
    QPixmap显示图片
    addStretch的作用 .
    Qt SizeHint()
    StyleSheet
    linux编程守护进程编写
    Qt样式表的使用
  • 原文地址:https://www.cnblogs.com/JasonLiuys/p/6444041.html
Copyright © 2011-2022 走看看