PHP Cookie和会话管理

Cookie 基本操作

创建Cookie

setcookie ( 名称,cookie值,到日期,路径,域名,secure )

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

读取Cookie

使用 $_COOKIE 变量取回 Cookie 的值

<?php
    //setcookie(名称,cookie值,到日期,路径,域名,secure)
    setcookie("user","Cookie保存的值",time()+3600);
    if (isset($_COOKIE["user"])){   //判断cookie是否存在
        echo "Welcome&emsp;".$_COOKIE["user"]."<br/>";  //输出cookie
    }else{
        echo "Welcome guest!";
    }
?>
<html>  <!-- setcookie()函数必须位于<html>标签之前 -->
<body>
</body>
</html>

删除Cookie

1. 在浏览器中删除   

    在浏览器页面中选择【工具】选项,下拉单中选择【Internet 选项】

    打开【Internet 选项】,在【常规】选项卡中单机【删除】按钮

    返回【Internet 选项】对话框,单机【确定】即可完成删除

2.使用代码删除

    将要删除的 cookie 的 value值 设为空,过期时间小于当前时间

<?php
    setcookie("user","Cookie保存的值",time()+3600);
    echo $_COOKIE["user"];  //输出cookie
    //用代码删除cookie
    setcookie("user","",time()-1);  //将要删除的cookie的value值设为空,过期时间小于当前时间

认识 Session

Cookie 与 Session

使用 Session 可以不需要手动设置 Cookie,可使用 PHP 中的 session_get_cookie_params() 函数来访问Cookie的内容。这个函数将返回一个数组。它的格式为:session_get_cookie_params ( 生存周期,路径,域名,secure )

在 Cookie 或 URL 中储存 Session ID

如果在 php.ini 中的 session.use_trans_sid 设置为启用的状态,就可以自动通过 URL 方式传递 Session ID

会话管理

创建会话

1.PHP 自动创建:在 php.ini 中设定 session.auto_start 为启用。使用时应定义此对象的类,必须在创建会话之前加载。

2.使用 session_start() 函数:此函数首先检查当前是否存在一个会话。不存在则创建一个全新的会话,并且此会话可以访问 $_SESSION 数组。存在则直接使用这个会话,加载已经注册过的会话变量,然后使用。

bool session_start(void);    //session_start()函数必须位于<html>标签之前
<?php
    session_start();
?>
<html>
<body>

</body>
</html>

3.使用 session_register() 函数:使用 session_register() 之前,需要在 php.ini 文件中将 register_globals 设置为 no ,然后需要重启服务器。session_register() 函数通过为会话登录一个变量来隐含地启动会话。

注册会话变量

会话变量被启动后,全部保存在数组 $_SESSION 中,可通过对其赋值来注册会话变量。

<?php
    session_start();    //启动Session
    $_SESSION["name"] = "hello";   //声明一个名为的变量,并赋值"hello"

此会话变量的值会在此会话结束或被注销后失效。

使用会话变量

使用会话变量,首先要判断会话变量是否存在一个会话 ID 。如果不存在,则要创建一个,并且能够通过 $_SESSION 变量进行访问。如果存在,则将这个已经注册的会员变量载入以供用户使用。

在访问 $_SESSION 数组时,先使用 isset() 或 empty() 来确定 $_SESSION 中会话变量是否为空。

<?php
    session_start();
    $_SESSION["views"] = 1; //储存会话变量的值
?>
<html>
<body>
<?php
    echo "浏览量=".$_SESSION["views"]; //读取会话变量的值
?>
</body>
</html>
<!-- 运行结果:
    浏览量=1 
-->

注册和销毁会话变量

销毁会话变量使用 unset () 函数即可,如 unset ( $_SESSION [ 'name' ] )。unset 函数用于释放指定的 session 变量。

<?php
    unset($_SESSION['views']);

如果注销所有会话变量,只需向 $_SESSION 赋值一个空数组就可以了,如 $_SESSION = array () 。注销完成后,使用 session_unset () 销毁会话即可,即清除相应的 ID 。

<?php
    session_destroy();

猜你喜欢

转载自blog.csdn.net/Qjy_985211/article/details/81946815