상세 컨텐츠

본문 제목

세션(session)을 이용한 로그인 페이지 코드

BackEnd/PHP

by H_Develop 2022. 6. 7. 13:43

본문

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 에서만 사용 가능하도록 스크립트에 의한 쿠키 접근을 허용 안하게 함.

'BackEnd > PHP' 카테고리의 다른 글

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

관련글 더보기