그누보드 프로그램을 만들려고합니다! 간단한 질문이에요! 정보
그누보드 프로그램을 만들려고합니다! 간단한 질문이에요!본문
로그인한 사람의 고유값을 얻고싶은데 어떤파일을 include 해야하고
그안에 어떤변수가 로그인한 사람의 고유값인가요? ㅎㅎ 알려주세요!
미리감사드립니다!!ㅎㅎ
그안에 어떤변수가 로그인한 사람의 고유값인가요? ㅎㅎ 알려주세요!
미리감사드립니다!!ㅎㅎ
댓글 전체
<?
include_once("./_common.php");
?>
선언하고.
$member = get_member($_SESSION[ss_mb_id]);
던가요????
include_once("./_common.php");
?>
선언하고.
$member = get_member($_SESSION[ss_mb_id]);
던가요????
아래는 로그인을 하게되면 거치게 되는 login_check.php 소스입니다.
<?
include_once("./_common.php");
$mb_id = $_POST[mb_id];
//로그인폼에서 넘어온 아이디값을 $mb_id라는 변수에 넣는다
$mb_password = $_POST[mb_password];
//로그인폼에서 넘어온 패스워드값을 $mb_password라는 변수에 넣는다
if (!trim($mb_id) || !trim($mb_password))
//변수의 좌우 공백을 제거한 값이 없다면
//결국 아이디나 패스워드로 넘어온 값이 없다면
alert("회원아이디나 패스워드가 공백이면 안됩니다.");
//경고창을 띄운다.
/*
// 자동 스크립트를 이용한 공격에 대비하여 로그인 실패시에는 일정시간이 지난후에 다시 로그인 하도록 함
if ($check_time = get_session("ss_login_check_time")) {
//세션변수에 저장된 로그인시간을 가져와서 $check_time변수넣는다.
//이것이 값이 있다면 = 세션에 저장된 로긴타임값이 있다는 뜻
//없으면 아래 루틴을 할 필요가 없으므로 넣은듯
//아래 설명은 생략
if ($check_time > $g4['server_time'] - 15) {
alert("로그인 실패시에는 15초 이후에 다시 로그인 하시기 바랍니다.");
}
}
set_session("ss_login_check_time", $g4['server_time']);
//세션변수에 서버의 시간을 ss_login_check_time이라는 키 값으로 저장합니다.
*/
$mb = get_member($mb_id);
//get_member함수에 위에서 설정한 아이디값으로 회원의 정보를 가져오는 함수를 실행하여
//$mb에 넣어둔다.
// 가입된 회원이 아니다. 패스워드가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는
// 회원아이디를 입력해 보고 맞으면 또 패스워드를 입력해보는 경우를 방지하기 위해서입니다.
// 불법사용자의 경우 회원아이디가 틀린지, 패스워드가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다.
if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password])) {
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}
// 차단된 아이디인가?
if ($mb[mb_intercept_date] && $mb[mb_intercept_date] <= date("Ymd", $g4[server_time])) {
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb[mb_intercept_date]);
alert("회원님의 아이디는 접근이 금지되어 있습니다.\\n\\n처리일 : $date");
}
// 탈퇴한 아이디인가?
if ($mb[mb_leave_date] && $mb[mb_leave_date] <= date("Ymd", $g4[server_time])) {
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb[mb_leave_date]);
alert("탈퇴한 아이디이므로 접근하실 수 없습니다.\\n\\n탈퇴일 : $date");
}
if ($config[cf_use_email_certify] && !preg_match("/[1-9]/", $mb[mb_email_certify]))
alert("메일인증을 받으셔야 로그인 하실 수 있습니다.\\n\\n회원님의 메일주소는 $mb[mb_email] 입니다.");
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
@include_once("$member_skin_path/login_check.skin.php");
// 회원아이디 세션 생성
set_session('ss_mb_id', $mb[mb_id]);
// FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106
set_session('ss_mb_key', md5($mb[mb_datetime] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']));
// 3.26
// 아이디 쿠키에 한달간 저장
if ($auto_login) {
// 3.27
// 자동로그인 ---------------------------
// 쿠키 한달간 저장
$key = md5($_SERVER[SERVER_ADDR] . $_SERVER[REMOTE_ADDR] . $_SERVER[HTTP_USER_AGENT] . $mb[mb_password]);
set_cookie('ck_mb_id', $mb[mb_id], 86400 * 31);
set_cookie('ck_auto', $key, 86400 * 31);
// 자동로그인 end ---------------------------
} else {
set_cookie('ck_mb_id', '', 0);
set_cookie('ck_auto', '', 0);
}
if ($url)
{
$link = urldecode($url);
// 2003-06-14 추가 (다른 변수들을 넘겨주기 위함)
if (preg_match("/\?/", $link))
$split= "&";
else
$split= "?";
// $_POST 배열변수에서 아래의 이름을 가지지 않은 것만 넘김
foreach($_POST as $key=>$value)
{
if ($key != "mb_id" && $key != "mb_password" && $key != "x" && $key != "y" && $key != "url")
{
$link .= "$split$key=$value";
$split = "&";
}
}
}
else
$link = $g4[path];
goto_url($link);
?>
쭉 살펴보면 로그인을 하면
로그인 사용자의 로그인 타임을 세션변수에 넣어두고
회원아이디와 고유키를 생성해서 세션변수에 넣어두고
한달짜리 쿠키에 아이디와 자동로그인여부를 저장한다.
또 $mb 에 get_member함수를 실행한 결과값을 넣어두네요
$mb = get_member($mb_id);
common.lib.php에 함수를 보니
function get_member($mb_id, $fields='*')
{
global $g4;
return sql_fetch(" select $fields from $g4[member_table] where mb_id = TRIM('$mb_id') ");
}
회원정보 테이블에서 레코드를 가져와서 값을 리턴하네요, 인자가 없으면 *로 쿼리를 하니
회원정보 테이블에서 모든 필드의 값을 가져옵니다.
$mb는 회원정보테이블의 필드구분자와 값으로 이용할 수 있습니다.
$mb[필드명], 혹은 $mb[인덱스] 로 가져와 쓸 수 있네요
위에 채택된 답변에서는 get_member함수 결과 값을 $member로 받았음을 주의하세요
<?
include_once("./_common.php");
$mb_id = $_POST[mb_id];
//로그인폼에서 넘어온 아이디값을 $mb_id라는 변수에 넣는다
$mb_password = $_POST[mb_password];
//로그인폼에서 넘어온 패스워드값을 $mb_password라는 변수에 넣는다
if (!trim($mb_id) || !trim($mb_password))
//변수의 좌우 공백을 제거한 값이 없다면
//결국 아이디나 패스워드로 넘어온 값이 없다면
alert("회원아이디나 패스워드가 공백이면 안됩니다.");
//경고창을 띄운다.
/*
// 자동 스크립트를 이용한 공격에 대비하여 로그인 실패시에는 일정시간이 지난후에 다시 로그인 하도록 함
if ($check_time = get_session("ss_login_check_time")) {
//세션변수에 저장된 로그인시간을 가져와서 $check_time변수넣는다.
//이것이 값이 있다면 = 세션에 저장된 로긴타임값이 있다는 뜻
//없으면 아래 루틴을 할 필요가 없으므로 넣은듯
//아래 설명은 생략
if ($check_time > $g4['server_time'] - 15) {
alert("로그인 실패시에는 15초 이후에 다시 로그인 하시기 바랍니다.");
}
}
set_session("ss_login_check_time", $g4['server_time']);
//세션변수에 서버의 시간을 ss_login_check_time이라는 키 값으로 저장합니다.
*/
$mb = get_member($mb_id);
//get_member함수에 위에서 설정한 아이디값으로 회원의 정보를 가져오는 함수를 실행하여
//$mb에 넣어둔다.
// 가입된 회원이 아니다. 패스워드가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는
// 회원아이디를 입력해 보고 맞으면 또 패스워드를 입력해보는 경우를 방지하기 위해서입니다.
// 불법사용자의 경우 회원아이디가 틀린지, 패스워드가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다.
if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password])) {
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}
// 차단된 아이디인가?
if ($mb[mb_intercept_date] && $mb[mb_intercept_date] <= date("Ymd", $g4[server_time])) {
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb[mb_intercept_date]);
alert("회원님의 아이디는 접근이 금지되어 있습니다.\\n\\n처리일 : $date");
}
// 탈퇴한 아이디인가?
if ($mb[mb_leave_date] && $mb[mb_leave_date] <= date("Ymd", $g4[server_time])) {
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb[mb_leave_date]);
alert("탈퇴한 아이디이므로 접근하실 수 없습니다.\\n\\n탈퇴일 : $date");
}
if ($config[cf_use_email_certify] && !preg_match("/[1-9]/", $mb[mb_email_certify]))
alert("메일인증을 받으셔야 로그인 하실 수 있습니다.\\n\\n회원님의 메일주소는 $mb[mb_email] 입니다.");
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
@include_once("$member_skin_path/login_check.skin.php");
// 회원아이디 세션 생성
set_session('ss_mb_id', $mb[mb_id]);
// FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106
set_session('ss_mb_key', md5($mb[mb_datetime] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']));
// 3.26
// 아이디 쿠키에 한달간 저장
if ($auto_login) {
// 3.27
// 자동로그인 ---------------------------
// 쿠키 한달간 저장
$key = md5($_SERVER[SERVER_ADDR] . $_SERVER[REMOTE_ADDR] . $_SERVER[HTTP_USER_AGENT] . $mb[mb_password]);
set_cookie('ck_mb_id', $mb[mb_id], 86400 * 31);
set_cookie('ck_auto', $key, 86400 * 31);
// 자동로그인 end ---------------------------
} else {
set_cookie('ck_mb_id', '', 0);
set_cookie('ck_auto', '', 0);
}
if ($url)
{
$link = urldecode($url);
// 2003-06-14 추가 (다른 변수들을 넘겨주기 위함)
if (preg_match("/\?/", $link))
$split= "&";
else
$split= "?";
// $_POST 배열변수에서 아래의 이름을 가지지 않은 것만 넘김
foreach($_POST as $key=>$value)
{
if ($key != "mb_id" && $key != "mb_password" && $key != "x" && $key != "y" && $key != "url")
{
$link .= "$split$key=$value";
$split = "&";
}
}
}
else
$link = $g4[path];
goto_url($link);
?>
쭉 살펴보면 로그인을 하면
로그인 사용자의 로그인 타임을 세션변수에 넣어두고
회원아이디와 고유키를 생성해서 세션변수에 넣어두고
한달짜리 쿠키에 아이디와 자동로그인여부를 저장한다.
또 $mb 에 get_member함수를 실행한 결과값을 넣어두네요
$mb = get_member($mb_id);
common.lib.php에 함수를 보니
function get_member($mb_id, $fields='*')
{
global $g4;
return sql_fetch(" select $fields from $g4[member_table] where mb_id = TRIM('$mb_id') ");
}
회원정보 테이블에서 레코드를 가져와서 값을 리턴하네요, 인자가 없으면 *로 쿼리를 하니
회원정보 테이블에서 모든 필드의 값을 가져옵니다.
$mb는 회원정보테이블의 필드구분자와 값으로 이용할 수 있습니다.
$mb[필드명], 혹은 $mb[인덱스] 로 가져와 쓸 수 있네요
위에 채택된 답변에서는 get_member함수 결과 값을 $member로 받았음을 주의하세요