让我们来看看保存在浏览器中的内容。如果你用的是IE5,在windows目录下有一个cookies的目录,里面有很多文本文件,文件名都是类似于wudong@15seconds[1].txt这样的,这就是浏览器用来保存值的cookies了。在以前的IE版本中,cookies的内容是可以察看的,但现在内容已经被编码了。在浏览器得到一个Web页面之前,它会先看这个页面的域名,是否在cookie中存在,如果有相比配的,浏览器会先把匹配的cookie传送到服务器,然后才接受处理服务器传送过来的页面。
先举个cookies应用的例子:当我连接到Amazon.com时,浏览器在接受第一个页面之前会把它以前设置的cookies的内容传送给Amazon。然后Amazon.com对传送过来的内容加以检查,看看在数据库中有没有相关资料,在匹配之后,在为我建立一个定制的页面传送到过来。
为cookies赋值
必须在服务器传送任何内容给客户浏览器之前为Cookies赋值。要做到这一点,cookies的设置就必须放在
setcookie("CookieID",$USERID);
?>
setcookie函数一共有六个参数,用逗号来分隔:
cookie的名称,是一个字符串,例如:"CookieID"。其间不允许有冒号,逗号和空格。这个参数是必须的,而其它的所有参数都是可选的。如果只有这一个参数被给出,那么这个cookie将被删除。
cookie的值,通常是一个字符串变量,例如:$USERID。也可以为它赋一个??来略过值的设置。
cookie失效的时间。如果被省略(或者被赋值为零),cookie将在这个对话期(session)结束后失效。这个参数可以是一个绝对的时间,用DD-Mon-YYHH:MM:SS来表示,比如:"24-Nov-9908:26:00"。而更常用的是设置一个相对时间。这是通过time()函数或者mktime函数来实现的。比如time()+3600将使得cookie在一个小时后失效。
一个路径,用来匹配cookie的。当在一个服务器上有多个同名的cookie的设置,为避免混淆,就要用到这个参数了。使用"/"路径的和省略这个参数的效果是一样的。要注意的是Netscape的cookie定义是把域名放在路径的前面的,而PHP则与之相反。
服务器的域名,也是用来匹配cookie的。要注意的是:在服务器的域名前必须放上一个点(.)。例如:".friendshipcenter.com"。因为除非有两个以上的点存在,否者这个参数是不能被接受的。
cookie的安全级,是一个整数。1表示这个cookie只能通过“安全”的网络来传送。0或者省略则表示任何类型的网络都可以。
Cookies和变量
当PHP脚本从客户浏览器提取了一个cookie后,它将自动的把它转换成一个变量。例如:一个名为CookieID的cookie将变成变量$CookieID.
Cookies的内容被报存在HTTP_COOKIE_VARS数组中,你还可以通过这个数组和cookie的名称来存取指定的cookie值:
print$HTTP_COOKIE_VARS[CookieID];
记住每一个用户
回过头在来看看上面的submitform.php3文件,它的作用是把客户的姓名添加到数据库中,现在我想为它添加一些东西。我想为每个用户都分配一个唯一的用户标志,然后把这个标志放在Cookies中,这样每当用户访问我的网站的时候,通过cookie和其中的用户标志,我就能够知道他是谁了。
MySQL能够被设置成为每一个新的纪录自动的分配一个数字,这个数字从1开始,以后每次自动加1。用一行SQL语句,你就可以轻松的为数据表添加这样的一个字段,我把它叫做USERID:
ALTERTABLEdbname
ADDCOLUMN
USERIDINT(11)NOTNULL
PRIMARYKEYAUTO_INCREMENT;
对这个字段我们作了一些特别的设置。首先,通过“INT(11)”定义它的类型为11位的整数;然后用“NOTNULL”关键字让这个字段的值不能为NULL;再用“PRIMARYKEY”把它设置为索引字段,这样搜索起来就会更快;最后,“AUTO_INCREMENT”定义它为自动增一的字段。
当把用户的姓名插入到数据库后,就应该在他们的浏览器上设置cookie了。这时利用的就是刚才我们谈到的USERID字段的值:
mysql_connect(localhost,username,password);
mysql_select_db(dbname);
mysql_query("INSERTINTOtablename(first_name,last_name)
VALUES('$first_name','$last_name')
");
setcookie("CookieID",
mysql_insert_id(),
time()+94608000,
"/");/*三年后cookie才会失效*/
?>
PHP函数mysql_insert_id()返回在最后一次执行了INSERT查询后,由AUTO_INCREMENT定义的字段的值。这样,只要你不清除掉浏览器的Cookies,网站就会永远“记住”你了
读取cookie
我们来写一个像Amazon.com所作的那样的脚本。首先,PHP脚本会先检查客户浏览器是否发送了cookie过来,如果是那样的话,用户的姓名就会被显示出来。如果没找到cookie的话,就显示一个表单,让客户登记他们的姓名,然后把他添加到数据库中,并在客户浏览其中设置好cookie。
首先,先来显示cookie的内容:
print$CookieID;
?>
然后,就可以把名字显示出来了:
mysql_connect(localhost,username,password);
mysql_select_db(dbname);
$selectresult=mysql_query("SELECT*FROMtablename
WHEREUSERID='$CookieID'
");
$row=mysql_fetch_array($selectresult);
echo"欢迎你的光临",$row[first_name],"!";
?>
就是这样的了。我在其中没有作判断,交给你自己来完成好了

决定使用路径跟踪或光线跟踪对于游戏开发者来说是一个关键的选择。虽然它们在视觉上都有出色的表现,但在实际应用中存在一些区别。因此,游戏爱好者需要仔细权衡两者的优势和劣势,以确定哪种技术更适合实现他们想要的视觉效果。什么是光线跟踪?光线追踪是一种复杂的渲染技术,用于模拟光线在虚拟环境中的传播和交互。与传统的光栅化方法不同,光线追踪通过追踪光线的路径来生成真实的光照和阴影效果,从而提供更逼真的视觉体验。这种技术不仅可以产生更真实的图像,还可以模拟更复杂的光线效果,使场景看起来更加逼真和生动。其主要概念

如何实现C++中的语音识别和语音合成?语音识别和语音合成是当今人工智能领域中的热门研究方向之一,它们在很多应用场景中起到了重要的作用。本文将介绍如何使用C++实现基于百度AI开放平台的语音识别和语音合成功能,并提供相关的代码示例。一、语音识别语音识别是将人说的语音转换为文本的技术,其在语音助手、智能家居、自动驾驶等领域有着广泛应用。下面是使用C++实现语音识

随着人工智能技术的不断发展,人脸检测和识别技术在日常生活中得到了越来越广泛的应用。在各种场合,如人脸门禁系统、人脸支付系统、人脸搜索引擎等等,人脸检测和识别技术都被广泛应用。而Java作为一种广泛使用的编程语言,也可以实现人脸检测和识别技术。本文将介绍如何使用Java实现人脸检测和识别技术。一、人脸检测技术人脸检测技术是指在图像或视频中检测到人脸的技术。在J

什么是交通标志识别系统?汽车安全系统的交通标志识别系统,英文翻译为:Traffic Sign Recognition,简称TSR,是利用前置摄像头结合模式,可以识别常见的交通标志 《 限速、停车、掉头等)。这一功能会提醒驾驶员注意前面的交通标志,以便驾驶员遵守这些标志。TSR 功能降低了驾驶员不遵守停车标志等交通法规的可能,避免了违法左转或者无意的其他交通违法行为,从而提高了安全性。这些系统需要灵活的软件平台来增强探测算法,根据不同地区的交通标志来进行调整。交通标志识别原理交通标志识别又称为TS

TranslucentTB是寻求时尚简约桌面外观的Windows11爱好者广泛使用的工具,遇到了障碍。自从发布以来Windows11内部版本22621.1344(22H2)28年2023月日,TranslucentTB对大多数用户不起作用。此错误使用户努力应对其任务栏的有限自定义选项。用户在寻求克服这一挫折的解决方案时,挫败感显而易见。在最近的Windows11更新之后,TranslucentTB无法正常工作的问题已在多个在线平台上广泛报道,包括论坛和社交媒体。用户一直在分享他们的经验,拼命寻找

C#中如何使用日志记录跟踪程序运行,需要具体代码示例引言:在开发软件时,常常需要对程序运行情况进行跟踪和记录,以便在出现问题时能够准确找到问题所在。日志记录是一种重要的技术手段,可以记录程序的运行状态、错误信息和调试信息,以便进行异常定位和问题排查。本文将介绍C#中如何使用日志记录跟踪程序的运行,并提供具体代码示例。一、日志记录库的选择在C#中,有很多优秀的

当你使用win10计算机时,你不知道你是否遇到过识别无法连接到internet的情况?如果你不知道如何解决这个问题,让我们来看看这篇文章。1.使用Win+I组合键调出设置窗口,点击选择网络和Internet。2.点击网络和INTERNET窗口左侧的以太网,然后点击右侧窗口的更改适配器选项。3.在网络连接窗口,单击鼠标右键单击以太网(台式机,请酌情对待移动设备),单击菜单中的禁用。4.显示为禁用后,单击以太网鼠标右键,执行启用命令。以太网启用后,问题应该解决。这里介绍了Win10网络失败提示识别无

mysql修改host的方法:1、通过“sudo service mysql stop”停掉mysql服务;2、以安全模式启动mysql,然后重置root密码;3、通过“update user set Host='%' where User='hive';”语句修改host即可。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

Atom编辑器mac版下载
最流行的的开源编辑器

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

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