利用cookie统计用户访问网页次数

 更新时间:2016年11月25日 15:56  点击:1653

如何创建 cookie?
setcookie() 函数用于设置 cookie。

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

 

创建您的第一个PHP cookie
当您创建一个cookie,使用函数setcookie,你必须指定三个参数。这些参数是setcookie(名称,值,过期):

姓名:您的Cookie的名称。您将使用此名称以后检索你的cookie,所以不要忘记它!
价值:在您的cookie中存储的值。共同价值观是用户名(字符串)和最后的访问时间(日期)。
到期:日期时,Cookie将过期,被删除。如果您没有设置此过期日期,那么它将被视为一个会话cookie被删除,并重新启动浏览器时。
在这个例子中,我们将创建一个Cookie,它存储用户上次访问频率来衡量人们回访我们的网页。我们希望人们忽视超过两个月采取返回到网站,所以我们将设置Cookie的到期日期中的两个未来个月!

<?php教程
//Calculate 60 days in the future
//seconds * minutes * hours * days + current time
$inTwoMonths = 60 * 60 * 24 * 60 + time();
setcookie('lastVisit', date("G:i - m/d/y"), $inTwoMonths);
?>

如果你不能走在这个例子中有所涉及的日期计算。重要的是你知道如何设置了一个cookie,通过指定的三个重要参数:名称,价值和到期日期。

检索你的新鲜曲奇
如果你的cookie的尚未到期的,让我们从该用户的个人电脑是使用恰当的关联数组名为$ _COOKIE中。你的存储cookie的名称是关键,将让您找回您的存储cookie的值!

<?php
if(isset($_COOKIE['lastVisit']))
 $visit = $_COOKIE['lastVisit'];
else
 echo "You've got some stale cookies!";

echo "Your last visit was - ". $visit;
?>
cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。


如果浏览器不支持 cookie 该怎么办?
如果您的应用程序涉及不支持 cookie 的浏览器,您就不得不采取其他方法在应用程序中从一张页面向另一张页面传递信息。一种方式是从表单传递数据

在PHP中使用的是执行相同的代码集的次数。作者的基本语法如下:

for循环只是一个多一点的代码,同时循环添加到它。而所涉及的一个循环的共同任务是:

设置一些计数器变量的初始值。
请检查条件语句是正确的。
执行中的代码循环。
增量在每个迭代结束通过循环计数器。
for循环允许你定义一个简单的代码行这些步骤。它似乎有一种奇怪的形式,所以一定要密切注意语法用!

FOR (expression 1, expression 2, expression 3)
{
  [code to execute]
}


for ( initialize a counter; conditional statement; increment a counter){
 do this code;
}

看简单实例一

FOR ($i = 0; $i <= 2; $i++)
{
  print "value is now " . $i . "<br>";
}

输出值

value is now 0
value is now 1
value is now 2

在第一循环,$i=0,这意味着表达,($i<= 2),为ture。因此,打印语句执行时,$i得到加1,变成1。

在第二循环,$ = 1,这意味着表达,($i<= 2),为ture。因此,打印语句执行时,$i得到加1,变成2。

在第三迭代,$i= 2,这意味着表达,($i<= 2),为ture。因此,打印语句执行时,$i递增,成为1 3。

在第四迭代,$i= 3,这意味着表达,($i<= 2),是假的。因此,PHP不去执行循环,不执行打印语句。

实例二

$brush_price = 5;

echo "<table border="1" align="center">";
echo "<tr><th>Quantity</th>";
echo "<th>Price</th></tr>";
for ( $counter = 10; $counter <= 100; $counter += 10) {
 echo "<tr><td>";
 echo $counter;
 echo "</td><td>";
 echo $brush_price * $counter;
 echo "</td></tr>";
}
echo "</table>";

输出值

Quantity Price
10 50
20 100
30 150
40 200
50 250
60 300
70 350
80 400
90 450
100 500

文章原创于www.111cn.net

