Cookie是Web服务器存储在客户端计算机上的最大大小为4KB的小文件。
设置cookie后,所有随后的页面请求都将返回cookie名称和值。
Cookie只能从发出它的域中读取。 例如,使用域名www.guru99.com设置的cookie不能从域名career.guru99.com中读取。
互联网上的大多数网站都显示来自其他领域的元素,例如广告。 服务这些元素的域也可以设置自己的cookie。 这些被称为第三方Cookie。
用户创建的cookie仅对他们可见。 其他用户看不到它的价值。
大多数网络浏览器都有禁用Cookie和/或第三方Cookie的选项。
如果是这种情况,则PHP会通过在URL中传递cookie令牌来做出响应。
下图显示了Cookie的工作方式。
这里,
1)用户请求一个存储cookie的页面
2)服务器在用户计算机上设置Cookie
3)来自用户的其他页面请求将返回cookie名称和值
现在,让我们看一下用于创建Cookie的基本语法。
<?php
setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]);
?>
这里,
注意:php set cookie函数必须在HTML开头标签之前执行。
现在来看一个使用cookie的示例。
我们将创建一个基本程序,该程序允许我们将用户名存储在cookie中,该cookie会在十秒钟后过期。
下面的代码显示了上述示例“ cookies.php”的实现。
<?php
setcookie("user_name", "Guru99", time()+ 60,'/'); // expires after 60 seconds
echo 'the cookie has been set for 60 seconds';
?>
Output:
the cookie has been set for 60 seconds
使用以下代码创建另一个名为“ cookies_read.php”的文件。
<?php
print_r($_COOKIE); //output the contents of the cookie array variable
?>
Output:
Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )
注意:$ _COOKIE是内置于超级全局变量中的PHP。
它包含所有设置的cookie的名称和值。
该值的数量
$ _COOKIE数组可以包含取决于php.ini中设置的内存大小。
默认值为1GB。
测试我们的应用程序。
假设您已将PHP文件保存在phptus文件夹中。
注意:仅显示一个空数组
步骤3 –切换回第一个标签,然后单击“刷新”按钮
等待一分钟,然后再次单击刷新按钮。 您得到了什么结果?
<?php
setcookie("user_name", "Guru99", time() - 360,'/');
?>
为了创建会话,必须首先调用PHP session_start函数,然后将值存储在$ _SESSION数组变量中。
假设我们想知道页面的加载次数,我们可以使用会话来完成。
下面的代码显示了如何从会话中创建和检索值
<?php
session_start(); //start the PHP_session function
if(isset($_SESSION['page_count']))
{
$_SESSION['page_count'] += 1;
}
else
{
$_SESSION['page_count'] = 1;
}
echo 'You are visitor number ' . $_SESSION['page_count'];
?>
Output:
You are visitor number 1
session_destroy()函数用于销毁整个Php会话变量。
如果您只想销毁一个会话的单个项目,则可以使用unset()函数。
下面的代码说明了如何使用这两种方法。
<?php
session_destroy(); //destroy entire session
?>
<?php
unset($_SESSION['product']); //destroy product session item
?>
Session_destroy删除所有会话数据,包括与该会话关联的cookie。
取消设置只会释放各个会话变量。
其他数据保持不变。