创建和获取简单的COOKIE
Cookie数组的高级创建
<?php
/* Cookie的高级创建 */
header("Content-Type: text/plain; charset=utf-8");
setcookie("timeout","30秒",time()+30,"/");//我就不详细列出更多参数了,前面两个分别是COOKIE名字和COOKIE的值,
//time()+30表示当前时间后30秒到期,之后COOKIE自动失效,
//之后的"/"是路径,如果当前php访问文件路径是php/05cookie2.php,那么COOKIE只会在php目录下有效,如果使用"/"就整个网站都有效
//可以刷新这个页面几次,打印出该值后,再访问之前的文件,看看会有什么,等30后COOKIE还在么?
setcookie("list[city]","china");
setcookie("list[language]","chinese");//浏览一下,是否发现了神奇的数组
setcookie("message[]","msg1");//这样呢?试试,会发现被覆盖了吧,因此必须指明键名才行
setcookie("message[]","msg2");
echo "打印\$_COOKIE:\n";
print_r($_COOKIE);//如果你访问了上一个页面并且没有关闭浏览器,你会发现,刚才的COOKIE还在,试试关闭浏览器在打开会怎样
/* Cookie的高级创建 */
header("Content-Type: text/plain; charset=utf-8");
setcookie("timeout","30秒",time()+30,"/");//我就不详细列出更多参数了,前面两个分别是COOKIE名字和COOKIE的值,
//time()+30表示当前时间后30秒到期,之后COOKIE自动失效,
//之后的"/"是路径,如果当前php访问文件路径是php/05cookie2.php,那么COOKIE只会在php目录下有效,如果使用"/"就整个网站都有效
//可以刷新这个页面几次,打印出该值后,再访问之前的文件,看看会有什么,等30后COOKIE还在么?
setcookie("list[city]","china");
setcookie("list[language]","chinese");//浏览一下,是否发现了神奇的数组
setcookie("message[]","msg1");//这样呢?试试,会发现被覆盖了吧,因此必须指明键名才行
setcookie("message[]","msg2");
echo "打印\$_COOKIE:\n";
print_r($_COOKIE);//如果你访问了上一个页面并且没有关闭浏览器,你会发现,刚才的COOKIE还在,试试关闭浏览器在打开会怎样
Cookie的简单删除
<?php
/* COOKIE的删除 */
setcookie("list",NULL);//删除要做的就是将名字对应的值置空,置空表示使用NULL,null,false,""效果都是一样
setcookie("message[]",NULL);//比较一下这两个哪个有效,会发现前一个是无效的,因为对应的删除必须和设置时是一样的
setcookie("timeout",NULL);//如果要立即删除timeout的这个,访问05cookie02.php,再访问....01.php,确认该cookie还有效,然后访问该页面跳转过去后,还在吗??
header("Location: 05cookie01.php");//该内容的含义表示发送cookie后将当前页面地址设置为05cookie01.php,相当于进行页面跳转
/* COOKIE的删除 */
setcookie("list",NULL);//删除要做的就是将名字对应的值置空,置空表示使用NULL,null,false,""效果都是一样
setcookie("message[]",NULL);//比较一下这两个哪个有效,会发现前一个是无效的,因为对应的删除必须和设置时是一样的
setcookie("timeout",NULL);//如果要立即删除timeout的这个,访问05cookie02.php,再访问....01.php,确认该cookie还有效,然后访问该页面跳转过去后,还在吗??
header("Location: 05cookie01.php");//该内容的含义表示发送cookie后将当前页面地址设置为05cookie01.php,相当于进行页面跳转
cookie跟踪用户
<?php
/* cookie跟踪用户 */
date_default_timezone_set("PRC");//设置时区
header("Content-Type: text/html; charset=utf-8");
if(isset($_GET['clear']))
clear_log();
else
make_log();//生成记录
?>
<html>
<head>
<title>Cookie记录用户访问</title>
</head>
<body>
<p><a href="?clear">清除访问记录</a> <a href="05cookie04.php">刷新</a></p>
<?php
if(isset($_COOKIE['history_count']))
echo "<p>这是你第“".($_COOKIE['history_count']+1)."”次访问该页面!</p>";
else
echo "<p>这是你第一次访问,程序将自动为你生成访问记录</p>";
if(isset($_COOKIE['history']) && is_array($_COOKIE['history'])){
echo "<p>当前共记录了你“".count($_COOKIE['history'])."”访问该页面的记录。</p>";
?>
<table border="1" style="border-collapse:collapse;"><!--border-collapse:collapse;表示合并表格边框-->
<tr><th>序号</th><th>时间</th><th>访问页面</th></tr>
<?php
$i = 0;
foreach($_COOKIE['history'] as $time => $page){
$datetime = date("Y-m-d H:i:s",$time);
echo "<tr><td>",++$i,"</td><td>$datetime</td><td>$page</td></tr>\n";
}
?>
</table>
<?php
}
?>
</body>
</html>
<?php
function make_log(){
//生成cookie的内容,发送到浏览器,注意:浏览器cookie的大小是有限制的
$query = $_SERVER['REQUEST_URI'];
$count = 1;
if(isset($_COOKIE['history_count'])){
$count += $_COOKIE['history_count'];
}
setcookie("history_count",$count,time()+3600*24);//记录24小时
setcookie("history[".time()."]",$query,time()+3600*24);//24小时候后部分记录会失效,但访问总量只有没超过24小时会一直记录
//此处记录设置的是秒级的,如果一秒钟访问了两次,此时将不会体现出来,因此,可能会出现访问次数与记录不相符的情况
}
function clear_log(){
if(isset($_COOKIE['history'])){
if(is_array($_COOKIE['history'])){
foreach($_COOKIE['history'] as $name => $value){
setcookie("history[$name]",NULL);
}
}
}
setcookie("history_count",NULL);
header("Location: 05cookie04.php");
}
?>
/* cookie跟踪用户 */
date_default_timezone_set("PRC");//设置时区
header("Content-Type: text/html; charset=utf-8");
if(isset($_GET['clear']))
clear_log();
else
make_log();//生成记录
?>
<html>
<head>
<title>Cookie记录用户访问</title>
</head>
<body>
<p><a href="?clear">清除访问记录</a> <a href="05cookie04.php">刷新</a></p>
<?php
if(isset($_COOKIE['history_count']))
echo "<p>这是你第“".($_COOKIE['history_count']+1)."”次访问该页面!</p>";
else
echo "<p>这是你第一次访问,程序将自动为你生成访问记录</p>";
if(isset($_COOKIE['history']) && is_array($_COOKIE['history'])){
echo "<p>当前共记录了你“".count($_COOKIE['history'])."”访问该页面的记录。</p>";
?>
<table border="1" style="border-collapse:collapse;"><!--border-collapse:collapse;表示合并表格边框-->
<tr><th>序号</th><th>时间</th><th>访问页面</th></tr>
<?php
$i = 0;
foreach($_COOKIE['history'] as $time => $page){
$datetime = date("Y-m-d H:i:s",$time);
echo "<tr><td>",++$i,"</td><td>$datetime</td><td>$page</td></tr>\n";
}
?>
</table>
<?php
}
?>
</body>
</html>
<?php
function make_log(){
//生成cookie的内容,发送到浏览器,注意:浏览器cookie的大小是有限制的
$query = $_SERVER['REQUEST_URI'];
$count = 1;
if(isset($_COOKIE['history_count'])){
$count += $_COOKIE['history_count'];
}
setcookie("history_count",$count,time()+3600*24);//记录24小时
setcookie("history[".time()."]",$query,time()+3600*24);//24小时候后部分记录会失效,但访问总量只有没超过24小时会一直记录
//此处记录设置的是秒级的,如果一秒钟访问了两次,此时将不会体现出来,因此,可能会出现访问次数与记录不相符的情况
}
function clear_log(){
if(isset($_COOKIE['history'])){
if(is_array($_COOKIE['history'])){
foreach($_COOKIE['history'] as $name => $value){
setcookie("history[$name]",NULL);
}
}
}
setcookie("history_count",NULL);
header("Location: 05cookie04.php");
}
?>
学习一下 总结的挺好的
终于有人欣赏了
PHP我还没看到这个,。,先学习
那就继续努力,PHP还是不错的,COOKIE也还算简单吧