์นํ๋ก๊ทธ๋๋ฐ 9์ฃผ์ฐจ ๊ณผ์ ์
๋๋ค.
์ด README์๋ ํนํ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ด๋ ค์ ๋ ์ , ์๋ก ์๊ฒ ๋ ์ ๋ฑ์ ๊ธฐ๋กํ์์ต๋๋ค.
์์ธํ ์ค๋ช
์ ์ฝ๋์ ์ฃผ์์ผ๋ก ๋ฌ์์ต๋๋ค.
HTTP ํ๋กํ ์ฝ์ ํค๋์ ํ ์คํธ๋ฅผ ์ถ๋ ฅํ๋ ํจ์ ์๋ฒ์์ ํ์ด์ง๋ฅผ ๋ณด๋ผ ๋ ํค๋์ ํ์ด์ง์ ์ ๋ณด๋ฅผ ๋ด์ ๋ณด๋ด๊ณ , ์ดํ์ (์ค์ ํ์๋๋) body๋ฅผ ๋ถ์ฌ์ ๋ณด๋ธ๋ค. ๋ธ๋ผ์ฐ์ ์์ http://~~/login ์ ์ ์ํ๋ฉด ์ด index.php๊ฐ ์ ์ก๋๋ค. ์ด ๋ headerํจ์์์ location์ ์ง์ ํ๋ฉด body๊ฐ ์ถ๋ ฅ๋๊ธฐ ์ ํค๋์์ location์ ์ฃผ์๋ก Redirect(ํ์ด์ง ์ด๋)๋ฅผ ์ํํ๋ค.
์น ์ฌ์ดํธ์ ์ฌ๋ฌ ํ์ด์ง์ ๊ฑธ์ณ ์ฌ์ฉ๋๋ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ (์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์ ์๋ฒ์์ ์ฐ๊ฒฐ์ ๋๋ด๋ ์์ ๊น์ง) ์๋ฒ์ธก์ ์ธ์ ์ ๊ฐ๋ง ์ ์ฅ, ํค๊ฐ๋ง ํด๋ผ์ด์ธํธ์ ๋จ๊ฒจ๋ ์ด๋ **$_SESSION** ์ํผ๊ธ๋ก๋ฒ ๋ฐฐ์ด์ ์ธ์ ๋ค์ด K,V ํํ๋ก ์ ์ฅ๋จ
์๋ก์ด ์ธ์ ์ ์์ํ๊ฑฐ๋ (์น ์๋ฒ์ ์ํด ๋ฌด์์๋ก ์ธ์ ์์ด๋ ์์ฑ, ํด๋ผ์ด์ธํธ์ธก์ ํค๋ก ์ ์ฅ) ๊ธฐ์กด์ ์ธ์ ์ ๋ค์ ์์ (์ธ์ ์์ด๋๊ฐ ์กด์ฌํ๋ฉด) */
๋ชจ๋ ์ธ์ ์ ์ญ์ ๋ฐ ์ข ๋ฃํ๋ค. ๋จ, $_SESSION ๋ฐฐ์ด์ด ์ด๊ธฐํ๋์ง๋ ์๋๋ค.
e(string str) ํจ์
์ ๋ ฅ ๋ด์ฉ์ด ' ์ ๊ฐ์ด ํน์๋ฌธ์๋ฅผ ํฌํจํ๋ฉด ์ฟผ๋ฆฌ๋ฌธ์ ๋ฌธ๋ฒ๊ณผ ์ค์ฒฉ๋์ด ๋ค๋ฅธ ๊ฐ์ด ์ ์ฉ๋ ์ ์๋ค. ์ฌ์ฉ์๊ฐ ์ ๋ ฅ์ฐฝ์ ์ ์์ ์ผ๋ก DB์ ๊ดํ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ๊ทธ ๋ช ๋ น์ด๊ฐ ์คํ๋์ด๋ฒ๋ฆด ์ ์๋ค. ๋ฐ๋ผ์ DB์ ์ฟผ๋ฆฌ๋ฌธ์ ์์ฑํ ๋ ์ ๋ ฅ์ ๊ทธ๋๋ก ์ฌ์ฉํ์ง ์๊ณ , Escape์์ผ์ ์ฟผ๋ฆฌ๋ฌธ์ ์์ฑํ๋ค. PHP์์ mysqli_real_escape_string(DB,๋ฌธ์์ด) ํจ์๋ฅผ ํตํด escape๋ ๋ฌธ์์ด์ ์ป์ ์ ์๋ค.
ํ๋ผ๋ฏธํฐ ๋ฌธ์์ด์ ์ฒซ ๋ฌธ์๊ฐ ์ํ๋ฒณ์ด๋ฉด ๋๋ฌธ์๋ก ์นํํ๋ค.
โ๏ธ ๋ก๊ทธ์ธ์ด ๋์ด์์ผ๋ฉด ํ ํ์ด์ง๋ก, ๋ก๊ทธ์ธ์ด ๋์ด์์ง ์์ผ๋ฉด login.php ๋ก ์ด๋์ํจ๋ค.
$_SESSION['user'] ์กด์ฌ์ฌ๋ถ์ ๋ฐ๋ผ ๋ก๊ทธ์ธ ์ฌ๋ถ ํ๋จlogin()ํจ์์์ ๋ก๊ทธ์ธํ ๋ ๊ณ ์ ์์ด๋๋ก ๋์
ํ๋ค.)๋ก๊ทธ์์ ๋ฒํผ ํด๋ฆญ ์ GET๋ฐฉ์์ผ๋ก (ํค)logout=(๊ฐ)'1'์ ์ ๋ฌ
-> $_GET['logout'] == '1'์ด ๋๊ณ functions.php๋ฅผ ํตํด ๋ก๊ทธ์์ ์ฒ๋ฆฌ๋จ
โ๏ธ ๋ก๊ทธ์ธ, ๋ก๊ทธ์์, ํ์๊ฐ์
, ์ด๋๋ฏผ/์ผ๋ฐ์ ์ , DB ๋ฑ ๋ชจ๋ ๊ธฐ๋ฅ ๋ด๋น
formํ๊ทธ์ POST๋ฐฉ์์ผ๋ก ์ ์ก๋ ์
๋ ฅ์ด $_POST ๋ฐฐ์ด์ ์ ์ฅ๋จ
getUserById($id) : DB์ ์ ์ฅ๋ uid (ํ์๊ฐ์
ํ ๋ ์์ฑ๋ ๊ณ ์ ID)๋ฅผ ์ด์ฉํด ์ ์ ์ ๋ณด๋ฅผ ์ฝ์ด์ดmd5 ํด์๊ฐ์ผ๋ก ๋ณํmysqli_connect(์์ดํผ,์์ด๋,๋น๋ฐ๋ฒํธ,DB๋ช
,ํฌํธ)โ๏ธ ๋ก๊ทธ์ธ ํผ ์ฐฝ์ผ๋ก, POST ๋ฐฉ์์ผ๋ก ์
๋ ฅํ Username๊ณผ Password๋ฅผ ์ ์กํ๋ค.
$_POST['login_btn'] Key๊ฐ ์๊น. (๊ฐ์ ํ ๋น๋์ง ์์ง๋ง ํค๊ฐ ์กด์ฌ)login()ํจ์ ์คํโ๏ธ ํ์๊ฐ์
์ฐฝ์ผ๋ก, POST ๋ฐฉ์์ผ๋ก ์
๋ ฅํ Username๊ณผ Email, Password๋ฅผ ์ ์กํ๋ค.
$_POST['register_btn'] Key๊ฐ ์๊น. (๊ฐ์ ํ ๋น๋์ง ์์ง๋ง ํค๊ฐ ์กด์ฌ)register()ํจ์ ์คํโ๏ธ Admin์ผ๋ก ๋ก๊ทธ์ธ์ด ๋์ด ์์ผ๋ฉด ๊ด๋ฆฌ์ ํ์ด์ง๋ก, ๊ทธ๊ฒ ์๋๋ผ๋ฉด login.php ๋ก ์ด๋์ํจ๋ค.
!isAdmin() ํจ์๋ฅผ ํตํด Admin์ด ์๋๋ฉด login.php ๋ก ์ด๋์ํจ๋ค.โ๏ธ ์ ์ ๋ฅผ ์์ฑํ๋ ์ฐฝ์ผ๋ก, register.php ์ ๊ฐ์ ์ผ์ ํ์ง๋ง ์ ์ ํ์
(Admin/User)๋ฅผ ํจ๊ป ์ง์ ํ๋ค.
!isAdmin() ํจ์๋ฅผ ํตํด Admin์ด ์๋๋ฉด login.php ๋ก ์ด๋์ํจ๋ค.