별도 페이지에서 로그인 방법 문의

별도 페이지에서 로그인 방법 문의

QA

별도 페이지에서 로그인 방법 문의

답변 1

본문

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);
        }
    }
}
?>
 

 

 

 

 

아 죄송한데. 추가질문좀..

위 login-2.php로 로그인 한 뒤 이용하다
다음에 다시 방문했을경우 common.php의 자동로그인 처리과정을 거쳐서 로그인(login-2.php) 과정을 건너띄는 건가요?

login-2.php에서
if(!get_session('ss_mb_id')) { 전번 확인 로직 }
이리 하면 되는거 아닐지..

common.php의 자동로그인이 왜 필요한지를 이해 못해서요

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #php ×
전체 15,429
© SIRSOFT
현재 페이지 제일 처음으로