๋ชจ์ ํดํน ์คํฐ๋ - 2์ฃผ์ฐจ ๊ณผ์ (2) (ํ์๊ฐ์ /๋ก๊ทธ์ธ ํ์ด์ง ๊ตฌํ)
๋ชจ์ ํดํน ์คํฐ๋ - 1์ฃผ์ฐจ ๊ณผ์ (๊ฐ์ด ๋ก๊ทธ์ธ ํ์ด์ง ์ ์)
๋ชจ์ ํดํน ์คํฐ๋ - 1์ฃผ์ฐจ ๊ณผ์ (๊ฐ์ด ๋ก๊ทธ์ธ ํ์ด์ง ์ ์)
๋ชจ์ ํดํน ์คํฐ๋ - 1์ฃผ์ฐจ ๊ณผ์ (๊ฐ์ด ๋ก๊ทธ์ธ ํ์ด์ง ์ ์) ์ ์ ์กฐ๊ฑด DB ์ฐ๊ฒฐ X ID / PW == admin / admin1234 ์ ๋ ฅ์ ๋ก๊ทธ์ธ ๋ก๊ทธ์ธ ํ์ด์ง ๊พธ๋ฏธ๊ธฐ (CSS / Bootstrap ์ด์ฉ) ์ถํ ์ํ๋๋๋ก ์ ์ฉ ๊ฐ๋ฅํ๋๋ก ํ
codegear-archive.tistory.com
1์ฃผ์ฐจ (๊ฐ์ด ๋ก๊ทธ์ธ ํ์ด์ง) ๊ณผ์ ์ Develop ๊ณผ์
- ํ์๊ฐ์ ๊ธฐ๋ฅ ์ถ๊ฐ (๊ธฐ๋ฅ ๊ตฌํ)
- ํ์ ๊ฐ์ ์ ๋ณด (DB ์ ์ฅ)
- ๋ก๊ทธ์ธ ํ์ด์ง (DB ์ฐ๋)
![]() |
![]() |
![]() |
![]() |
๋์ ๊ณผ์
- ์ฒซ ํ๋ฉด์ธ htt[://192.168.xxx.xxx:1018/ ์ ์ ์
- ๋ก๊ทธ์ธ or ํ์๊ฐ์ ์ ํ
- ๋ก๊ทธ์ธ ์ ํ
- ์ฌ๋ฐ๋ฅธ ID / PW์ ๋ ฅ์ ํ์ผ๋ก์ด๋.
- ํ์๊ฐ์
์ ํ
- ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ณด ์ ๋ ฅ์ DB์ ํ์์ ๋ณด ์ฝ์ ๋ฐ ๋ก๊ทธ์ธํ์ด์ง๋ก ์ด๋
์ฌ์ ์ค๋น (DB - ๊ตฌ์ฑ ๋ฐ ์ค์ )
- phpmyadmin ์ ์ ์ํ์ฌ ์ง์ ์ค์ ๊ฐ๋ฅ
- ํ์ง๋ง ์ฝ๋๋ฅผ ์ด์ฉํ์ฌ ํด๋ณด๊ณ ์ถ์ด์ ์๋ํจ
DB ์์ฑ ์ฝ๋ ์์
- create_db.php
- create_table.php
- db_insert.php
create_db.php
<?php
$db_conn = mysqli_connect("localhost", "*****", "***********", "") or die("MySQL ์ ์ ์คํจ !!");
$sql = "CREATE DATABASE sqlDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";
$ret = mysqli_query($db_conn, $sql);
if($ret){
echo "sqlDB๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์์ฑ๋จ.";
}else{
echo "sqlDB ์์ฑ ์คํจ : " . mysqli_error($db_conn);
}
mysqli_close($db_conn);
?>
- phpmyadmin ์ ์ ์
- CREATE DATABASE sqlDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
- sqlDB ๋ผ๋ ์ด๋ฆ์ DATABASE๋ฅผ ์์ฑ
- DEFAULT CHARACTER SET utf8
- ๋ํดํธ char ๊ฐ์ utf8๋ก ์ค์
- COLLATE utf8_general_ci
- ๋ฐ์ดํฐ ์ ๋ ฌ๋ฐฉ์์ utf8_general_ci ๋ก ์ค์
- ์ ์ ์คํจ์ ์๋ฌ ์ถ๋ ฅ
create_table.php
<?php
$db_conn = mysqli_connect("localhost", "*****", "***********", "sqlDB") or die("MySQL ์ ์ ์คํจ !!");
$sql = "
CREATE TABLE userTbl
( userID VARCHAR(20) NOT NULL PRIMARY KEY,
name VARCHAR(20) NOT NULL,
pass VARCHAR(256) NOT NULL,
email VARCHAR(30) NOT NULL,
birth INT NOT NULL,
mDate DATE
)
";
$ret = mysqli_query($db_conn, $sql);
if($ret){
echo "userTBL์ด ์ฑ๊ณต์ ์ผ๋ก ์์ฑ๋จ..";
}else{
echo "userTBL ์์ฑ ์คํจ : ". mysqli_error($db_conn);
}
mysqli_close();
?>
- sqlDB ์ userTbl์ด๋ผ๋ ์ด๋ฆ์ ํ ์ด๋ธ ์์ฑ
- userID๋ฅผ ๊ธฐ๋ณธํค๋ก ์ง์
- mDate
- ๊ฐ์ ์๊ฐ์ ๊ธฐ์ ํ๊ธฐ ์ํจ
- phpmyadmin์ SQL์์ ์๊ฐ์ค์ ์ ํด์ค์ผํจ
- SET GLOBAL time_zone = '+9:00'; : ๋ํ๋ฏผ๊ตญ ์๊ฐ
db_insert
<?php
$db_conn = mysqli_connect("localhost", "*****", "***********", "sqlDB") or die("MySQL ์ ์ ์คํจ !!");
mysqli_query($db_conn, 'set names utf8');
$db_conn -> set_charset = "utf8";
$sql = "
INSERT INTO userTbl VALUES
('LJY', '์ด์ค์ฝ', 'ljy1234', 'junyup1234@gmail.com', '1994-03-21', Now()),
('ADM', '๊ด๋ฆฌ์', 'admin1234', 'admin@test.com', '2023-11-07', Now())
";
$ret = mysqli_query($db_conn, $sql);
if($ret){
echo "userTBL์ ๋ฐ์ดํฐ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์
๋ ฅ๋จ.";
}else{
echo "userTBL ๋ฐ์ดํฐ ์
๋ ฅ ์คํจ : " . mysqli_error($db_conn);
}
mysqli_close($db_conn);
?>
- ์ฝ์ ํ ์คํธ
์ฝ๋ ๋ชฉ๋ก ๋ฐ ๊ตฌ์ฑ
WebApp
โ
โ index.php
โ login.php
โ login_func.php
โ regist.php
โ regist.post.php
โ home.php
โ
โโ inc
โ โโ db.php
โ โโ header.php
โ
โโ css
โโ style.css
- inc/header.php : ๊ณตํต ํค๋
- inc/db.php : ๊ณตํต์ผ๋ก ์ด์ฉํ DB ์ ๋ณด
- index.php : ์ด๊ธฐํ๋ฉด
- login.php : ๋ก๊ทธ์ธ ํ๋ฉด
- login_func.php : ๋ก๊ทธ์ธ ์ ๋ณด ํ์ธ
- regist.php : ํ์๊ฐ์ ํ๋ฉด
- regist.post.php : ํ์๊ฐ์ ๊ฐ๋ฅ์ฌ๋ถ ํ์ธ ๋ฐ DB ์ฝ์
- home.php : ๋ก๊ทธ์ธ ์๋ฃ ํ๋ฉด
- css/style.css : ์ ์ฉํ CSS
inc/header.php
<p style='text-align:right'>
<?php
if(!session_id()){
session_start();
}
if(!isset($_SESSION['member_id'])){
?>
<a href="/login.php">๋ก๊ทธ์ธ</a>
<a href="regist.php">ํ์๊ฐ์
</a>
<?php
}else{
?>
<a href="/index.php">๋ก๊ทธ์์</a>
<?php
}
?>
</p>
- ๋ก๊ทธ์ธ์ด ๋์ด์์ง ์์ ์ํ ( ! isset($_SESSION['member_id']) )
- ๋ก๊ทธ์ธ / ํ์๊ฐ์ ์ถ๋ ฅ
- ๋ก๊ทธ์ธ ๋์ด์๋ ์ํ ( isset($_SESSION['member_id']) )
- ๋ก๊ทธ์์ ์ถ๋ ฅ
inc/db.php
<?php
// DB ์ฐ๊ฒฐ func
function db_connect(){
define('DB_SERVER', 'localhost');
define('DB_USERNAME', '*****');
define('DB_PASSWORD', '***********');
define('DB_NAME', 'sqlDB');
$db_conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
//ํ๊ธ ์ธ์ฝ๋ฉ (utf-8)
$db_conn -> set_charset("utf8");
// DB ์ฐ๊ฒฐ ํ์ธ
if($db_conn -> connect_errno){
echo "Failed to connect to MySQL: ". $mysqli -> connect_error;
exit();
}
return $db_conn;
}
?>
- db ์ฐ๊ฒฐ์ ์ํ ์ธ๋ถ์ ๋ณด ๋ฐ ์ฐ๊ฒฐ ํจ์
index.php
<?php
session_start();
unset($_SESSION['member_id']);
unset($_SESSION['member_name']);
?>
<!DOCTYPE html>
<html>
<head>
<title>Index Page</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="container">
<h1 class="spacing grad">Index ํ์ด์ง</h1>
<?php require_once("inc/header.php"); ?>
<h2>๋ก๊ทธ์ธํด์ฃผ์ธ์.</h2>
<p>์์ด๋๊ฐ ์๋ค๋ฉด ํ์๊ฐ์
.</p>
</div>
</body>
</html>

- ์์ํ๋ฉด์ผ๋ก ์ค๋ฉด ์ธ์
๋ณ์๋ค ์ด๊ธฐํ
- unset($_SESSION[' ']);
- ์ฌ์ดํธ์ ์ฒซ ํ๋ฉด, inc/header.php ๋ก๋ถํฐ ๋ก๊ทธ์ธ/ํ์๊ฐ์ ํค๋๋ฅผ ๋ถ๋ฌ์ด
login.php
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>Login Page</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="container">
<h1 class="shadow spacing grad">๋ก๊ทธ์ธ ํ์ด์ง</h1>
<form method="POST" action="login_func.php" accept-charset="utf-8" autocomplete="off">
<br>
<label for="userID">์์ด๋</label>
<input type="text" name="userID" placeholder="User ID" autofocus/>
<label for="pass">๋น๋ฐ๋ฒํธ</label>
<input type="password" name="pass" placeholder="User Password"/>
<input type="submit" value="๋ก๊ทธ์ธ"/>
</form>
<br><br>
<footer class="footer">
<div class="footer-info">์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์.</div>
</footer>
</div>
</body>
</html>

- ๋ก๊ทธ์ธ ํ์ด์ง
- ์
๋ ฅ ๋ฐ์ดํฐ ์ ๋ ฌ ๋ฐฉ์ ์ค์
- accept-charset="utf-8" : ๋ฐ์ดํฐ ์ ๋ ฌ ๋ฐฉ์์ utf8 ๋ก ์ค์
login_func.php
<?php
require_once("inc/db.php");
$userID = isset($_POST['userID']) ? $_POST['userID'] : null;
$pass = isset($_POST['pass']) ? $_POST['pass'] : null;
// ํ๋ผ๋ฏธํฐ ์ฒดํฌ
if($userID == null || $pass == null){
header("Location: /login.php");
exit();
}
// ํ์ ๋ฐ์ดํฐ ์กฐํ
$db_conn = db_connect();
$sql = "SELECT * FROM userTbl WHERE userID= '$userID'";
$ret = mysqli_query($db_conn, $sql);
// ํ์ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด
$row = mysqli_fetch_array($ret);
$cnt = mysqli_num_rows($ret);
if($row['userID'] == null || $cnt == 0){
echo '<script>alert("๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์๊ฑฐ๋ ์๋ชป ์
๋ ฅ"); history.back(-1)</script>';
exit();
}
// ๋น๋ฐ๋ฒํธ ์ผ์น ์ฌ๋ถ ํ์ธ
$is_pw = password_verify($pass, $row['pass']);
if($is_pw === false){
echo '<script>alert("๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์๊ฑฐ๋ ์๋ชป ์
๋ ฅ"); history.back(-1)</script>';
exit();
}
$userName = $row['name'];
session_start();
$_SESSION['member_id'] = $userID;
$_SESSION['member_name'] = $userName;
mysqli_close($db_conn);
header("Location: /home.php");
?>

- ํ๋ผ๋ฏธํฐ๋ฅผ ๋ณ์์ ์ฝ์
- $var = isset($_POST[' var ']) ? $_POST[' var '] : null; (๊ธฐ๋ณธํ)
- POST ๊ฐ์ด ์ ๋ค์ด์๋ค๋ฉด ํด๋น ๊ฐ์ $var ๋ณ์์ ๋ฃ์ด์ฃผ๊ณ , ์๋๋ฉด NULL๊ฐ์ ๋ฃ์ด์ค
- ํ๋ผ๋ฏธํฐ๊ฐ ์ ๋๋ก ๋ค์ด์๋์ง ํ์ธ
- if($userID == null || $pass == null)
- ๋์ค ํ๋๋ผ๋ null๊ฐ์ด๋ผ๋ฉด, ๋ก๊ทธ์ธ ํ์ด์ง๋ก ๋์๊ฐ
- ํ์ ๋ฐ์ดํฐ (์์ด๋ ์กฐํ)
- $sql = "SELECT * FROM userTbl WHERE userID= '$userID'";
- ์ ๋ ฅ๋ ์์ด๋์ ๋ํ ์ ๋ณด๊ฐ DB์ ์๋์ง SQL Select๋ฅผ ํตํด ํ์ธ
- ํ์ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด?
- $cnt = mysqli_num_rows($ret); : num_rows ๋ ์
๋ ฅ์ ๋ณด์ ๋ํด ๊ฐ์ ๊ฒ์ ๊ฐฏ์๋ฅผ ๋ฐํ
- $cnt == 0 ์ด๋ผ๋ฉด, ์ ๋ ฅ๋ ์ ๋ณด์ ์ผ์นํ๋ ์ ๋ณด๊ฐ DB์ ์๋ค๋ ๊ฒ
- $row = mysqli_fetch_array($ret);
- $row['userID'] == null ์ด๋ผ๋ฉด, ์ ๋ ฅ ์ ๋ณด์ ๋ํด ์กฐํ๋ ์ ๋ณด๊ฐ ์๋ค๋ ๊ฒ
- ์ผ์น ํ๋ ํ์ ์ ๋ณด๊ฐ ์๋ค๋ฉด
- "๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์๊ฑฐ๋ ์๋ชป ์ ๋ ฅ" ๋ผ๋ ๊ฒฝ๊ณ ์ฐฝ๊ณผ ํจ๊ป ์ด์ ํ์ด์ง๋ก ๋์๊ฐ
- $cnt = mysqli_num_rows($ret); : num_rows ๋ ์
๋ ฅ์ ๋ณด์ ๋ํด ๊ฐ์ ๊ฒ์ ๊ฐฏ์๋ฅผ ๋ฐํ
- ๋น๋ฐ๋ฒํธ ์ผ์น ์ฌ๋ถ ํ์ธ
- ์ฝ์
์ ์ํธํ ๋์ด์๊ธฐ ๋๋ฌธ์ password_verify๋ฅผ ์ด์ฉ
- BCRYPT ๋ฐฉ์์ ๋ณตํธํ ๋ถ๊ฐ๋ฅ ํ๊ธฐ ๋๋ฌธ
- $is_pw = password_verify($pass, $row['pass']); ๋ ์ผ์นํ๋ฉด True๋ฅผ ์ผ์นํ์ง ์์ผ๋ฉด False๋ฅผ ๋ฐํ
- ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์๋๋ค๋ฉด
- "๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์๊ฑฐ๋ ์๋ชป ์ ๋ ฅ" ๋ผ๋ ๊ฒฝ๊ณ ์ฐฝ๊ณผ ํจ๊ป ์ด์ ํ์ด์ง๋ก ๋์๊ฐ
- (์์ด๋์ ๋น๋ฐ๋ฒํธ์ค ๋ฌด์์ด ํ๋ฆฐ์ง ๋ชจ๋ฅด๋๋ก ๋ ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ๊ฐ๊ฒ ์ค์ )
- ์ฝ์
์ ์ํธํ ๋์ด์๊ธฐ ๋๋ฌธ์ password_verify๋ฅผ ์ด์ฉ
- ์์ด๋์ ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์น - ๋ก๊ทธ์ธ ์ฑ๊ณต
- $_SESSION['var'] = $var
- ์ธ์ ์ ์ด์ฉํ์ฌ ๋ค๋ฅธ ํ์ด์ง์์ ์ฌ์ฉํ ์ ์๋๋ก ํจ
- ๋ค๋ฅธ ํ์ด์ง์์ ๋ณ์๋ฅผ ๋ฐ์์ ์ถ๋ ฅ ๊ฐ๋ฅ
- ๊ณตํต ํค๋ ์ฌ์ฉ์ ์ํจ
- DB ์ ์ ์ข
๋ฃ ๋ฐ ํ(๋ก๊ทธ์ธ ์๋ฃ) ํ์ด์ง๋ก ์ด๋
- mysqli_close($db_conn);
- header("Location: /home.php");
- $_SESSION['var'] = $var
regist.php
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html"; charset="utf-8">
<title>Page to Join</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="container">
<h1 class="shadow spacing grad">ํ์๊ฐ์
</h1>
<form method="POST" action="regist.post.php" accept-charset="utf-8" autocomplete="off">
<br>
<label for="name">์ด๋ฆ</label>
<input type="text" name="name" placeholder="Your Name" autofocus/>
<label for="userID">์์ด๋</label>
<input type="text" name="userID" placeholder="User ID"/>
<label for="pass">๋น๋ฐ๋ฒํธ</label>
<input type="password" name="pass" placeholder="User Password"/>
<label for="pass_check">๋น๋ฐ๋ฒํธ ์ฌ์
๋ ฅ</label>
<input type="password" name="pass_check" placeholder="Rewrite Password"/>
<label for="email">์ด๋ฉ์ผ</label>
<input type="email" name="email" placeholder="E-mail"/>
<label for="birth">์๋
์์ผ</label>
<input type="date" name="birth"/>
<input type="submit" value="ํ์๊ฐ์
">
<input type="reset" value="์ด๊ธฐํ">
</form>
<br><br>
<footer class="footer">
<div class="footer-info">ํ์ ์ ๋ณด๋ฅผ ์
๋ ฅํด์ฃผ์ธ์.</div>
</footer>
</div>
</body>
</html>

- ์ด๋ฆ, ์์ด๋
- input type = 'text'
- DB : varchar(20)
- ๋น๋ฐ๋ฒํธ, ๋น๋ฐ๋ฒํธ ์ฌ์
๋ ฅ
- input type = 'password'
- DB : varchar(256)
- ๋น๋ฐ๋ฒํธ์ ๋ํด์๋ง ํ์
- varchar(256) ์ธ ์ด์ ๋ ์ํธํ ์ฒ๋ฆฌ ๊ณผ์ ์์ ๊ธธ์ด์ง๊ธฐ ๋๋ฌธ
- ๋น๋ฐ๋ฒํธ ์ฌ์ ๋ ฅ์ ๋จ์ํ ์ ๋ ฅ ์ค๋ฅ ๋ฐฉ์ง๋ฅผ ์ํจ
- ์ด๋ฉ์ผ
- input type = 'email'
- DB : varchar(30)
- ์๋
์์ผ
- input type ='date'
- ์ง์ ์ ๋ ฅ ๊ฐ๋ฅ
- ๋ฌ๋ ฅ์ ๋๋ฌ์ ์ค์ ๊ฐ๋ฅ
- DB : date
- YYYY-MM-DD ํ๊ธฐ
- input type ='date'
- ํ์๊ฐ์
- input type : 'submit'
- ์ ๋ณด ์ ๋ฌ์ฉ
- ์ด๊ธฐํ
- input type : 'reset'
- ํ์ฌ ์ ๋ ฅ ์ ๋ณด ์ด๊ธฐํ
regist.post.php
<?php
require_once("inc/db.php");
$userID = isset($_POST['userID']) ? $_POST['userID'] : null;
$name = isset($_POST['name']) ? $_POST['name'] : null;
$pass = isset($_POST['pass']) ? $_POST['pass'] : null;
$pass_check = isset($_POST['pass_check']) ? $_POST['pass_check'] : null;
$email = isset($_POST['email']) ? $_POST['email'] : null;
$birth = isset($_POST['birth']) ? $_POST['birth'] : null;
// ํ๋ผ๋ฏธํฐ ์ฒดํฌ
if($userID == null || $name == null || $pass == null || $email == null || $birth == null || $pass_check == null){
echo '<script>alert("์
๋ ฅ์ ๋ณด๊ฐ ๋ถ์กฑํฉ๋๋ค."); history.back(-1)</script>';
// header("Location: /regist.php");
exit();
}
// ์ด๋ฏธ ์๋ '์์ด๋'์ธ์ง ํ์ธ
$db_conn = db_connect();
$sql = "SELECT * FROM userTbl WHERE userID= '$userID'";
$ret = mysqli_query($db_conn, $sql);
$cnt = mysqli_num_rows($ret);
if($cnt == 1){
echo '<script>alert("์ด๋ฏธ ์กด์ฌํ๋ \'์์ด๋\' ์
๋๋ค."); history.back(-1)</script>';
exit();
}
//์ฌ์
๋ ฅ ๋น๋ฐ๋ฒํธ ํ์ธ
if($pass != $pass_check){
echo '<script>alert("์ฌ์
๋ ฅ ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ต๋๋ค."); history.back(-1)</script>';
exit();
}
//๋น๋ฐ๋ฒํธ ์ํธํ
$bcrypt_pw = password_hash($pass, PASSWORD_BCRYPT);
//๋ฐ์ดํฐ ์ ์ฅ
date_default_timezone_set('Asia/Seoul');
$sql = "INSERT INTO userTbl VALUES ('$userID', '$name', '$bcrypt_pw', '$email', '$birth', now())";
$result = mysqli_query($db_conn, $sql);
if($result){
echo '<script type="text/javascript">';
echo 'alert("ํ์๊ฐ์
์ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃํ์ต๋๋ค.\n๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.");';
echo 'document.location.href = "/login.php";';
echo '</script>';
exit();
}else{
echo "ํ์๊ฐ์
์คํจ, userTbl์ ์ฝ์
์คํจ : " . mysqli_error($db_conn);
}
mysqli_close($db_conn);
?>
- ํ๋ผ๋ฏธํฐ ํ์ธ ๋ฐ ์ฒดํฌ

- ์ด๋ฏธ ์กด์ฌํ๋ '์์ด๋' ์ธ์ง ํ์ธ
- $cnt = mysqli_num_rows($ret);
- $cnt ์ ๊ฐ์ด 1์ด๋ผ๋ฉด ์ด๋ฏธ ํด๋น ์์ด๋๊ฐ ์กด์ฌํ๋ค๋ ๊ฒ
- $cnt = mysqli_num_rows($ret);

- ์ฌ์
๋ ฅ ๋น๋ฐ๋ฒํธ ํ์ธ
- ๋จ์ํ๊ฒ ์ ๋ ฅ๋ ๋ ๋ฒ์ ๋น๋ฐ๋ฒํธ์ ์ผ์น ์ฌ๋ถ ํ์ธ
- $pass == $pass_check
- ๋น๋ฐ๋ฒํธ ์ํธํ
- ๋นํฌ๋ฆฝํธ ์ํธํ
- $bcrypt_pw = password_hash($pass, PASSWORD_BCRYPT);
- ํ์ ๋ฐ์ดํฐ ์ ์ฅ
- SQL Query INSERT
- $sql = "INSERT INTO userTbl VALUES ('$userID', '$name', '$bcrypt_pw', '$email', '$birth', now())";
- now() ๋ ํ์ฌ ์๊ฐ์ ์ ๋ ฅ : '๊ฐ์ ์ผ์' ์ ๋ณด๋ฅผ ์ํจ
- YYYY-MM-DD HH-MM-SS (ํ์ฌ์ ๋ -์-์ผ ์-๋ถ-์ด)
- ํ์๊ฐ์
์ฑ๊ณต ๋ฐ ํ์ด์ง ์ด๋
- ํ์๊ฐ์ ์ด ์ฑ๊ณตํ์ผ๋ฏ๋ก, ๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ด๋
home.php
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>Wellcome</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class ="container">
<h1 class="spacing grad">Home</h1>
<?php require_once("inc/header.php"); ?>
<?php
$name = $_SESSION['member_name'];
$userID = $_SESSION['member_id'];
echo "์๋
ํ์ธ์, " .$name. " ๋";
?>
<a href='mypage.php?userID=", $userID, "'>๋ง์ดํ์ด์ง</a>
<a href='withdraw.php?userID=", $userID, "'>ํ์ํํด</a>
</div>
</body>
</html>

- ์ฌ์ดํธ์ ํ ํ๋ฉด
- $_SESSION['member_id'] ๊ฐ ์ค์ ๋์ด ์์ผ๋ฏ๋ก ํค๋๊ฐ '๋ก๊ทธ์ธ/ํ์๊ฐ์ '์ด ์๋ '๋ก๊ทธ์์'์ผ๋ก ํ์๋จ
- $name = $_SESSION['member_name']; ๊ฐ ์ค์ ๋์ด์๊ธฐ ๋๋ฌธ์
- ํด๋นํ๋ ์ ์ ์ ์ด๋ฆ ์ถ๋ ฅ ๊ฐ๋ฅ
- ๋ง์ดํ์ด์ง / ํ์ํํด ๊ธฐ๋ฅ์ ์ถํ ๊ตฌํ ์์
๋ชจ์ ํดํน ์คํฐ๋ - ๊ณผ์ 02์ฃผ์ฐจ(3) (๋ง์ดํ์ด์ง - ๋์ ์ ๋ณด)
๋ชจ์ ํดํน ์คํฐ๋ - 2์ฃผ์ฐจ ๊ณผ์ (3) (๋ง์ดํ์ด์ง - ๋์ ์ ๋ณด) ๋ชจ์ ํดํน ์คํฐ๋ - ๊ณผ์ 02์ฃผ์ฐจ(2) (ํ์๊ฐ์ /๋ก๊ทธ์ธ ํ์ด์ง ๊ตฌํ)์ Develop ๊ณผ์ ๋ชจ์ ํดํน ์คํฐ๋ - ๊ณผ์ 02์ฃผ์ฐจ(2) (ํ์๊ฐ์ /๋ก๊ทธ์ธ ํ
codegear-archive.tistory.com
ํ๊ธฐ
SQL ์ ๋ํ ์ดํด ๋ถ์กฑ์ผ๋ก ์ธํ์ฌ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆผ
- ํ๊ธ ์ธ์ฝ๋ฉ ๋ฌธ์
- DB ์ค์ ์ ๊ฐ๊ฐ์ ์ข ๋ฅ/๋ฐ์ดํฐ ์ ๋ ฌ ๋ฐฉ์์ ์ ์
- SQL๋ฌธ์ ํ์ฉ ๋ฐฉ๋ฒ์ ๋ํ ์ถ๊ฐ ๊ณต๋ถ
- ํจ์ํ๊ฐ ์ ๋๋ก ๋์ง ์์ ์
- ํจ์ํ์ ๋ฃ์ด์ค์ผํ 'ํ๋ผ๋ฏธํฐ' ์ค์ ์ ๋ํ ๋ถ์กฑ
- ์ด์ ๊ณผ์ ๋๋น ๋ฐ์ ํ์ง ๋ชปํ CSS
PHP๋ ์์๋๋ก ์คํ๋จ์ ์์ง ๋ง ๊ฒ !!
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์