PHP로 로그인이 필요한 사이트를 만드는 방법(제1회)

안녕하세요, 카타야마 학원 철도 연구회입니다.

실은, 철도 연구회에서는 부원 전용 사이트를 만들고 있습니다.



이런 느낌입니다만, 당연히 보기 위해서는 로그인이 필요합니다.

이 사이트에서는 Apache + PHP + SQLite + Bootstrap + jQuery와 같은 상당히 일반적인 기술을 사용하여 로그인 기능을 만들고 있습니다.

그러면 구체적인 만드는 방법을 소개합니다.

로그인을 위한 설정



어떤 페이지에 액세스하든 로그인하려면 페이지가 요청될 때,
  • 로그인했는지 결정
  • 로그인하지 않은 경우 로그인 페이지로 건너 뛰기
  • 로그인하면 페이지 표시

  • 라고 하는 처리를 할 필요가 있습니다.

    이 사이트에서는 모두 공통 파일을 먼저 로드하고 해당 파일에서 이러한 작업을 수행합니다.

    이 때 중요한 것은,
    절대로 로그인 페이지에서는 이 처리를 해서는 안 된다는 것입니다.

    왜냐하면
  • 로그인 페이지로 이동
  • 로그인했는지 결정
  • 로그인하지 않았으므로 로그인 페이지로 리디렉션 (1로 돌아 가기)

  • 무한 루프가 발생하기 때문입니다. 자신도 여기에서는 멈췄습니다.

    이 사이트는 로그인 한 사용자 이름을 $_SESSION['user']에 저장하므로,

    /inc/auth.php
    if(!isset($_SESSION['user'])){
    
        header('Location: ' . BASE_URL . '/login');
    
        exit();
    
    }
    

    라는 처리로 했습니다. BASE_URL에는 사이트 톱 URL이 들어 있습니다.

    이 파일을 모든 페이지에서 require_once 하면 로그인을 강제하게 됩니다.

    이 때 /inc/*에 대한 직접 액세스를 거부합니다.
    이에 대해서는 다음에 설정합니다.
    다음 번 : PHP로 로그인이 필요한 사이트를 만드는 방법(제2회)

    좋은 웹페이지 즐겨찾기