"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP 로그인 후 이전 페이지로 리디렉션하는 방법은 무엇입니까?

PHP 로그인 후 이전 페이지로 리디렉션하는 방법은 무엇입니까?

2024-11-08에 게시됨
검색:754

How to Redirect to Previous Page After Login in PHP?

로그인 후 이전 페이지로 리디렉션

로그인 성공 후 사용자를 의도한 목적지로 리디렉션할 수 없다는 점은 실망스러운 장애물이 될 수 있습니다. 특정 기술을 통합하고 잠재적인 함정을 처리함으로써 이 문제를 효과적으로 해결할 수 있습니다.

해결책: $_GET 변수 활용

일반적인 접근 방식은 $ _GET 변수는 사용자의 현재 페이지를 캡처합니다. 로그인 페이지로 리디렉션할 때 이 변수를 추가하면 스크립트가 인증 성공 후 원하는 대상을 검색할 수 있습니다. 예를 들어, 사용자가 기사를 읽고 댓글을 남기려고 하면 댓글 섹션의 URL(예: comment.php?articleid=17)이 $_GET 변수를 통해 로그인 페이지에 전달되어야 합니다.

구현:

코드에서 제공됨:

  1. login.php: 현재 페이지를 $_GET 매개변수로 사용하여 로그인 페이지로 사용자를 보냅니다:

    header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));
  2. login-check.php: $_POST['location'] 변수에서 대상 URL을 검색합니다. :

    $redirect = NULL;
    if($_POST['location'] != '') {
     $redirect = $_POST['location'];
    }
  3. 로그인에 성공하면 사용자를 대상 URL 또는 기본 페이지로 리디렉션합니다(아무 것도 지정하지 않은 경우):

    if(isset($_SESSION['id_login'])) {
     // if login is successful and there is a redirect address, send the user directly there
     if($redirect) {
         header("Location:". $redirect);
     } else {
         header("Location:login.php?p=3");
     }
     exit();
    }

주의사항:

  • 도착 URL 확인: 도착 URL이 안전한지 확인하세요. 악성 콘텐츠가 포함되어 있습니다.
  • urlencode 사용: 전달할 때 urlencode()를 사용하세요. 특수 문자를 올바르게 처리하기 위한 $_GET 매개변수로서의 URL입니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3