웹프로그래밍2012. 8. 29. 14:55

드디어 마지막으로 만들 로그아웃 부분이다. 로그아웃은 앞에서 만든 로그인 유지를 생각하면 쉽다.

로그인 유지를 위해서 만들어낸 정보를 다시 그대로 파기시키면 끝이기 때문이다.

따라서, 파기해야 할 값은 바로:

1) 세션에 등록된 값 파기

2) 데이터베이스에 등록된 값 파기

정도로 볼 수 있다.



<?php


//세션을 사용하기 위해 선언하는 부분

session_cache_limiter('');

session_start();

//데이터베이스에 접근하기 위한 부분

$dbid = "DB아이디";

$dbpass = "DB비밀번호";

$dbname ="DB네임";

$dbhost = "localhost";

$sqlConn = mysql_connect($dbhost, $dbid, $dbpass);

mysql_select_db($dbname, $sqlConn);


//세션에 등록된 아이디 가져오기

$id = $_SESSION['id'];


//세션에 등록된 토큰 파기

$_SESSION['token'] = 0;

//세션에 등록된 아이디 파기

$_SESSION['id'] = 0;

//데이터베이스에서 토큰 초기화

$tokenKill = "UPDATE MEMBERS SET token=0 WHERE id='$id'";

$tokenKill = mysql_query($tokenKill);

?>


값을 모두 0으로 초기화 하는 것이 중요하다.


Posted by 김또또
웹프로그래밍2012. 8. 27. 02:22

<?


$key = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789^/';


for($i=0;$i<64;$i++) {

$token .= $key[rand(0,63)];

}


?>


$key가 가지고 있는 64자리의 문자를 rand()와 for()를 활용하여 $token의 64자리의 난수 값을 만든다.


여기서 만든 $token을 세션이나 쿠키 등에 보관하여 대조행위를 이끌어낼 수 있다.


Posted by 김또또