zoukankan      html  css  js  c++  java
  • PHP--关于cookie和session

    1、PHP是一种服务端语言这意味着用PHP编写的代码将在为Web浏览器提供Web页面的主机上运行。
    2、客户端和服务端之间进行的处理工作,PHP模块(添加进服务器的一个应用程序,用来增加它的功能)用来向浏览器发回HTML。所有的服务端技术都是在服务器上使用一个第三方模块,用来处理发送回客户端的数据(本地页面不需要服务器处理,但动态生成的页面需要通过服务器访问,因为动态页面要进过服务器处理)
    3、使用PHP和直接使用HTML之间重要的不同之处在于,PHP在服务器处理完所有的事情之后向浏览器发送适当的信息。
     

    关于cookie和session
    1、cookie是服务器在用户计算机上保存用户信息的一种方式,一边服务器能够在访问过程中或者多次访问中记住用户。cookie就像一个名称标签:用户计算机告知服务器用户名称,并且给予一个名称标签。然后服务器能够通过名称标签获知用户是谁。
    2、cookie:存的东西非常少,有安全隐患。======session:安全,比cookie存储量大。
    3、在客户端/服务器之间来回传递cookie
    4、在PHP中开始使用cooki时,需要了解当问题发生时如何对脚本进行调试。需要考虑三个方面:
    (1)使用PHP发送cookie;
    (2)在Web浏览器中接受cookie;
    (3)在PHP脚本中访问cookie。
    5、使用函数setcookie()发送cookie;
     
    setcookie(name, value);
    setcookie('CookieName', 'This is the cookie value.');
     
    这行代码向浏览器发送了一个名为CookieName的cookie,其值为This is thecookie value。
    可以向浏览器用setcookie()发送更多的cookie。
    注:当创建cookie时,可以使用一个变量作为cookie的名称或者值属性。
     
    setcookie($cookie_name, $cookie_value);
    6、cookie最重要的问题是他们在想web浏览器发送任何信息之前被创建。所有这些脚本位于处理cookie发送的PHP代码之前。同时请确认PHP其实标签之前不要有空格或空行。
    7、检验表单是否被提交:
     
    if (isset($_POST['font_size'], $_POST['font_color'])){}:
    8、创建cookie:
     
    setcookie('font_size', $_POST['font_size']);
    setcookie('font_color', $_POST['font_color']);
     
    这两行代码创建了两个单独的cookie:一个名为font_size,另一个名为font_color。他们的值取决于HTML表单中所选的值,这些值被存储在变量
    $_POST['font_size']
    $_POST['font_ color']中。
    9、没有文本。HTML或者空白能够在调用setcookie()之前发送至Web浏览器。
    10、创建一个PHP代码段以报告cookie已经被发送:
     
    <?php
    if (isset($msg)) {
    print $msg;
    }
    ?>
     
    如果cookie已经被发送,这些代码将会打印出一条消息。用户第一次访问页面时,cookie
    不会被发送,因此不会设置$msg,这个条件的结果为FALSE,并且print调用不会运行。一旦提
    交表单,就会设置$msg,这个条件的结果将为TRUE
    11读取cookie
     
    setcookie('user', 'trout');
    //可以使用变量
    $_COOKIE['user']。
     
    注:cookie在未被发送前不能立即被脚本访问。
    12、向cookie添加参数
     
    setcookie(name, value, expiration, path, domain, secure, httponly);
     
    setcookie(name, value, time()+3600);
    //将cookie的国旗时间设定为当前事件之后的一小时
    pathdomain参数用来限制在Web站点(路径)中的特定文件夹或者特定域中的cookie
    setcookie(name, value, time()+3600, '/subfolder/');
    cookie已经被指定给一个域,因此域参数可以用来限制一个子域的cookie,如forum.
    example.com。
    setcookie('cart', '82ABC3012', time()+3600, ', 'shop.example.com', 1);
    13、删除cookie
    函数setcookie()接受7个参数,但是只有name这个参数是必须的。如果传送一个有名称而无值的cookie,它起的作用同删除一个已经存在的同名cookie一样。
     
    setcookie('username', 'Larry');
    //删除这个cookie
    setcookie('username', '');
    //或者是
    setcookie('username', FALSE);
     
    或者
     
    $.removeCookie('age');
     
     
    14、session
    与cookie的区别:cookie将数据保存在客户端(在Web浏览器中),而session则将数据保存在服务器端。所以,session拥有比cookie更多的优势。
    session的优势:(1)session通常情况下更加安全,这是因为数据不会再客户端和服务器端来回重复传输。
    (2)session能够存储比cookie更多的信息。
    (3)session甚至可以在用户不接受他们浏览器中的cookie时仍然工作。
    cookie在以下方面比session有优势:
    (1)更加易于创建和检索;
    (2)对服务器造成的处理压力更少;
    (3)通常情况下能够持续更长的时间。
    15、创建session
     
    session_start();
     
    在使用session的页面中,必须在脚本的起始行调用函数session_start();
    一旦启用session,可以通过向数组$_SESSION赋值的方式记录数据
     
    $_SESSION['first_name'] = 'Sam';
    $_SESSION['age'] = 4;
     
    这个数组与PHP中使用的其他数组不用,它必须是关联数组。
     
    header ('Location: welcome.php');
    可以通过调用函数session_start()以在session中保存值。虽然通常必须在脚本中首先调
    用此函数(因为它将试图发送一个cookie),但是在这里并不是必须的,这是因为该脚本的header
    文件开启了输出缓存
    注:跳转页面应用以下代码:
     
    header('location:./php.php');//举个栗子
     
    16、访问session变量:(同引用其他数组的操作差不多)
     
    //类似
    $_SESSION['loggedin']
     
    可以使用isset($_SESSION['var'])来查看特定的session值是否存在,就像用来检验其他的变量是否被设置那样。
    17、删除session(删除session需要这样的3个步骤:开启session,重新设置数组,然后删除session数据)
    session的数据在两个地方存在,因此需要在两个地方进行删除操作。但是首先必须从函数session_start()开始,通常像下面这样:
     
    session_start();
     
    然后,再次设置数组$_SESSION来删除session的值:
     
    $_SESSION = array();
     
    最后,需要从服务器上删除session数据(保存在临时文件中)。可以通过下面的方式进行操作:
     
    session_destroy();
    注意1:直到函数激活session后才能够对session进行删除。
    注意2:可以使用unset($_SESSION['var'])来删除一个单独的session值。
    18、
  • 相关阅读:
    IE6 兼容问题总结
    WPF 带CheckBox、图标的TreeView
    Fast Report Data Filter
    【转】NHibernate入门教程
    【转】Spring.NET学习笔记——目录
    【转】.Net中通过反射技术的应用----插件程序的开发入门
    【转】ASP.NET常用数据绑定控件优劣总结
    【转】通用分页用户控件(DataGrid,DataList,Repeater都可以用它来分页)
    【转】ASP.NET MVC教程
    【转】设计模式介绍
  • 原文地址:https://www.cnblogs.com/hughman/p/6730930.html
Copyright © 2011-2022 走看看