1、 PHP ADODB 地址方式连接数据库教程
2、 PHP ADODB 对象方式获取数据库内容
3、 PHP ADODB HTML代码方式显示内容
4、 PHP ADODB 实现内容自动分页功能
 

  include_once("adodb5/adodb.inc.php教程");
 
  /* $db = NewADOConnection('mysql教程://root:@localhost/upload');
   $sql="SELECT * FROM `pic`";
   $db->SetFetchMode(ADODB_FETCH_ASSOC);
   //mysql_fetch_array()
   $sr1 = $db->Execute($sql);
   print_r($sr1->fields);
*/

   $db = NewADOConnection('mysql');
   $db->PConnect("localhost", "root", "", "upload");
   $sql="SELECT * FROM `pic`";
   $rs2=$db->Execute($sql);
  while($row=$rs2->FetchNextObject()){
    echo $row->NAME;
  }
*/
 
 include_once("adodb5/adodb-pager.inc.php");
 session_start();
   $db = NewADOConnection('mysql');
   $db->Connect("localhost", "root", "", "upload");
   $db->Execute("set names 'GBK'");

   $sql="SELECT * FROM `pic`";
   $pager=new ADODB_Pager($db,$sql);
   $pager->Render(2);
  
/*
include_once("adodb5/tohtml.inc.php");
   $db = NewADOConnection('mysql');
   $db->Connect("localhost", "root", "", "upload");
   $sql="SELECT * FROM `pic`";
   $rs2=$db->Execute($sql);
   echo rs2html($rs2);
*/

function getGoogleIndex($url, $type) {
 $url = getShortUrl($url);
 $content = getUrlContent("http://www.google.com.hk/search?hl=zh-CN&source=hp&q=$type:$url");
 $content = @iconv('gb2312', 'utf-8', $content);
 switch ($type) {
  case 'site' :
   $pattern = "/获得约 <b>(.*?)</b> 条结果/i";
   break;
  case 'link' :
   $pattern = "/有 <b>(.*?)</b>/i";
   break;
  default :
   exit;
 }
 preg_match($pattern, $content, $GoogleIndex);
 return str_replace('约', '', $GoogleIndex[1]);
}

function getBaiduIndex($url, $type) {
 $url = getShortUrl($url);
 $content = getUrlContent("http://www.baidu.com/s?wd=$type:$url");
 $content = @iconv('gb2312', 'utf-8', $content);
 preg_match('/找到相关网页(.*?)篇/i', $content, $BaiduIndex);
 return str_replace('约', '', $BaiduIndex[1]);
}
 
function getBingIndex($url, $type) {
 $url = getShortUrl($url);
 $content = getUrlContent("http://cn.bing.com/search?q=$type:$url");
 preg_match('/共 (.*?) 条/i', $content, $BingIndex);
 return $BingIndex[1];
}

function getYahooIndex($url, $type) {
 $url = getShortUrl($url);
 $qurl = "http://sitemap.cn.yahoo.com/search?p=";
 switch ($type) {
  case 'site' :
   $qurl .= $url;
   $pattern = "/被收录的网页: 共 <strong>(.*?)</strong> 条/i";
   break;
  case 'link' :
   $qurl .= $url.'&bwm=i';
   $pattern = "/链向该地址的网页: 共 <strong>(.*?)</strong> 条/i";
   break;
  default :
   exit;
 }
 $content = getUrlContent($qurl);
 preg_match($pattern, $content, $YahooIndex);
 return format_number($YahooIndex[1]); 
}

function getUrlContent($url) {
 $content = @file_get_contents($url);
 return $content;
}

1、设置Cookie 

