我写了一个PHP脚本,这需要从网站并将其存储在一个表中有关访问者的IP和浏览器的信息在我的数据库。 该脚本包含在头部,并每隔各页面加载时间,谷歌分析类型的事情。 survey.php
我想这段代码只针对网站的每个新的访问者运行,所以我只记录每个新的访问者。
我想这是通过设置一个cookie来实现,所以我写了这个其他代码设置cookie,然后包括survey.php只有当不存在的cookie。 我用的! 在isset函数,如果它不存在,但它不设置cookie并运行在每个负载脚本运行if语句。
基于它在说手动我看不到的地方,我错了。
<?php
if(!isset($_COOKIE['Name'])){
setcookie("Name");
include ('survey.php');
}
?>
编辑:我添加了一个值,与多个用户进行了测试,和脚本仍然运行每个负载。 不知道为什么。
给你的cookie的值:
$value = 'something from somewhere';
if(!isset($_COOKIE['Name'])){
setcookie("Name", $value);
include ('survey.php');
}
鉴于这是识别新用户,使用“0”或“1”就足够了。
如果你想在cookie来在未来到期点:
setcookie("Name", $value, time()+604800); /* expires in a week */
编辑:
我已经试过这在一个简单的页面下面的代码:
<?php
if(!isset($_COOKIE['Test'])){
setcookie("Test", '1');
echo "Cookie set";
//include ('survey.php');
}
?>
我得到的“设置cookie”一次,然后不会再看到它在随后的刷新。 我还可以看到在控制台上的cookie:
Test | 1 | www.domain.com | / | Session | 5
唯一潜在的问题(如你正在使用不同的用户)是这个cookie设置为这里当前会话,所以设置它的到期遥远的未来将是很好的持久性,并会防止你的用户很快看到您的调查随时随地:
<?php
if(!isset($_COOKIE['Test'])){
//Expires on 31 december 2015
setcookie("Name","1",mktime (0, 0, 0, 12, 31, 2015));
include ('survey.php');
}
?>
1)尽量像这样$值=“测试”的cookie设定值; setCookie方法( “TestCookie”,$值);
2)检查浏览器是否启用了Cookie
为了设置一个cookie,或者更确切地说,以获取发送到从PHP用户的cookie,你需要给它一个值。 浏览器(至少大部分现代的)取一个空饼干头作为以清除任何cookie的,他们与这个名字。
所以,很显然,它不会被进一步请求发送,如浏览器,而不是将其设置为空,丢弃它。
给它一个随机的,短的价值和你所有的问题就会迎刃而解:
setcookie("Name",rand(1,10));
或类似。