사용자가 웹사이트에 로그인할 때 이전에 검색하던 페이지로 다시 리디렉션하는 것이 바람직한 경우가 많습니다. 이는 원활한 사용자 경험을 제공하고 로그인 후 수동 탐색이 필요하지 않게 합니다.
이 목표를 달성하기 위한 일반적인 접근 방식은 사용자의 현재 페이지 URL을 $_GET 변수로 로그인 양식에 전달하는 것입니다. 예를 들어, 사용자가 댓글을 남기려고 할 때 기사 페이지 "comment.php?articleid=17"에 있는 경우 URL에는 현재 위치가 포함됩니다.
로그인 페이지(login.php) 그런 다음 $_GET['location']이 있는지 확인해야 합니다. 존재하는 경우 페이지는 로그인 성공 후 사용자를 해당 특정 URL로 리디렉션할 수 있습니다. 구현 방법은 다음과 같습니다.
login.php에서:
<code class="php">echo '<input type="hidden" name="location" value="'; if(isset($_GET['location'])) { echo htmlspecialchars($_GET['location']); } echo '" />';</code>
이 숨겨진 입력 필드는 현재 페이지 URL을 저장하고 로그인 양식 제출과 함께 보냅니다.
login-check.php에서:
<code class="php">session_start(); $redirect = NULL; if(isset($_POST['location']) && $_POST['location'] != '') { $redirect = $_POST['location']; } if((empty($username) OR empty($password) AND !isset($_SESSION['id_login']))) { $url = 'login.php?p=1'; if(isset($redirect)) { $url .= '&location=' . urlencode($redirect); } header("Location: " . $url); exit(); } elseif (!user_exists($username,$password) AND !isset($_SESSION['id_login'])) { $url = 'login.php?p=2'; if(isset($redirect)) { $url .= '&location=' . urlencode($redirect); } header("Location:" . $url); exit(); } elseif(isset($_SESSION['id_login'])) { if($redirect) { header("Location:". $redirect); } else { header("Location:login.php?p=3"); } exit(); }</code>
이 login-check.php 스크립트에서:
이 메커니즘을 사용하면 사용자가 로그인하기 전에 검색하던 페이지로 원활하게 리디렉션할 수 있어 사용자 경험이 향상되고 로그인 프로세스가 단순화됩니다.
위 내용은 로그인 성공 후 사용자를 이전 페이지로 다시 리디렉션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!