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>
<
57C4
/tr>
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