1+ <?php
2+ session_start ();
3+
4+ /*
5+ * 카운터 예제
6+ * 테이블 생성 스크립트
7+ create table `counter`(
8+ `hit_today` int NOT NULL DEFAULT '0' ,
9+ `hit_yesterday` int NOT NULL DEFAULT '0' ,
10+ `hit_month` int NOT NULL DEFAULT '0' ,
11+ `hit_total` int NOT NULL DEFAULT '0' ,
12+ `hit_date` date
13+ );
14+ insert into counter set hit_today='0', hit_yesterday='0', hit_month='0', hit_total='0', hit_date=now();
15+ */
16+
17+ $ today = date ('Y-m-d ' );
18+ $ ym = date ('Y-m ' );
19+ $ ip = $ _SERVER ['REMOTE_ADDR ' ];
20+
21+ $ db_host = "localhost " ;
22+ $ db_user = "db_user " ;
23+ $ db_pass = "db_pass " ;
24+ $ db_name = "db_name " ;
25+
26+ $ conn = mysqli_connect ($ db_host , $ db_user , $ db_pass , $ db_name ) or die ("DB connect fail ! " );
27+ mysqli_query ($ conn , "set names utf8 " );
28+
29+ function dbquery ($ sql ) {
30+ global $ conn ;
31+ $ res = mysqli_query ($ conn , $ sql ) or die (mysqli_error ($ conn ));
32+ return $ res ;
33+ }
34+
35+ function dbfetch ($ res ) {
36+ $ row = mysqli_fetch_array ($ res );
37+ return $ row ;
38+ }
39+
40+ function dbqueryfetch ($ sql ) {
41+ global $ conn ;
42+ $ res = mysqli_query ($ conn , $ sql ) or die (mysqli_error ($ conn ));
43+ $ row = mysqli_fetch_array ($ res );
44+ return $ row ;
45+ }
46+
47+ if ($ _REQUEST ['mode ' ] == "setup " ) {
48+ $ sql = "create table `counter`(
49+ `hit_today` int NOT NULL DEFAULT '0' ,
50+ `hit_yesterday` int NOT NULL DEFAULT '0' ,
51+ `hit_month` int NOT NULL DEFAULT '0' ,
52+ `hit_total` int NOT NULL DEFAULT '0' ,
53+ `hit_date` date
54+ ); " ;
55+ dbquery ($ sql );
56+ $ sql = "insert into counter set hit_today='0', hit_yesterday='0', hit_month='0', hit_total='0', hit_date=now() " ;
57+ dbquery ($ sql );
58+ exit ;
59+ }
60+
61+ $ sql = "select * from counter " ;
62+ $ row = dbqueryfetch ($ sql );
63+ if ($ row ['hit_today ' ] == "" ) {
64+ $ sql = "insert into counter set hit_today='0', hit_yesterday='0', hit_month='0', hit_total='0' " ;
65+ dbquery ($ sql );
66+ }
67+
68+ if ($ _SESSION ['mystory_visit_ ' .$ ip .'_ ' .$ today ] != "Y " ) {
69+ //오늘
70+ if ($ row ['hit_date ' ] != $ today ) {
71+ $ sql = "update counter set hit_yesterday=hit_today " ;
72+ dbquery ($ sql );
73+
74+ $ sql = "update counter set hit_today=0, hit_date=' $ today' " ;
75+ dbquery ($ sql );
76+ }
77+
78+ //이달
79+ if (substr ($ row ['hit_date ' ],0 ,7 ) != $ ym ) {
80+ $ sql = "update counter set hit_month=0 " ;
81+ dbquery ($ sql );
82+ }
83+
84+ $ sql = "update counter set hit_today=hit_today+1, hit_month=hit_month+1, hit_total=hit_total+1, hit_date=now() " ;
85+ dbquery ($ sql );
86+
87+ //방문 세션 생성
88+ if ($ _SESSION ['mystory_visit_ ' .$ ip .'_ ' .$ today ] != "Y " ) $ _SESSION ['mystory_visit_ ' .$ ip .'_ ' .$ today ] = "Y " ;
89+ }
90+
91+ $ sql = "select * from counter " ;
92+ $ counter = dbqueryfetch ($ sql );
93+
94+ ?>
95+
96+ <div style="width:100%; text-align:center; margin-top:15px">
97+ <small>
98+ 오늘 <?= number_format ($ counter ['hit_today ' ])?> <br>
99+ 어제 <?= number_format ($ counter ['hit_yesterday ' ])?> <br>
100+ 이달 <?= number_format ($ counter ['hit_month ' ])?> <br>
101+ 누적 <?= number_format ($ counter ['hit_total ' ])?> <br>
102+ </small>
103+ </div>
0 commit comments