Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5119315
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类:

2007-04-12 02:27:35

程序说明:
    为了方便测试,修改了些地方,包括:
    1。防止刷新由原来的24小时改成10秒。
    2。每次往数据库添加记录的时候都会显示添加的IP。
    3。显示了同一个IP的访问时间差 (这次登陆时间与上一次登陆时间的差,用‘秒’计算)

其他:写得比较烂,有机会改下,主要是对数据库的设计没做好。同一IP不应每次都记录下来。因该给他个新字段IP_num,用来统计一个IP访问的次数。然后把所有的IP_num相加,等到总共的访问次数。个人觉得这样比较节约数据库。呵呵。有空看看别人的是怎么写的。可惜刚开始学的时候(我也菜鸟,到现在刚好学一个月)还看不懂。哈哈
*/

//-------------------------------------------------------------------------------
//以下为 判断用户IP在规定时间内是否存在记录
       
        // 取得用户IP
        $ip=$_SERVER['REMOTE_ADDR'];
        $ip1 = getenv('HTTP_X_FORWARDED_FOR');
        if (($ip1 != "") && ($ip1 != "unknown")) $ip=$ip1;
               
        //连接数据库
        $link = mysql_connect('localhost:6033', 'root', 'dclzyf') ;
       
        // 选择数据库
        mysql_select_db('dcl', $link) ;
       
        //统计表counter中所有符合的记录
        $sql = "SELECT * FROM `counter` WHERE '$ip'=ip ORDER BY `time_at` DESC LIMIT 1";
       
        //用PHP发送一条读取表的SQL查询
        $result = mysql_query($sql) ;
       
        //从结果集中取得一行作为枚举数组(将$restlt的值以数组形式赋给$row)
        $row = mysql_fetch_assoc($result) ;

        //判断如果IP没有出现在数据库里的话执行
        if (!$row)
        {
                //添加记录SQL语句
                //$now = time();

                $sql = "INSERT INTO `counter` ( `ip` , `time_at` ) VALUES ('$ip', NOW());";
                               
                //用PHP发送一条添加记录的SQL查询
                $result = mysql_query($sql) ;
       
        }  else
                {
                        
                        
//相减时间,用于测试(可以看到Array ( [0] => 10 ) 当到10秒的时候就自动添加记录)
                    $t = time() - date('U',strtotime($row['time_at']));
                    echo $t;
                    echo '
';
                   //如果时间差大于规定时间,则执行
                        if($t >= 10)
                        {
                          //用来测试,每次往数据库添加记录的时候都会显示此IP。
                           echo $ip.'
';
                          //添加记录SQL语句
                        $sql = "INSERT INTO `counter` ( `ip` , `time_at` ) VALUES ('$ip', NOW( ));";
                          //echo $sql.'
';                      
                     //用PHP发送一条添加记录的SQL查询
                               

$result = mysql_query($sql) ;                    
                        }
                }
       
               

//----------------------------------------------------------------------------------
//以下为 读取MYSQL中记录数
       
        //读取表counter内容的SQL语句
        $sql = "SELECT COUNT(*) FROM `counter`";
       
        //用PHP发送一条读取表的SQL查询
        $result = mysql_query($sql) ;
       
        //从结果集中取得一行作为枚举数组
        $row = mysql_fetch_row($result) ; 
       
        //清除查询结果
        mysql_free_result($result) ;
               
        //关闭数据库
        mysql_close($link) ;
       
        echo "到访人数为:$row[0]" ;
?>

 

//----------------------------------------------------------------------------------
//以下为 导出数据库的SQL语句

-- phpMyAdmin SQL Dump
-- version 2.8.0.1
--
--
-- 主机: localhost:6033
-- 生成日期: 2006 年 04 月 13 日 16:03
-- 服务器版本: 5.0.18
-- PHP 版本: 4.4.2
--
-- 数据库: `dcl`
--

-- --------------------------------------------------------

--
-- 表的结构 `counter`
--

CREATE TABLE `counter` (
  `ip` varchar(15) NOT NULL,
  `time_at` datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- 导出表中的数据 `counter`
--

INSERT INTO `counter` (`ip`, `time_at`) VALUES ('127.0.0.1', '2006-04-06 18:28:35'),

 


阅读(2854) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~