PHP用SetCookie函数来设置Cookie。必须注意的一点是:Cookie是HTTP协议头的一部分,用于浏览器和服务器之间传递信息,所以必须在任何属于HTML文件本身的内容输出之前调用Cookie函数。 
SetCookie函数定义了一个Cookie,并且把它附加在HTTP头的后面,SetCookie函数的原型如下: 
int SetCookie(string name, string value, int expire, string path, string domain, int secure); 
除了name之外所有的参数都是可选的。value,path,domain三个参数可以用空字符串代换,表示没有设置;expire 和 secure两个参数是数值型的,可以用0表示。expire参数是一个标准的Unix时间标记,可以用time()或mktime()函数取得,以秒为单位。secure参数表示这个Cookie是否通过加密的HTTPS协议在网络上传输。 
当前设置的Cookie不是立即生效的,而是要等到下一个页面时才能看到.这是由于在设置的这个页面里Cookie由服务器传递给客户浏览器,在下一个页面浏览器才能把Cookie从客户的机器里取出传回服务器的原因。 
在同一个页面设置Cookie,实际是从后往前,所以如果要在插入一个新的Cookie之前删掉一个,你必须先写插入的语句,再写删除的语句,否则可能会出现不希望的结果。 
来看几个例子: 
简单的: 
SetCookie("MyCookie", "Value of MyCookie"); 
带失效时间的: 
SetCookie("WithExpire", "Expire in 1 hour", time()+3600);//3600秒=1小时 
什么都有的: 
SetCookie("FullCookie", "Full cookie value", time()+3600, "/forum", ".php教程user.com", 1); 

这里还有一点要说明的,比如你的站点有几个不同的目录,那么如果只用不带路径的Cookie的话,在一个目录下的页面里设的Cookie在另一个目录的页面里是看不到的,也就是说,Cookie是面向路径的。实际上,即使没有指定路径,WEB服务器会自动传递当前的路径给浏览器的,指定路径会强制服务器使用设置的路径。解决这个问题的办法是在调用SetCookie时加上路径和域名,域名的格式可以是“www.phpuser.com”,也可是 “.phpuser.com”。 
SetCookie函数里表示value的部分,在传递时会自动被encode,也就是说,如果value的值是“test value”在传递时就变成了“test%20value”,跟URL的方法一样。当然,对于程序来说这是透明的,因为在PHP接收Cookie的值时会自动将其decode。 
如果要设置同名的多个Cookie,要用数组,方法是: 
SetCookie("CookieArray[]", "Value 1"); 
SetCookie("CookieArray[]", "Value 2"); 
或 
SetCookie("CookieArray[0]", "Value 1"); 
SetCookie("CookieArray[1]", "Value 2"); 

2、接收和处理Cookie 

PHP对Cookie的接收和处理的支持非常好,是完全自动的,跟FORM变量的原则一样,特别简单。 
比如设置一个名为MyCookier的Cookie,PHP会自动从WEB服务器接收的HTTP头里把它分析出来,并形成一个与普通变量一样的变量,名为 $myCookie,这个变量的值就是Cookie的值。数组同样适用。另外一个办法是引用PHP的全局变量$HTTP_COOKIE_VARS数组。 
分别举例如下:(假设这些都在以前的页面里设置过了,并且仍然有效) 
echo $MyCookie; 
echo $CookieArray[0]; 
echo count($CookieArray); 
echo $HTTP_COOKIE_VARS["MyCookie"]; 
就这么简单。 

3、删除Cookie 

要删除一个已经存在的Cookie,有两个办法: 
一是调用只带有name参数的SetCookie,那么名为这个name的Cookie将被从关系户机上删掉;另一个办法是设置Cookie的失效时间为 time()或time()-1,那么这个Cookie在这个页面的浏览完之后就被删除了(其实是失效了)。 
要注意的是,当一个Cookie被删除时,它的值在当前页在仍然有效的。 

4、使用Cookie的限制 

首先是必须在HTML文件的内容输出之前设置; 
其次不同的浏览器对Cookie的处理不一致辞,且有时会出现错误的结果。比如:MS IE+SERVICE PACK 1不能正确处理带域名和路径的Cookie,Netscape Communicator 4.05和MS IE 3.0不能正确处理不带路径和时间的Cookie。至于MS IE 5 好象不能处理带域名、路径和时间的Cookie。这是我在设计本站的页面时发现的。 
第三个限制是在客户端的。一个浏览器能创建的Cookie数量最多为30个,并且每个不能超过4KB,每个WEB站点能设置的Cookie总数不能超过20个。

