搜索
首页后端开发php教程使用Cookie和用户会话

 使用Cookie和用户会话

Cookie

Cookie,存储一些关于用户的较小的信息。它和一个来自服务器或脚本的请求相一致。通过一个用户的浏览器,一个主机可以请求保存20个cookie.每个coopkie包含一个名字,值和过期日期,以及主机和路径信息。一个单个的cookie的大小限制是4kb。在设置了cookie之后,只有发出请求的主机能够读取数据,这就保证了用户隐私得到尊重。另外,用户可以配置自己的浏览器通知他接受或是拒绝所有的cookie的请求。

设置了一个cookie的PHP脚本发送的标头的Set-Cookie项可能如下:

Set-Cookie:vegetable=artichoke;path=/;domain=yourdomain.com

Set-Cookie标头包含:

一个名/值对(vegetable=artichoke),

一个路径(path=/)和一个域(domain=yourdomain.com)。

如果设置了expiration字段,它会提供浏览器在哪个日期“忘记”cookie的值。如果没有设置过期日期,当用户会话过期的时候,也就是当用户关掉浏览器的时候,cookie就过期了。

path字段和domain字段协同工作,因为path是找到domain的一个目录,cookie应该送回给服务器的这个目录下面。如果路径是“/”,这是很常见的值,意味着cookie可以由文档根目录下的任何文件读取。

如果路径是“/products”,这个cookie只能够被web站点的/products目录下的文件读取。

随后,一个PHP脚本将能够访问cookie,cookie在环境变量HTTP_COOKIE中或者作为$_COOKIE超全局变量的一部分,可以用三种方式访问它们:

echo $_SERVER["HTTP_COOKIE"];
echo getenv("HTTP_COOKIE");
echo $_COOKIE["vegetable"];

设置Cookie

<?php /**
 *setcookie()函数输出一个Set-Cookie标头。它应该在任何其他内容发送给浏览器之前调用。
 *参数:cookie名字、cookie值、过期日期、路径、域、一个整数
 *如果cookie仅通过一个安全的连接发送的话,这个整数的值设为1。0表示在一个非安全的环境中发送。
 */
setcookie("vegetable","artichoke",time()+3600,"/","localhost",0);

if (isset($_COOKIE["vegetable"])){
	echo "<p>Hello again,you hava chosen:".$_COOKIE["vegetable"].".";
	
}else {
	echo "<p>Hello you.This may be your first visit.</p>";
}
?> 

安全删除cookie的方法同样调用setcookie()函数,只需使用一个确定已经过期的时间,如:time()-60。

用户会话

会话函数为用户提供了一个唯一的标识符,随后可以用来存储和获取连接到该标识符的信息。当一个访客访问一个支持会话的页面,要么分配一个新的标识符,要么这个用户和之前的访问已经建立的一个标识符重新关联。任何已经和会话相关联的变量,都通过$_SESSION超全局变量变得可供你的代码使用。会话状态通常存储在一个临时文件中,尽管你可以使用一个名为session_set_save_handler()的函数实现数据库存储。

开始一个会话,返回ID,并存储变量,保存为session1.php。

<?php session_start();
echo "<p>Your session ID is ".session_id().".";
$_SESSION["product1"] = "Sonic Screwdriver";
$_SESSION["product2"] = "HAL 2000";
echo "The products have been registered.";
?>

访问存储的会话变量,使用session_save_path()函数查看临时文件保存在系统的什么地方,保存为sesson2.php。

