3개의 php 파일을 만듦.
- login_form.php / 첫 페이지 로그인 화면
- login.php / 로그인 성공 화면
- logout.php / 로그인 후 로그아웃 화면
1. login_form
<?php
$id = $_COOKIE[id]; // id 값이 다른 페이지로 이동하므로, GET/POST 대신 COOKIE 사용, Session 보다 보안 취약
if ($id)
{
echo "{$id}님이 로그인 하셨습니다<br>"; // 로그인 되어 있는 상태에서 login_form 화면에 출력되는 화면
echo "<a href = logout.php>로그아웃</a>"; // 로그아웃 url, 로그아웃 클릭하면 연계되는 logout.hph 페이지 HTML
}
else
echo "<form action = login.php method=post>
아이디 : <input type = 'text' name=id><br>
비밀번호 : <input = password name=pw><br>
<input type = submit value=로그인>
</form>";
/* echo 시작 후, HTML이기에 한줄 끝나도 ;(세미클론)과 ""(큰 따음표) 붙이지 않고, HTML 코드 끝나는, form 마지막에 붙인다)
내용안에 작은 따음표 '' 사용 가능 큰 따음표 "" 사용 불가 */
2. login.php
<?php
$id = $_POST[id]; // login_form.php 에서 HTML form안에 method=post를 받아 입력된 id 와 pw 를 받는다
$pw = $_POST[pw];
if($id=="admin" && $pw=="1234") {
setcookie("id",$id); // setcookie 함수. login_form.php 안에 ( {$id}님이 로그인 하셨습니다 )
header("Location : login_form.php"); // 어디서 가져올지 Location 입력 (Location은 href와 유사한 기능)
}
else
echo "<script> // JavaScript 부분 <- 정적인 HTML을 동적 (interactive)으로 만듦
window.alert('입력한 id 또는 password가 틀렸습니다.') // JavaScript 에서 화면 출력 명령어
history.go(-1) // 한 페이지 뒤로 간다. -2 or -5처럼 더 가는 건 안됨. 한 페이지만 가능 /
</script>";
/* echo 시작 후, Java Scrip 부분이기에 <script> 앞에, </script> 뒤에 만 큰 따음표를 붙여 묶어준다.
history.back() 함수로 몇페이지 더 뒤로 갈 수 있지만 다시 login 해야한다. */
3. logout.php
<?php
setcookie("id",""); // setcookie (쿠키명,쿠키값,만료시간,경로,도메인,보안,httponly);
header("Location: login_form.php") // Location 의 login_form.pop 페이지로 이동
?>
setcookie (쿠키명,쿠키값,만료시간,경로,도메인,보안,httponly);
쿠키명(필수) : 쿠키 이름
쿠키값(선택) : 이름에 입력될 값
만료시간(선택) : Default 값은 0이며, 쿠키가 유지 될 시간 설정.
경로(선택) : 경로 지정으로 특정 위치와 하위 경로에서만 사용 가능하도록 설정
슬러쉬(/) : 슬러쉬 기호를 값으로 입력 > 전체 경로에서 사용됨을 의미
도메인(선택) : 사용될 도메인을 지정 가능. 서브 도메인 입력 시, 해당 서브 도메인만 사용가능
보안(선택) : 보안 프로토콜 HTTPS 에서만 사용 가능하도록 설정
httponly : HTTP 에서만 사용 가능하도록 스크립트에 의한 쿠키 접근을 허용 안하게 함.
PHP Cookie & Session (0) | 2022.06.07 |
---|---|
PHP Cookie & Session (0) | 2022.06.07 |
PHP 주소록 만들기 (0) | 2022.06.07 |
PHP 게시판 만들기 (0) | 2022.06.07 |
PHP Login(COOKIE) (0) | 2022.06.07 |