별도 페이지에서 로그인 방법 문의
본문
login_2.php 라는 파일을 만들고
이미 저장된 전화번호가 맞는지 문자로 확인한뒤 로그인 처리를 하려 합니다.
로그인 처리란걸 login_check.php 보고 코드 복사해 사용하려는데
set_session('ss_mb_id', '아이디'); 이렇게만 하면 되는건가요?
테스트로 해보면 로그인이 된거로는 되던데... 아래 질문에서 문제가...
한번 로그인하면 최소 1년은 끊어지지 않게 하고 싶은데..
// 쿠키 한달간 저장
$key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['SERVER_SOFTWARE'] . $_SERVER['HTTP_USER_AGENT'] . $mb['mb_password']);
set_cookie('ck_mb_id', $mb['mb_id'], 86400 * 31);
set_cookie('ck_auto', $key, 86400 * 31);
위 코드를 사용하면 될듯한데 set_session('ss_mb_id', '아이디'); 로 로그인을 한 경우라서
$mb['mb_id']나 $mb['mb_password']를 가져올수가 없을거 같은데
조언좀 부탁드리겠습니다.
!-->
답변 1
아래의 코드를 참고를 해보시겠어요?
1. login_2.php 전화번호 확인 후 세션을 설정하고, 자동 로그인 쿠키 설정
<?php
include_once('./_common.php'); // 그누보드 공통 파일 포함
// 예를 들어, 전화번호 확인 로직을 여기에 작성
$phone_number = $_POST['phone_number']; // 사용자가 입력한 전화번호
$mb_id = $_POST['mb_id']; // 사용자가 입력한 아이디
// 전화번호 확인 로직 (예시)
$sql = "SELECT * FROM g5_member WHERE mb_id = '$mb_id' AND mb_hp = '$phone_number'";
$result = sql_fetch($sql);
if ($result) {
// 세션 설정
set_session('ss_mb_id', $mb_id);
// 자동 로그인 쿠키 설정 (1년 동안 유지)
$key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['SERVER_SOFTWARE'] . $_SERVER['HTTP_USER_AGENT'] . $result['mb_password']);
set_cookie('ck_mb_id', $mb_id, 86400 * 365); // 1년
set_cookie('ck_auto', $key, 86400 * 365); // 1년
// 로그인 후 이동할 페이지로 리디렉션
goto_url('/bbs/board.php?bo_table=free'); // 예시: 자유게시판으로 이동
} else {
// 전화번호가 일치하지 않는 경우
alert('전화번호가 일치하지 않습니다.', '/login_2.php'); // 로그인 페이지로 리디렉션
}
?>
2. 자동 로그인 처리 common.php
<?php
// _common.php 또는 초기화 파일에 추가
if (!isset($_SESSION['ss_mb_id']) && get_cookie('ck_auto')) {
$mb_id = get_cookie('ck_mb_id');
$key = get_cookie('ck_auto');
$sql = "SELECT * FROM g5_member WHERE mb_id = '$mb_id'";
$mb = sql_fetch($sql);
if ($mb) {
$real_key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['SERVER_SOFTWARE'] . $_SERVER['HTTP_USER_AGENT'] . $mb['mb_password']);
if ($key === $real_key) {
set_session('ss_mb_id', $mb_id);
} else {
// 쿠키 삭제
set_cookie('ck_mb_id', '', -1);
set_cookie('ck_auto', '', -1);
}
}
}
?>