PHP 세션 유지 및 세션 없애는법 !! (뒤로가기 버튼시 페이지 로딩 막기.)

WEB DEVELOPER/PHP|2018. 12. 19. 12:55

이번 시간엔 로그인 -> 서비스 이용 -> 로그아웃 이프로세스에 꼭 필요한 세션변수 정해주기...및 


세션파괴(세션 없애기) 방법을 알아보겠습니다...



※세션을 생성하자.


항상 말씀드리지만 저는 따로 include 시켜서 사용합니다!

DB연결 설정 이라던지 세션이라던지 하는것들 항상 사용하는것들은 include 하는 text 파일에 몽땅 몰아주면 됩니다!

DB를 사용하는 곳엔 session도 딸려가기에 ...


형식

void session_set_cookie_params(int $lifetime [, string $path [, sting $domain [, bool $secure [, bool $httponly ]]]])



session_set_cookie_params(0,"/"); // 브라우저 끄면 초기화 되도록하려면 0을 입력하시고 "/" 를주면 모든 사이트에 연결된 경로에 다사용할수 있습니다.

session_start(); //세션시작.


이제 세션변수 지정해서 사용하시면됩니다.. DB에서 아이디 이름, 주소 ,등등등 정보를 가져오고


foreach를 돌려서 사용하시던 일일이 지정해서 사용하셔도 되구요


//$_SESSION['id'] = $row['id']; //방식1




$row = $db_obj->fetch_array("select * from 테이블 where 조건문");

foreach($row as $key => $value){

@session_register($key);

$_SESSION[$key] = $value;

}


//방식 2



세션 유지방법 

세션 유지 방법은 매우 간단합니다.

세션 유지할 페이지에 session_start(); 만 정의해주면 유지가 계속됩니다.

※세션 파괴방법(로그아웃)

​세션 파괴방법  

session_start(); << 유지먼저 써주고.

session_destroy(); << 세션을 파괴한다. 세션해제..

session_unset  이라는 놈이 있는데 이놈은 그냥 세션을 비워버리는것이므로 

세션을 완전히 해제해버리는거랑은 다릅니다 ! 달라요


header("Location:ad_login.php"); //세션을 해제한후  로그인 페이지로 이동.


※세션 파괴 후 뒤로가기 막아버리기.

 세션을 파괴한후에 로그인페이지로 이동했지만.

뒤로가기 버튼을 누르면 메인페이지로 이동이 될겁니다. 로그인정보같은건표시안되도 컨텐츠화면이 나올껍니다.

이걸방지하는방법은


메인페이지에


if(!isset($_SESSION['user_id']) || !isset($_SESSION['name']) ) {

echo "<script>alert('로그인이 필요한 서비스 입니다.');</script>";

echo "<meta http-equiv='refresh' content='0;url=ad_login.php'>";

exit;

}


제 홈페이지는 


ad_main.php 에 저 문법이 들어가있습니다.


user_id 세션 값과 name이 없으면 

'로그인이 필요한 서비스 입니다.' 라고 경고창을 띄운후 로그인페이지로 이동해버리죠..


여기까지 세션 관리 및 해제 방법을 알아봤습니다.


궁금한것 있으면 댓글 달아주세요~ 여기까지~

댓글()