├── .profile
├── LICENSE.md
├── MinsaPayDesignSystem.css
├── README.md
├── add_account.php
├── add_account_check.php
├── balance_check.php
├── charge.php
├── charge_check.php
├── db.php
├── image
├── MinsaPayHeader.png
├── MinsaPayHeader@2x.png
└── MinsaPayLogo.png
├── include
├── boothSignupAgreement.js
├── footer.js
├── head.js
└── header.js
├── index.php
├── login.html
├── login_check.php
├── logout.php
├── main.php
├── payment_check.php
├── refund.php
├── refund_check.php
├── signUp.html
└── signUp_check.php
/.profile:
--------------------------------------------------------------------------------
1 | chmod -R 777 Storage
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 MinsaPay
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/MinsaPayDesignSystem.css:
--------------------------------------------------------------------------------
1 | * {
2 | margin-top: 10px;
3 | margin-bottom: 10px;
4 | font-family: -apple-system, system-ui, BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
5 | padding-top: 10px;
6 | padding-bottom: 10px;
7 | color: black;
8 | }
9 |
10 | body {
11 | text-align: center;
12 | max-width: 400px;
13 | width: 95%;
14 | margin: 0;
15 | left: 50%;
16 | position: absolute;
17 | transform: translate(-50%, 0%);
18 | }
19 |
20 | img{
21 | width:100%;
22 | }
23 |
24 | h1 {
25 | font-size: 28px;
26 | }
27 |
28 | h2 {
29 | font-size: 24px;
30 | }
31 |
32 | h3 {
33 | font-size: 20px;
34 | }
35 |
36 | h4 {
37 | font-size: 16px;
38 | }
39 |
40 | h5 {
41 | font-size: 15px;
42 | }
43 |
44 | h6 {
45 | color: #777777;
46 | font-size: 12px;
47 | }
48 |
49 | input {
50 | width: 100%;
51 | font-size: 16px;
52 | border: 0px;
53 | border-bottom: 1px solid black;
54 | border-radius: 0px;
55 | padding: 0px;
56 | padding-top: 10px;
57 | padding-bottom: 10px;
58 | }
59 |
60 | input[type=submit] {
61 | background-color: #228b22;
62 | border: none;
63 | color: white;
64 | text-align: center;
65 | text-decoration: none;
66 | display: inline-block;
67 | font-size: 16px;
68 | border-radius: 12px;
69 | }
70 |
71 | hr {
72 | padding: 0px;
73 | }
74 |
75 | a {
76 | text-decoration: none;
77 | }
78 |
79 | button {
80 | width: 100%;
81 | border: none;
82 | text-align: center;
83 | text-decoration: none;
84 | display: inline-block;
85 | font-size: 16px;
86 | border-radius: 12px;
87 | }
88 |
89 | .gap {
90 | height: 50px
91 | }
92 |
93 | .button1 {
94 | color: #228b22;
95 | background-color: #eeeeee;
96 | }
97 |
98 | .button2 {
99 | color: #B30D2B;
100 | background-color: #eeeeee;
101 | }
102 |
103 | table {
104 | width: 100%;
105 | border-spacing: 0;
106 | }
107 |
108 | th {
109 | text-align: left;
110 | margin: 0px;
111 | }
112 |
113 | td {
114 | text-align: left;
115 | margin: 0px;
116 | }
117 |
118 | input[type=radio] {
119 | width: 5%
120 | }
121 |
122 | .smallp {
123 | margin: 0px;
124 | text-align: left;
125 | font-size: 12px;
126 | color: gray;
127 | margin-left: 10px;
128 | display: inline-block;
129 | }
130 |
131 | li {
132 | text-align: left;
133 | margin: 0px;
134 | }
135 |
136 | form {
137 | padding: 0px;
138 | margin: 0px;
139 | }
140 |
141 | .BalanceRecordTable {
142 | text-align: center;
143 | font-size: 10px;
144 | }
145 |
146 | .BalanceRecordTable tr:nth-child(even) {background: #eeeeee}
147 | .BalanceRecordTable tr:nth-child(odd) {background: #ffffff}
148 |
149 | .BalanceRecordTable th{
150 | text-align: center;
151 | background-color: #FBBC56;
152 | border: 0.5px solid black;
153 | }
154 | .BalanceRecordTable td{
155 | text-align: center;
156 | border: .5px solid black;
157 | }
158 |
159 | .dataShowerH2 {
160 | text-align: left;
161 | padding: 0px;
162 | margin: 0px;
163 | margin-bottom: 10px;
164 | }
165 |
166 | .dataShower {
167 | font-weight: normal;
168 | text-align: left;
169 | padding: 0px;
170 | margin: 0px;
171 | margin-top: 10px;
172 | }
173 |
174 | summary {
175 | font-size: 20px;
176 | font-weight: bold;
177 | text-align: left;
178 | }
179 |
180 | label {
181 | margin: 0px;
182 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | ## MinsaPay
4 |
5 | 민족제(민사고 여름 축제)를 위한 결제 서버와 웹 앱입니다.
6 |
7 | Payment Server and Payment Web App for [KMLA](https://en.wikipedia.org/wiki/Korean_Minjok_Leadership_Academy) Minjok Festival (Summer Festival)
8 |
9 | ## Credits
10 |
11 | |역할|담당|
12 | |----|----|
13 | |Project Management|[KMLA](https://en.wikipedia.org/wiki/Korean_Minjok_Leadership_Academy) Department of Finances and Information|
14 | |Payment Logic + Back-End Dev|[Jueon An](https://github.com/JueonAn)|
15 | |UI/UX Design + Front-End Dev|[Sunghyun Cho](https://github.com/anaclumos)|
16 | |RFID Tech Consultation|Seung Ho Lee|
17 |
18 | ## Tech Stacks
19 |
20 | |Tech|Stacks|
21 | |----|----|
22 | |Server|Heroku + AWS Route 53|
23 | |Database|ClearDB + SQL|
24 | |Back-end Language|PHP|
25 | |Front-end|HTML5, Javascript|
26 | |Root Domain Forwarding|AWS S3|
27 |
--------------------------------------------------------------------------------
/add_account.php:
--------------------------------------------------------------------------------
1 | query($check);
17 | $row=$result->fetch_array(MYSQLI_ASSOC);
18 | $boothname = $row['boothname'];
19 | $isAdmin = $row['admin'];
20 |
21 | //일반 부스 운영자가 들어왔을 때: 자기 위치로 이동
22 |
23 | if($isAdmin != 1)
24 | {
25 | header ('Location: ./main.php');
26 | exit();
27 | }
28 | else
29 | {
30 |
31 | // 행정위 직원이 들어왔을 때(정상적인 상황)
32 | ?>
33 |
34 |
35 |
36 |
37 |
38 | 민사페이 계좌 등록
39 |
40 |
41 |
42 | 계좌 개설 · 행정위원회
43 |
103 |
104 |
105 |
106 |
--------------------------------------------------------------------------------
/add_account_check.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 민사페이 계좌 등록 확인
7 |
8 |
9 | query($check);
25 | $row=$result->fetch_array(MYSQLI_ASSOC);
26 | $boothname = $row['boothname'];
27 | $isAdmin = $row['admin'];
28 |
29 | //일반 부스 운영자가 들어왔을 때: 자기 위치로 이동
30 | if($isAdmin != 1)
31 | {
32 | header ('Location: ./main.php');
33 | exit();
34 | }
35 | else
36 | {
37 | // 행정위 직원이 들어왔을 때(정상적인 상황)
38 | $numid=$_POST['id'];
39 | if (isset($_POST['freepass']) && $_POST['freepass'] == 'yes')
40 | $freepass=1;
41 | else
42 | $freepass=0;
43 | switch($_POST['info'])
44 | {
45 | case "senior":
46 | $balance=7000;
47 | break;
48 | case "teacher":
49 | $balance=10000;
50 | break;
51 | default:
52 | $balance=0;
53 | }
54 | $rfid=$_POST['rfid'];
55 |
56 | if($numid==NULL || $rfid==NULL)
57 | {
58 | echo "빈 칸을 모두 채워주세요";
59 | echo "
";
60 | exit();
61 | }
62 | $check="SELECT *from account_info WHERE rfid='$rfid'";
63 | $result=$mysqli->query($check);
64 | if($result->num_rows==1)
65 | {
66 | echo "이미 등록된 학생증입니다.";
67 | echo "
";
68 | exit();
69 | }
70 | $date = date("m/d h:i:s",strtotime ("+9 hours"));
71 | $query = "INSERT INTO account_info (rfid,balance,freepass,idnumber) VALUES ('$rfid','$balance','$freepass','$numid'); ";
72 | $query .= "INSERT INTO transaction_list (who,booth,what,balance, timestamp, price) VALUES ('$numid','$boothname',0,'$balance','$date','$balance')";
73 |
74 | if (mysqli_multi_query($mysqli, $query))
75 | {
76 | ?>
77 |
78 |
79 |
80 | ";
84 | }
85 |
86 |
87 | ?>
88 |
--------------------------------------------------------------------------------
/balance_check.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 민사페이 계좌 잔액 확인
7 |
8 |
9 |
10 | query($check);
16 | $row=$result->fetch_array(MYSQLI_ASSOC);
17 | if($result->num_rows==0)
18 | {
19 | echo "등록되지 않은 계좌입니다.";
20 | exit();
21 | }
22 | $balance = $row['balance'];
23 | $id = $row['idnumber'];
24 | echo "계좌 번호 |
";
25 | echo "", $id, " |
";
26 | echo "잔액 |
";
27 | echo "", number_format($balance), "원 |
";
28 | if($row['freepass']) {
29 | echo "문화기획부 Freepass |
";
30 | echo "Active |
";
31 | }
32 | echo "
";
33 | ?>
34 | 계좌 기록
35 |
36 |
37 |
38 | 번호 |
39 | 시간 |
40 | 부스 이름 |
41 | 분류 |
42 | 잔액 |
43 |
44 |
45 | ");
49 | while($newrow = mysqli_fetch_array( $result ) )
50 | {
51 | $number++;
52 | $time = $newrow['timestamp'];
53 | $booth = $newrow['booth'];
54 | switch($newrow['what'])
55 | {
56 | case 0:
57 | $what = "개설";
58 | break;
59 | case 1:
60 | $what = "충전";
61 | break;
62 | case 2:
63 | $what = "결제";
64 | break;
65 | case 3:
66 | $what = "반납";
67 | break;
68 | default:
69 | $what = "오류";
70 | }
71 | $balance = $newrow['balance'];
72 | echo "";
73 | echo "".$number." | ";
74 | echo "".$time." | ";
75 | echo "".$booth." | ";
76 | echo "".$what." | ";
77 | echo "".number_format($balance)."원 | ";
78 | echo "
";
79 | }
80 | echo("");
81 | ?>
82 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/charge.php:
--------------------------------------------------------------------------------
1 | query($check);
17 | $row=$result->fetch_array(MYSQLI_ASSOC);
18 | $boothname = $row['boothname'];
19 | $isAdmin = $row['admin'];
20 |
21 | //일반 부스 운영자가 들어왔을 때: 자기 위치로 이동
22 | if($isAdmin != 1)
23 | {
24 | header ('Location: ./main.php');
25 | exit();
26 | }
27 | else
28 | {
29 | ?>
30 |
31 |
32 |
33 |
34 |
35 | 민사 페이 계좌 충전
36 |
37 |
38 |
39 | 계좌 충전 · 행정위원회
40 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/charge_check.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 민사페이 계좌 충전 확인
7 |
8 |
9 | query($check);
26 | $row=$result->fetch_array(MYSQLI_ASSOC);
27 | $boothname = $row['boothname'];
28 | $isAdmin = $row['admin'];
29 |
30 | //일반 부스 운영자가 들어왔을 때: 자기 위치로 이동
31 | if($isAdmin != 1)
32 | {
33 | header ('Location: ./main.php');
34 | exit();
35 | }
36 | else
37 | {
38 | $amount=$_POST['amount'];
39 | $rfid = $_POST['rfid'];
40 | //먼저 해당 rfid가 가입되어 있는지 검사
41 | $check="SELECT *from account_info WHERE rfid='$rfid'";
42 | $result=$mysqli->query($check);
43 | if($result->num_rows==1)
44 | {
45 | //한 개 계정이 검출
46 | $current="SELECT * FROM account_info WHERE rfid='$rfid'";
47 | $result2=$mysqli->query($current);
48 | $row2=$result2->fetch_array(MYSQLI_ASSOC);
49 | $idnum = $row2['idnumber'];
50 | $money=$row2['balance'];
51 | $total = $money + $amount;
52 | unset($_POST);
53 | $date = date("m/d h:i:s",strtotime ("+9 hours"));
54 | $query = "UPDATE account_info SET balance='$total' WHERE rfid='$rfid'; ";
55 | $query .= "INSERT INTO transaction_list (who,booth,what,balance, timestamp, price) VALUES ('$idnum','$boothname',1,'$total','$date','$amount')";
56 |
57 | if (mysqli_multi_query($mysqli, $query))
58 | {
59 | echo $idnum," 계좌에 ",$amount,"원 만큼 충전하여 현재 잔액은 ",$total,"원입니다";
60 | echo "
";
61 | exit();
62 | }
63 | else
64 | echo "
";
65 | }
66 | else
67 | {
68 | echo "등록되지 않은 학생증입니다.";
69 | echo "
";
70 | exit();
71 | }
72 | }
73 | ?>
74 |
75 |
--------------------------------------------------------------------------------
/db.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/image/MinsaPayHeader.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minsapay/server/5a6a6cac6d14189f4de6fc5492f99870ac8b98f7/image/MinsaPayHeader.png
--------------------------------------------------------------------------------
/image/MinsaPayHeader@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minsapay/server/5a6a6cac6d14189f4de6fc5492f99870ac8b98f7/image/MinsaPayHeader@2x.png
--------------------------------------------------------------------------------
/image/MinsaPayLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/minsapay/server/5a6a6cac6d14189f4de6fc5492f99870ac8b98f7/image/MinsaPayLogo.png
--------------------------------------------------------------------------------
/include/boothSignupAgreement.js:
--------------------------------------------------------------------------------
1 | document.write("");
2 | document.write("- 약관을 위반하였을 시 발생하는 전산 상의 오류 및 금전적 손해는 책임지지 않습니다.
");
3 | document.write("- 문기부를 제외한 각 부스는 하나의 계정만을 가질 수 있습니다.
");
4 | document.write("- 각 부스는 부스의 공식 명칭을 통일해 사용해야 합니다.
");
5 | document.write("- 올바르지 않은 금액을 입력하는 일은 공금횡령죄의 처벌 대상입니다.
");
6 | document.write("- 금액이 한 번 결제되면 되돌리기 매우 어렵습니다. 신중히 입력해 주세요.
");
7 | document.write("
");
--------------------------------------------------------------------------------
/include/footer.js:
--------------------------------------------------------------------------------
1 | document.write('');
--------------------------------------------------------------------------------
/include/head.js:
--------------------------------------------------------------------------------
1 | document.write('');
2 | document.write('');
--------------------------------------------------------------------------------
/include/header.js:
--------------------------------------------------------------------------------
1 | document.write('민사페이
');
--------------------------------------------------------------------------------
/index.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 민사페이
7 |
8 |
9 |
10 |
11 |
12 | 계좌 조회
13 | |
14 |
15 |
18 | |
---|
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/login.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 민사페이 운영진 로그인
7 |
8 |
9 |
10 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/login_check.php:
--------------------------------------------------------------------------------
1 | query($check);
11 |
12 | if($result->num_rows==1)
13 | {
14 | //하나의 열을 배열로 가져오기
15 | $row=$result->fetch_array(MYSQLI_ASSOC);
16 |
17 | //MYSQLI_ASSOC 필드명으로 첨자 가능
18 | if(password_verify($pw, $row['userpw']))
19 | {
20 | //로그인 성공 시 세션 변수 만들기
21 | $_SESSION['userid']=$id;
22 |
23 | //세션 변수가 참일 때
24 | if(isset($_SESSION['userid']))
25 | {
26 | //로그인 성공 시 페이지 이동
27 | header('Location: ./main.php');
28 | exit();
29 | }
30 | }
31 | }
32 | ?>
33 |
38 |
--------------------------------------------------------------------------------
/logout.php:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/main.php:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
17 | 민사페이
18 |
19 |
20 |
21 | query($check);
28 | $row=$result->fetch_array(MYSQLI_ASSOC);
29 | $boothname = $row['boothname'];
30 | echo "현재 부스 |
";
31 | echo "",$boothname," |
---|
";
32 | $isAdmin = $row['admin'];
33 | if($isAdmin==1)
34 | {
35 | ?>
36 |
37 |
38 |
39 |
44 |
45 |
52 |
53 | 결제 기록
54 |
55 |
56 |
57 | 번호 |
58 | 시간 |
59 | 구매 |
60 | 금액 |
61 |
62 |
63 | ");
68 | while($newrow = mysqli_fetch_array( $result ) )
69 | {
70 | $number++;
71 | $time = $newrow['timestamp'];
72 | $who = $newrow['who'];
73 | $price = $newrow['price'];
74 | $total += $price;
75 | echo "";
76 | echo "".$number." | ";
77 | echo "".$time." | ";
78 | echo "".$who." | ";
79 | echo "".number_format($price)."원 | ";
80 | echo "
";
81 | }
82 | echo("");
83 | ?>
84 |
85 |
86 | 총액은
87 | = $total?>
88 | 원
89 |
90 | 권한이 없습니다. 관리자에게 문의하세요.";
95 | }
96 | ?>
97 |
98 |
99 |
100 |
101 |
102 |
--------------------------------------------------------------------------------
/payment_check.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 민사페이 결제 확인
7 |
8 |
9 |
10 | query($check);
26 | $row=$result->fetch_array(MYSQLI_ASSOC);
27 | $boothname = $row['boothname'];
28 | $isAdmin = $row['admin'];
29 |
30 | //무권한/행정위 관리자가 들어왔을 때: 자기 위치로 이동
31 | if($isAdmin == 0 || $isAdmin == 1)
32 | {
33 | header ('Location: ./main.php');
34 | exit();
35 | }
36 | else
37 | {
38 | $price=$_POST['price'];
39 | $rfid = $_POST['rfid'];
40 | //먼저 해당 rfid가 가입되어 있는지 검사
41 | $check="SELECT *from account_info WHERE rfid='$rfid'";
42 | $result=$mysqli->query($check);
43 | if($result->num_rows==1)
44 | {
45 | //한 개 계정이 검출
46 | $current="SELECT * FROM account_info WHERE rfid='$rfid'";
47 | $result2=$mysqli->query($current);
48 | $row2=$result2->fetch_array(MYSQLI_ASSOC);
49 | $idnum = $row2['idnumber'];
50 | $money=$row2['balance'];
51 |
52 | if($isAdmin == 3 && $row2['freepass'] == 1) // 프리패스 대상자가 문기부에서 결재
53 | {
54 | $date = date("m/d h:i:s",strtotime ("+9 hours"));
55 | $price = 0;
56 | $trans = mysqli_query($mysqli, "INSERT INTO transaction_list (who,booth,what,balance, timestamp,price) VALUES ('$idnum','$boothname',2,'$money','$date',0)");
57 | if($trans)
58 | {
59 | echo "문기부 프리패스가 적용되어
", $idnum," 계좌에서 ",$price,"원 만큼 결제되었습니다.";
60 | echo "
";
61 | exit();
62 | }
63 | else
64 | {
65 | echo "결제에 실패했습니다.";
66 | echo "
";
67 | exit();
68 | }
69 | }
70 | else // 문기부에서 결재 안할때
71 | {
72 | $total = $money - $price;
73 | if($total<0) // 잔액 없을 때
74 | {
75 | echo "잔액이 부족합니다.";
76 | echo "
";
77 | exit();
78 | }
79 | else // 잔액 충분할 때
80 | {
81 | $date = date("m/d h:i:s",strtotime ("+9 hours"));
82 | $query = "UPDATE account_info SET balance='$total' WHERE rfid='$rfid'; ";
83 | $query .= "INSERT INTO transaction_list (who,booth,what,balance, timestamp,price) VALUES ('$idnum','$boothname',2,'$total','$date','$price')";
84 |
85 | if (mysqli_multi_query($mysqli, $query))
86 | {
87 | echo $idnum," 계좌에서 ",$price,"원 만큼 결제되었습니다.";
88 | echo "
";
89 | exit();
90 | }
91 | else
92 | {
93 | echo "결제에 실패했습니다.";
94 | echo "
";
95 | exit();
96 | }
97 | }
98 | }
99 | }
100 | else //계좌가 검색되지 않을 때
101 | {
102 | echo "등록되지 않은 학생증입니다.";
103 | echo "
";
104 | exit();
105 | }
106 | }
107 |
108 | ?>
--------------------------------------------------------------------------------
/refund.php:
--------------------------------------------------------------------------------
1 | query($check);
17 | $row=$result->fetch_array(MYSQLI_ASSOC);
18 | $boothname = $row['boothname'];
19 | $isAdmin = $row['admin'];
20 |
21 | //일반 부스 운영자가 들어왔을 때: 자기 위치로 이동
22 | if($isAdmin != 1)
23 | {
24 | header ('Location: ./main.php');
25 | exit();
26 | }
27 | else
28 | {
29 | ?>
30 |
31 |
32 |
33 |
34 |
35 | 민사페이
36 |
37 |
38 |
39 | 잔액 환불 · 행정위원회
40 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/refund_check.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 민사페이 환불 확인
7 |
8 |
9 | query($check);
25 | $row=$result->fetch_array(MYSQLI_ASSOC);
26 | $boothname = $row['boothname'];
27 | $isAdmin = $row['admin'];
28 |
29 | //일반 부스 운영자가 들어왔을 때: 자기 위치로 이동
30 | if($isAdmin != 1)
31 | {
32 | header ('Location: ./main.php');
33 | exit();
34 | }
35 | else
36 | {
37 | $rfid = $_POST["rfid"];
38 | $check="SELECT * FROM account_info WHERE rfid='$rfid'";
39 | $result=$mysqli->query($check);
40 | $row=$result->fetch_array(MYSQLI_ASSOC);
41 | $idnum = $row['idnumber'];
42 |
43 | if($result->num_rows==0)
44 | {
45 | echo "등록되지 않은 계좌입니다.";
46 | echo "
";
47 | }
48 | else
49 | {
50 | $date = date("m/d h:i:s",strtotime ("+9 hours"));
51 | $balance = $row['balance'];
52 | $query = "UPDATE account_info SET balance=0 WHERE rfid='$rfid'; ";
53 | $query .= "INSERT INTO transaction_list (who,booth,what,balance, timestamp,price) VALUES ('$idnum','$boothname',3,0,'$date',$balance)";
54 |
55 | if (mysqli_multi_query($mysqli, $query))
56 | {
57 | echo $idnum," 계좌에 남은 잔액 ", $balance, "원은 전부 환불 처리되었습니다.";
58 | echo "
";
59 | }
60 | else
61 | {
62 | echo "환불에 실패했습니다.";
63 | echo "
";
64 | }
65 | }
66 | }
67 | ?>
--------------------------------------------------------------------------------
/signUp.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 민사페이 부스 가입
7 |
8 |
9 |
10 | 운영진 회원가입
11 | 약관
12 |
13 |
14 |
15 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/signUp_check.php:
--------------------------------------------------------------------------------
1 | 돌아가기 ";
14 | exit();
15 | }
16 | if($id==NULL || $pw==NULL || $booth==NULL)
17 | {
18 | echo "빈칸을 모두 채워주세요";
19 | echo "";
20 | exit();
21 | }
22 |
23 | require('db.php');
24 |
25 | $check="SELECT *from user_info WHERE userid='$id'";
26 | $result=$mysqli->query($check);
27 | if($result->num_rows==1)
28 | {
29 | echo "중복된 아이디입니다.";
30 | echo "";
31 | exit();
32 | }
33 |
34 | $signup=mysqli_query($mysqli,"INSERT INTO user_info (userid,userpw,boothname) VALUES ('$id','$userpw','$booth')");
35 | if($signup)
36 | {
37 | ?>
38 |
39 |
40 |
41 | 회원가입 실패, 돌아가기 ";
45 | ?>
46 |
--------------------------------------------------------------------------------