帮忙写PHP程序

当某IP当天第一次打开程序时,显示“你第一次访问本页"当天第二次打开程序时,显示"你第二次访问本页"以此类推,当大于25次找开程序时,显示“谢谢光临"这个程序怎么写那么使... 当 某IP 当天 第一次打开程序时,显示“你第一次访问本页" 当天 第二次打开程序时,显示"你第二次访问本页" 以此类推,当大于25次找开程序时,显示“谢谢光临" 这个程序怎么写 那么使用COOKIE怎么写呢 展开
 我来答
其颖包书云
2020-03-23 · TA获得超过3856个赞
知道大有可为答主
回答量:3220
采纳率:34%
帮助的人:223万
展开全部
两种方式实现,第一种是使用数据库记录IP的登录次数和上次登录时间,如果上次登录时间不是今天就设置登录次数为1,否则登录次数为上次的+1(如果没用上次记录上次就为0),然后根据当前次数显示结果即可,程序非常简单。
这种方式的缺点是使用较多的服务器属性,比如每天有数万IP访问的情况,另外一个缺点是由于IP的动态分配,可能许多人访问的IP是相同的,那么就会出现某人第一次访问的时候提示是第20次访问。
第二种方法是使用客户端COOKIE实现,这个甚至不用PHP(使用JS)都可以实现,每次代码检测上次登录时间和已经登录次数两个COOKIE变量,如果上次登录时间不是今天就修改登录次数为1,否则更新登录次数。程序也很简单。
这种方式的缺点是有的机器禁止COOKIE,每次登录都会显示第一次,优点是减少了服务器资源,而且可以解决动态IP、代理等情况。
我偏向使用COOKIE方法,程序如下:
<?php
$today=date('Y-m-d');
if
(isset($_COOKIE['today'])){
if($today==$_COOKIE['today'])
$logs=$_COOKIE['logs']+1;
else
$logs=1;
}else{
$logs=1;
}
setcookie('today',$today,time()+72*3600);
setcookie('logs',$logs,time()+72*3600);
if
($logs<=25)
echo
"你第
$logs
次访问本页";
else
echo
"谢谢光临";
?>
测试环境暂时用不了,可能会存在小问题,如果你解决不了,请说明现象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式