접근권한을 나누고 싶어서
세션은 브라우저 종료시 사라지기 때문에(일정시간 지난 후)이를 보완하기 위해 만듬
로그인할때 받은 쿠기에 따라 페이지 접근 권한을 나누는 것이 목표
브라우저 종료하고 다시 접속해도 로그인 유지하는 것이 목표
1.기존의 로그인 방식에서 마지막에 header로 index로 보내기전 setcookie("aa", "ok", time() +240, "/");같은 쿠기를 만들어 저장한다.
2.특정 아이디나 비밀번호를 보내면 특별한 쿠키를 줘서 접근 권한을 나눈다.
3.관리자로 로그인 하면 관리자 페이지로 보통으로 로그인 하면 index로 보내게 설정하였다. 관리자페이지에는 관리자 쿠키가 있어야 접근가능
<?php
session_start();
include "db.php";
$uname=$_POST['uname'];
$password=$_POST['password'];
$sql="SELECT * FROM users WHERE user_name = '$uname' AND password = '$password'";
$result=mysqli_query($conn, $sql);
$row= mysqli_num_rows($result);
if($row === 1 && $uname=="admin" && $password=="admin"){
$row2=mysqli_fetch_assoc($result);
$_SESSION['user_name'] = $row2['user_name'];
$_SESSION['password'] = $row2['password'];
$_SESSION['email'] = $row2['email'];
setcookie("admin", "admin", time() +240, "/");
setcookie("normal", "ok", time() +240, "/");
header("Location: admin.php");
} elseif($row === 1){
$row2=mysqli_fetch_assoc($result);
$_SESSION['user_name'] = $row2['user_name'];
$_SESSION['password'] = $row2['password'];
$_SESSION['email'] = $row2['email'];
setcookie("normal", "ok", time() +240, "/");
header("Location: index.php");
}
?>
if($_COOKIE['normal'] === "ok" && $_COOKIE['admin'] === "admin"){ echo "관리자 페이지 입니다.";
}else{
echo "<script>alert(\"접근할 수 없습니다.\")</script>";
header("Location: index.php");
}
if($_COOKIE['normal'] === "ok"){
echo "자유게시판입니다.";}else{
echo "<script>alert(\"접근할 수 없습니다.\")</script>";
header("Location: index.php");
}
Inspection 페이지에서 Application에 들어간다음 쿠키 정보를 바꾸면 접속권한이 바뀜 그래서 쿠키가 저장할 수있는 정도 길이의 문자열로 암호화하면 약간 보완 가능
Normaltic Study 3주차 6일