๋ชจ์ ํดํน ์คํฐ๋ - ๊ณผ์ 03์ฃผ์ฐจ(1) ๋ก๊ทธ์ธ ํ์ด์ง ๋ณด์
๋ชจ์ ํดํน ์คํฐ๋ - 2์ฃผ์ฐจ ๊ณผ์ (๋ง์ดํ์ด์ง - ๋์ ์ ๋ณด)
๋ก๊ทธ์ธ ํ์ด์ง ๊ตฌํ์ Develop ๊ณผ์
- ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ
- ํ์์ ๋ณด ์์
- ํ์ํํด
๋ณ๊ฒฝ์ (๋ฆฌ๋๋ ์ ๋ณ๊ฒฝ)
- home.php
- mypage.php
์ถ๊ฐ๋ ์ฝ๋
- ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ
- edit_pw.php
- change.php
- ํ์์ ๋ณด ์์
- edit.php
- update.php
- ํ์ํํด
- withdraw.php
- delete.php
eidt_pw.php
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>Change pw</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class ="container">
<h1 class="spacing grad">Change Password</h1>
<?php
require_once("lib/jwt.php");
/ Cookie ์์ jwt ๊ฐ์ ธ์๊ธฐ
$token = $_COOKIE['login_token'];
// jwt์์ ์ ์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
$data = $jwt->dehashing($token);
echo $data['name']. " ๋์ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ";
?>
<form method="POST" action="change.php" accept-charset="utf-8" autocomplete="off">
<br>
<label for="pass_old">๊ธฐ์กด ๋น๋ฐ๋ฒํธ</label>
<input type="password" name="pass_old" placeholder="Old Password"/>
<label for="pass_new">๋ณ๊ฒฝํ ๋น๋ฐ๋ฒํธ</label>
<input type="password" name="pass_new" placeholder="New Password"/>
<label for="pass_check">๋น๋ฐ๋ฒํธ ์ฌ์
๋ ฅ</label>
<input type="password" name="pass_check" placeholder="Rewrite Password"/>
<input type="submit" value="๋ณ๊ฒฝ">
</form>
<p style='text-align:right'>
<a href='/home.php'>๋ค๋ก๊ฐ๊ธฐ</a>
</p>
</div>
</body>
</html>
- ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ์ ์ํ ํผ(form)
- action = "change.php" : ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ์ ์ํ ํ์ธ์ฌํญ ์ฒดํฌ์ฉ .php
- ๊ธฐ์กด ๋น๋ฐ๋ฒํธ : ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ์ ์ ๊ธฐ์กด์ ๋น๋ฐ๋ฒํธ ํ์ธ์ฉ
- ๋ณ๊ฒฝํ ๋น๋ฐ๋ฒํธ : ์๋ก ๋ฐ๊ฟ ๋น๋ฐ๋ฒํธ
- ๋น๋ฐ๋ฒํธ ์ฌ์ ๋ ฅ : ๋น๋ฐ๋ฒํธ ์ฌํ์ธ
change.php
<?php
$pass_old = isset($_POST['pass_old']) ? $_POST['pass_old'] : null;
$pass_new = isset($_POST['pass_new']) ? $_POST['pass_new'] : null;
$pass_check = isset($_POST['pass_check']) ? $_POST['pass_check'] : null;
// ํ๋ผ๋ฏธํฐ ์ฒดํฌ
if($pass_old == null || $pass_new == null || $pass_check == null){
echo '<script>alert("์
๋ ฅ์ ๋ณด๊ฐ ๋ถ์กฑํฉ๋๋ค."); history.back(-1)</script>';
// header("Location: /regist.php");
exit();
}
require_once("lib/jwt.php");
// Cookie ์์ jwt ๊ฐ์ ธ์๊ธฐ
$token = $_COOKIE['login_token'];
// jwt์์ ์ ์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
$data = $jwt->dehashing($token);
// DB ์ ๋ณด ์กฐํ (password)
require_once("inc/db.php");
$db_conn = db_connect();
$sql = "SELECT * FROM userTbl WHERE userID= '{$data['id']}'";
$ret = mysqli_query($db_conn, $sql);
$row = mysqli_fetch_array($ret);
//์
๋ ฅ ๋น๋ฐ๋ฒํธ์ ๊ธฐ์กด ๋น๋ฐ๋ฒํธ ์ผ์น ํ์ธ
$match_pw = password_verify($pass_old, $row['pass']);
if($match_pw === false){
echo '<script>alert("๊ธฐ์กด ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ต๋๋ค."); history.back(-1)</script>';
exit();
}
//๊ธฐ์กด ๋น๋ฐ๋ฒํธ์ ๋ณ๊ฒฝ ๋น๋ฐ๋ฒํธ ๋ค๋ฆ ํ์ธ
if($pass_old == $pass_new){
echo '<script>alert("๋ณ๊ฒฝํ ๋น๋ฐ๋ฒํธ๊ฐ ๊ธฐ์กด ๋น๋ฐ๋ฒํธ์ ๊ฐ์ต๋๋ค."); history.back(-1)</script>';
exit();
}
//์ฌ์
๋ ฅ ๋น๋ฐ๋ฒํธ ํ์ธ
if($pass_new != $pass_check){
echo '<script>alert("์ฌ์
๋ ฅ ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ต๋๋ค."); history.back(-1)</script>';
exit();
}
//๋น๋ฐ๋ฒํธ ์ํธํ
$bcrypt_pw = password_hash($pass_new, PASSWORD_BCRYPT);
//์๋ก์ด ๋น๋ฐ๋ฒํธ๋ก ๊ต์ฒด (DB UPDATE)
$sql = "UPDATE userTbl SET pass='$bcrypt_pw' WHERE userID= '{$data['id']}'";
$result = mysqli_query($db_conn, $sql);
if($result){
echo '<script type="text/javascript">';
echo 'alert("๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ์ด ์๋ฃ๋์์ต๋๋ค.\n๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.");';
setcookie("login_token", $token, time()-(360*30));
echo 'document.location.href = "/login.php";';
echo '</script>';
exit();
}else{
echo "๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ์คํจ : " . mysqli_error($db_conn);
}
mysqli_close($db_conn);
?>
- POST ๊ฐ์ด ์
๋ ฅ์ด ์๋๊ฒ์ด ์๋์ง ํ์ธ
- isset ์ผ๋ก ํ์ธ ํ, ํ๋๋ผ๋ ๋น์ด์์ผ๋ฉด ์ด์ ์ผ๋ก
- ํ์ฌ ์ฌ์ฉ์ id ๋ฅผ ์ด์ฉํ์ฌ DB ์ ๋ณด ์กฐํ
- "SELECT * FROM userTbl WHERE userID= '{$data['id']}'";
- ์
๋ ฅ ๋น๋ฐ๋ฒํธ์ ๊ธฐ์กด ๋น๋ฐ๋ฒํธ ์ผ์น ์ฌ๋ถ ํ์ธ
- password_verify($pass_old, $row['pass']);
- ๊ธฐ์กด ๋น๋ฐ๋ฒํธ์ ๋ณ๊ฒฝ ๋น๋ฐ๋ฒํธ๊ฐ ๋ค๋ฅธ ๊ฒ์ ํ์ธ
- ๊ธฐ์กด๊ณผ ๊ฐ์ ๋น๋ฐ๋ฒํธ๋ ์ฌ์ฉํ ์ ์์
- if($pass_old == $pass_new) : ๊ฐ์ ๊ฒฝ์ฐ์ exit() , ๋ค๋ฅธ ๊ฒฝ์ฐ์ ํต๊ณผ
- ์ฌ์
๋ ฅ ๋น๋ฐ๋ฒํธ ํ์ธ
- ์ ๋ ฅ ๋น๋ฐ๋ฒํธ์ ๋จ์ ์ฌํ์ธ์ฉ
- if($pass_new != $pass_check)
- ์ ๊ท ๋น๋ฐ๋ฒํธ ์ํธํ
- $bcrypt_pw = password_hash($pass_new, PASSWORD_BCRYPT);
- DB์ ๋น๋ฐ๋ฒํธ ๊ฐฑ์
- "UPDATE userTbl SET pass='$bcrypt_pw' WHERE userID= '{$data['id']}'";
edit.php
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>Edit Info</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class ="container">
<h1 class="spacing grad">Edit MyInfo</h1>
<?php
require_once("lib/jwt.php");
// Cookie ์์ jwt ๊ฐ์ ธ์๊ธฐ
$token = $_COOKIE['login_token'];
// jwt์์ ์ ์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
$data = $jwt->dehashing($token);
echo $data['name']. " ๋์ ํ์์ ๋ณด ์์ ";
require_once("inc/db.php");
$db_conn = db_connect();
$sql = "SELECT * FROM userTbl WHERE userID= '{$data['id']}'";
$ret = mysqli_query($db_conn, $sql);
$row = mysqli_fetch_array($ret);
// ์ ์ ์ ๋ณด ์ผ๋
$userID = $row['userID'];
$name = $row['name'];
$email = $row['email'];
$birth = $row['birth'];
$mDate = $row['mDate'];
?>
<form method="POST" action="update.php" accept-charset="utf-8" autocomplete="off">
<br>
<label for="userID">์์ด๋ (์์ด๋๋ ๋ฐ๊พธ์ค ์ ์์ต๋๋ค.)</label>
<input type="text" name="userID" value=<?php echo $userID ?> readonly>
<label for="name">์ด๋ฆ</label>
<input type="text" name="name" value=<?php echo $name ?>>
<label for="email">์ด๋ฉ์ผ</label>
<input type="email" name="email" value=<?php echo $email ?>>
<label for="birth">์๋
์์ผ</label>
<input type="date" name="birth" value=<?php echo $birth ?>>
<label for="userID">ํ์ ๊ฐ์
์ผ</label>
<input type="text" name="mDate" value=<?php echo $mDate ?> readonly>
<input type="submit" value="์์ ">
</form>
<p style='text-align:right'>
<a href='/mypage.php'>๋ค๋ก๊ฐ๊ธฐ</a>
</p>
</div>
</body>
</html>
- action="update.php"
- ํ์ฌ ์ฌ์ฉ์ id ๋ฅผ ์ด์ฉํ์ฌ ์ ์ ์ ๋ณด ์กฐํ
- "SELECT * FROM userTbl WHERE userID= '{$data['id']}'";
- ์ ์ ์ ๋ณด๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํ ํผ(form)
- ์์ด๋๋ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ReadOnly ๋ก ๋ณด์ฌ๋์ฃผ๋ ์์ ๋ถ๊ฐ๋ฅ
- ํ์ ๊ฐ์ ์ผ ๋ํ ๋ง์ฐฌ๊ฐ์ง
- ๋๋จธ์ง๋ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋๋ก ์ ๋ ฅ์ ๋ฐ์
- ์์ด๋๋ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ReadOnly ๋ก ๋ณด์ฌ๋์ฃผ๋ ์์ ๋ถ๊ฐ๋ฅ
update.php
<?php
require_once("inc/db.php");
$userID = $_POST['userID'];
$name = $_POST['name'];
$email = $_POST['email'];
$birth = $_POST['birth'];
$db_conn = db_connect();
$sql = "UPDATE userTbl SET name='$name',email='$email',birth='$birth' WHERE userID= '$userID'";
$ret = mysqli_query($db_conn, $sql);
if($ret){
echo '<script type="text/javascript">';
echo 'alert("ํ์ ์ ๋ณด๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์์ ํ์ต๋๋ค.\๋ง์ดํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.");';
echo 'document.location.href = "/mypage.php";';
echo '</script>';
exit();
}else{
echo "ํ์์ ๋ณด ์์ ์คํจ :" . mysqli_error($db_conn);
}
mysqli_close($db_conn);
?>
- POST๋ก ๋ฐ์์จ ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ DB ๊ฐฑ์
- "UPDATE userTbl SET name='$name',email='$email',birth='$birth' WHERE userID= '$userID'";
withdraw.php
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>Really?</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class ="container">
<h1 class="spacing grad">Withdraw</h1>
<?php require_once("inc/header.php"); ?>
<?php
require_once("lib/jwt.php");
// Cookie ์์ jwt ๊ฐ์ ธ์๊ธฐ
$token = $_COOKIE['login_token'];
// jwt์์ ์ ์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
$data = $jwt->dehashing($token);
echo "์ ๋ง๋ก ๋ ๋์ค๊ฑด๊ฐ์? " . $data['name'] . " ๋";
require_once("inc/db.php");
$db_conn = db_connect();
$sql = "SELECT * FROM userTbl WHERE userID= '{$data['id']}'";
$ret = mysqli_query($db_conn, $sql);
$row = mysqli_fetch_array($ret);
// ์ ์ ์ ๋ณด ์ผ๋
$userID = $row['userID'];
$name = $row['name'];
?>
<form method="POST" action="delete.php">
<br>
<label for="userID">์์ด๋</label>
<input type="text" name="userID" value=<?php echo $userID ?> readonly>
<label for="name">์ด๋ฆ</label>
<input type="text" name="name" value=<?php echo $name ?> readonly>
<br><br>
<?php echo "์ ๋ง๋ก ํํดํ์๊ฒ ์ต๋๊น?" ?>
<input type="submit" value="ํ์ ํํด">
</form>
<p style='text-align:right'>
<br>
<a href='/home.php'>๋ค๋ก๊ฐ๊ธฐ</a>
</p>
</div>
</body>
</html>
- ํ์ฌ ์ฌ์ฉ์ id๋ฅผ ์ด์ฉํ์ฌ DB์์ ์ ์ ์ ๋ณด๋ฅผ ๋ฐ์์ด
- "SELECT * FROM userTbl WHERE userID= '{$data['id']}'";
- ์ ์ id ์ ์ ์ ์ด๋ฆ์ ๋ณด์ฌ์ฃผ๋ฉด์ ์ง์ง ํํดํ ๊ฑด์ง ํ์ธ
- ์์ด๋์ ์ด๋ฆ์ ๋ณด์ฌ์ฃผ๋ ํผ(form)
- action="delete.php"
- ์์ด๋์ ์ด๋ฆ ๋๋ค ํ์ธ์ฉ์ด๋ฏ๋ก ReadOnly
delete.php
<?php
require_once("inc/db.php");
$userID = $_POST['userID'];
$db_conn = db_connect();
$sql = "DELETE FROM userTbl WHERE userID= '$userID'";
$ret = mysqli_query($db_conn, $sql);
if($ret){
echo '<script type="text/javascript">';
echo 'alert("ํ์ ํํด๊ฐ ์๋ฃ๋์์ต๋๋ค.\์๋
ํ ๊ฐ์ญ์์ค.");';
echo 'document.location.href = "/index.php";';
echo '</script>';
exit();
}else{
echo "ํ์ ํํด ์คํจ :" . mysqli_error($db_conn);
}
mysqli_close($db_conn);
?>
- POST๋ก ๋ฐ์์จ ์ ์ id๋ฅผ ์ด์ฉํ์ฌ DB์์ ํด๋น id์ ๋ด์ฉ์ ์ ๋ถ ์ญ์
- "DELETE FROM userTbl WHERE userID= '$userID'";
- userID ๊ฐ PK ์ด๋ฏ๋ก, ์ด๊ฒ์ ๊ธฐ์ค์ผ๋ก ํด๋น ํ์ ๋ด์ฉ์ ์ ๋ถ ์ญ์
ํ๊ธฐ
- ์ฝ๋์ ์ธ๋ชจ์๋ ๋ถ๋ถ์ด ๋ง์ด ๋ค์ด์๋ ๋ฏ ํ๋ค๋ ์๊ฐ์ด ๋ฌ
- ์ต๋ํ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ๋ ค ํ์ง๋ง ๊ธฐ๋ฅ์ ๋๋๋ค๋ณด๋ ๋๋ฌ์ด ์ฝ๋๊ฐ ๋์๋ค๋ ๋๋
- CSS๊ฐ ๋ฐ์ ์ด ์์ด ๊ธฐ๋ฅ ๊ตฌํ์๋ง ์ ๊ฒฝ์ ์ผ๋ค๋ ์์ฌ์
- ๋ก๊ทธ์ธ ์ ์ง๋ฅผ ์ํ ์ฟ ํค์ ๋ํ ์ฒ๋ฆฌ ๋ฌธ์
- ๋ก๊ทธ์ธ ์ ์ง๋ฅผ ์ํ ์ฟ ํค๊ฐ ์ญ์ ํ์๋ ๋ฐ๋ก ์ ์ฉ๋์ง ๋ชปํจ
- ์๋ก๊ณ ์นจ์ผ๋ก ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด ์๊ฐ์ด ๋ค์์ง๋ง ํ๋ฒ๋ง ์๋ก๊ณ ์นจํ๋ ๋ฐฉ๋ฒ์ ๊ตฌํ ๋ชปํจ
- ์๋ก๊ณ ์นจ์ผ๋ก ํด๊ฒฐํ๋ ๋ฐฉ์์ ๊ผผ์์ด๋ฉฐ, SEO ์นํ์ ์ด์ง ๋ชปํจ (์ต์ ํ ๋ฌธ์ )
- ์ฟ ํค์ ๋ํ์ฌ ์ธ์ ์ธ์ ์ญ์ ํด์ค์ผํ ์ง๋ฅผ ์ ํํ ํ์ ๋ชปํจ
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์