<?php session_start();
echo "Your chosen products are:";
echo "<ul>";
echo "
  • ".$_SESSION["product1"]."
  • "; echo "
  • ".$_SESSION["product2"]."
  • "; echo ""; echo session_save_path(); ?>

    先访问服务器的sesson1.php,结果如下:

    再访问服务器下的session2.php,结果如下:

    在该路径下 找到sess_curdcq4agn11gq4fdj4bq2kj33,用记事本打开,就可以看到已注册的变量是如何保存的。

    当一个值放置在$_SESSION超全局变量中,PHP把变量名和值写入一个文件中,这个信息可以读取并且变量可以稍后恢复。当我们把这个变量添加到超全局变量$_SESSION后,你仍然可以在脚本执行过程中的任何时刻修改其值,但是,这个修改后的值不会反映到全局设置中,直到把这个变量重新分配给超全局变量$_SESSION。 

    • 使用Cookie和用户会话
    • 大小: 130.8 KB
    • 使用Cookie和用户会话
    • 大小: 129.8 KB
    • 使用Cookie和用户会话
    • 大小: 22.1 KB
    • 查看图片附件

    以上就介绍了使用Cookie和用户会话,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

    声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    修复:谷歌浏览器请求太多错误 429 [已解决]修复:谷歌浏览器请求太多错误 429 [已解决]Apr 16, 2023 am 09:22 AM

    近期很多Windows用户反映,当他们尝试访问某个URL时,PC上的GoogleChrome浏览器显示错误429。这是因为每次用户尝试在短时间内通过浏览器。通常,此错误是由网站生成的,以避免通过向服务器发送过多请求而被机器人或黑客入侵病毒。用户对在这个阶段可以做什么感到困惑,并因此感到失望。导致此错误的因素可能很多,我们在下面列出了其中一些因素。缓存内存和其他站点数据未清除从第三方来源安装的扩展系统上的一些有害软件病毒攻击在研究了上面列出的因素之后,我们在这篇文章中收集了一些修复程序,这

    如果 Grammarly 无法在 Windows 10 浏览器上运行的 8 个重大修复如果 Grammarly 无法在 Windows 10 浏览器上运行的 8 个重大修复May 05, 2023 pm 02:16 PM

    如果您在Windows10或11PC上遇到语法问题,本文将帮助您解决此问题。Grammarly是最流行的打字助手之一,用于修复语法、拼写、清晰度等。它已经成为写作专业人士必不可少的一部分。但是,如果它不能正常工作,它可能是一个非常令人沮丧的体验。许多Windows用户报告说此工具在他们的计算机上运行不佳。我们做了深入的分析,找到了这个问题的原因和解决方案。为什么Grammarly无法在我的PC上运行?由于几个常见原因,PC上的Grammarly可能无法正常工作。它包括以下内

    如何修复 Google Chrome 上的 Roblox 403 禁止错误如何修复 Google Chrome 上的 Roblox 403 禁止错误May 19, 2023 pm 01:49 PM

    许多Windows用户最近在尝试访问GoogleChrome浏览器中的网站URL时遇到了一个不寻常的错误,称为Roblox403禁止错误。即使在多次重新启动Chrome应用程序后,他们也无能为力。此错误可能有几个潜在原因,我们在下面概述并列出了其中一些。Chrome的浏览历史和其他缓存以及损坏的数据不稳定的互联网连接网站网址不正确从第三方来源安装的扩展在考虑了上述所有方面之后,我们提出了一些修复程序,可以帮助用户解决此问题。如果您遇到同样的问题,请查看本文中的解决方案。修复1

    如何在 Google Chrome 中启用或禁用第三方 Cookie如何在 Google Chrome 中启用或禁用第三方 CookieApr 15, 2023 pm 02:07 PM

    每个网站都通过创建cookie使用户更容易浏览他们的网页和浏览他们的网站。然而,网站创建了一些第三方cookie,使他们能够跟踪访问其他网站的用户,以便更好地了解他们,从而有助于展示广告和其他帖子。一些用户可能认为他们的数据遭到破坏或存在安全风险,而另一些用户可能认为允许这些第三方cookie跟踪他们以在浏览器上获取更多内容是很好的。所以我们在这篇文章中解释了如何在谷歌浏览器中启用或禁用第三方cookies,详细步骤如下。如何在GoogleChrome中启用第三方Cookie如果您认为要

    vue3中cookie如何使用vue3中cookie如何使用May 12, 2023 pm 02:19 PM

    前言cookie使用最多的地方想必是保存用户的账号与密码,可以避免用户每次登录时都要重新输入1.vue中cookie的安装在终端中输入命令npminstallvue-cookies--save,即可安装cookies,安装之后在main.js文件中写下以下代码import{createApp}from&#39;vue&#39;importVueCookiesfrom&#39;vue-cookies&#39;constapp=createApp(App)app.co

    PHP8.0中的Cookie库PHP8.0中的Cookie库May 14, 2023 pm 04:51 PM

    在互联网应用开发中,使用Cookie是常见的一种方式来维护用户会话状态。在PHP语言中,处理Cookie的相关功能在语言的核心库中得到了完善的支持,在最新的PHP8.0版本中,Cookie库得到了进一步的增强。一、PHP中的CookieCookie是一个小文本文件,可以存储在用户的浏览器中,它通常被用来记录用户的个性化设置、登录状态等信息。Cookie是基

    php curl怎么设置cookiephp curl怎么设置cookieSep 26, 2021 am 09:27 AM

    php curl设置cookie的方法:1、创建PHP示例文件;2、通过“curl_setopt”函数设置cURL传输选项;3、在CURL中传递cookie即可。

    php无法设置cookie是什么原因?怎么解决?php无法设置cookie是什么原因?怎么解决?Mar 28, 2023 am 10:44 AM

    PHP 是一种流行的服务器端脚本语言,用于创建动态 Web 网站和应用程序。其中一个 PHP 的主要功能就是设置和处理 Cookie。Cookie 是一种在用户端存储数据的小文件,它可以在用户离开网站后记住用户的操作和信息,并在下一次访问该网站时将该信息发送回服务器。

    See all articles

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    AI Hentai Generator

    AI Hentai Generator

    免费生成ai无尽的。

    热门文章

    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳图形设置
    3 周前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您听不到任何人,如何修复音频
    3 周前By尊渡假赌尊渡假赌尊渡假赌

    热工具

    适用于 Eclipse 的 SAP NetWeaver 服务器适配器

    适用于 Eclipse 的 SAP NetWeaver 服务器适配器

    将Eclipse与SAP NetWeaver应用服务器集成。

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    安全考试浏览器

    安全考试浏览器

    Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

    WebStorm Mac版

    WebStorm Mac版

    好用的JavaScript开发工具

    SecLists

    SecLists

    SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。