[!--infotagslink--]

相关文章

  • phpems SQL注入(cookies)分析研究

    PHPEMS(PHP Exam Management System)在线模拟考试系统基于PHP+Mysql开发,主要用于搭建模拟考试平台,支持多种题型和展现方式,是国内首款支持题冒题和自动评分与教师评分相...2016-11-25
  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • JS使用cookie实现DIV提示框只显示一次的方法

    本文实例讲述了JS使用cookie实现DIV提示框只显示一次的方法。分享给大家供大家参考,具体如下:这里运用JavaScript的cookie技术,控制网页上的提示DIV只显示一次,也就是当用户是第一次打开网页的时候才显示,第二次自动隐藏起...2015-11-08
  • php根据用户语言跳转相应网页

    当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <&#63;php $lan = substr(&#8194;$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
  • js检测用户输入密码强度

    一个用Javascript检测用户输入密码强度的效果代码,以下代码主要是从以下四个方面检测用户输入的密码的强度的,有兴趣的朋友可以自己添加或修改成自己想要的形式! 1. 如果输入的密码位数少于5位,那么就判定为弱。 2. 如果...2015-10-23
  • PHP中SSO Cookie登录分析和实现

    什么是SSO?单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护...2015-11-08
  • php有效防止同一用户多次登录

    【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
  • PHP中SSO Cookie登录分析和实现

    什么是SSO?单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护...2015-11-08
  • vue项目中js-cookie的使用存储token操作

    这篇文章主要介绍了vue项目中js-cookie的使用存储token操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-14
  • php ajax注册验证用户名是否存在代码

    这是注册程序是一款当用户输入完用户名是,就会自动去数据库中查询用户要注册的用户名是否己经被注册了,如果是返回提示否则提示可以注册。 conn.php文件 代...2016-11-25
  • C#统计字符串中数字个数的方法

    这篇文章主要介绍了C#统计字符串中数字个数的方法,涉及C#遍历字符串并判断数字的技巧,需要的朋友可以参考下...2020-06-25
  • 什么是cookie?js手动创建和存储cookie

    什么是cookie? cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。 有关cookie的例子: 名字 cookie 当访...2014-05-31
  • 微信小程序用户授权最佳实践指南

    这篇文章主要给大家介绍了关于微信小程序用户授权最佳实践的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-08
  • python爬虫用request库处理cookie的实例讲解

    在本篇内容里小编给大家整理的是一篇关于python爬虫用request库处理cookie的实例讲解内容,有需要的朋友们可以学习参考下。...2021-02-21
  • JS+JSP通过img标签调用实现静态页面访问次数统计的方法

    这篇文章主要介绍了JS+JSP通过img标签调用实现静态页面访问次数统计的方法,基于JavaScript动态调用jsp页面通过对TXT文本文件的读写实现统计访问次数的功能,需要的朋友可以参考下...2015-12-16
  • 简单php cookie用户登录实例

    cookie 的用途之一是存储用户在特定网站上的密码和 id。另外,也用于存储起始页的首选项。在提供个人化查看的网站上,将要求阁下的网络浏览器利用阁下计算机硬驱上的少量...2016-11-25
  • 基于C#后台调用跨域MVC服务及带Cookie验证的实现

    本篇文章介绍了,基于C#后台调用跨域MVC服务及带Cookie验证的实现。需要的朋友参考下...2020-06-25
  • Linux下统计当前文件夹下的文件个数、目录个数

    这篇文章主要介绍了Linux下统计当前文件夹下的文件个数、目录个数,本文使用ls命令配合管理、grep命令实现统计需求,需要的朋友可以参考下...2020-07-11
  • 超详细的php用户注册页面填写信息完整实例(附源码)

    注册页面是大多数网站必备的页面,所以很有必要对自己的注册页面做些精心的设计。下面三张图,第一张是注册的展示页面,第二张思维导图就一个简单的逻辑,第三张是通过firebug查看调用的JS文件。 一、给每个输入框写下说明在...2015-11-24