8000 PHP 텍스트 카운터 (오늘,어제,이달,누적) · nicecoding1/php_example@ddf1e92 · GitHub
[go: up one dir, main page]

Skip to content

Commit ddf1e92

Browse files
authored
PHP 텍스트 카운터 (오늘,어제,이달,누적)
PHP + MySQL 카운터 입니다. 홈페이지 등에 넣어보세요.
1 parent abb7a66 commit ddf1e92

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed

counter.php

Lines changed: 103 additions & 0 deletions
< 57C4 /tr>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
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

Comments
 (0)
0