> 백엔드 개발 > PHP 문제 > PHP를 사용하여 로그인되어 있지 않은지 확인하고 점프하는 방법

PHP를 사용하여 로그인되어 있지 않은지 확인하고 점프하는 방법

PHPz
풀어 주다: 2023-04-03 16:00:01
원래의
782명이 탐색했습니다.

인터넷 기술이 발전함에 따라 많은 웹사이트에서는 다양한 사용자를 구별하고 특정 서비스를 제공하기 위해 사용자 로그인 기능을 사용해야 합니다. 웹사이트에서 사용자 로그인 기능을 개발할 때 로그인 확인 메커니즘을 설계하는 것이 중요합니다. 해당 검증 메커니즘이 없으면 보안 위험이 발생합니다.

다음은 사용자의 로그인 상태를 확인하는 방법으로 PHP 언어를 사용하여 구현한 것입니다.

웹사이트 헤더 파일에 로그인 인증 기능을 정의하세요. 특정 세션 변수가 존재하는지를 판단하여 사용자의 로그인 여부를 판단하는 기능입니다. 해당 세션 변수가 존재하면 사용자가 로그인되어 있다는 의미이고, 그렇지 않으면 사용자가 로그인되어 있지 않다는 의미입니다. 이 함수의 의사 코드는 다음과 같습니다.

function check_login() {
   if( !isset($_SESSION['username']) ) {
      header("location: login.php");
      exit();
   }
}
로그인 후 복사

다음으로 로그인 인증이 필요한 웹 페이지에서 위 함수를 호출합니다. 사용자가 로그인되어 있지 않은 경우, 이 기능은 사용자를 login.php 페이지인 로그인 페이지로 리디렉션합니다.

login.php 페이지에서 사용자는 사용자 이름과 비밀번호를 입력하고 양식을 제출할 수 있습니다. 백그라운드 PHP 코드는 사용자 이름과 비밀번호가 올바른지 확인합니다. 올바른 경우 사용자 정보가 세션 변수에 저장되어 사용자가 로그인했음을 나타냅니다. PHP 코드는 다음과 같습니다.

<?php
session_start(); // 开启session

if( $_SERVER[&#39;REQUEST_METHOD&#39;] == &#39;POST&#39; ) {
   // 获取用户名和密码
   $username = $_POST[&#39;username&#39;];
   $password = $_POST[&#39;password&#39;];

   // 判断用户名和密码是否正确,假设用户名密码正确
   if( $username == &#39;admin&#39; && $password == &#39;admin123&#39; ) {
      $_SESSION[&#39;username&#39;] = $username; // 将用户名存入session
      header("location: index.php"); // 登录成功重定向到 index.php
      exit();
   } else {
      $msg = "用户名或密码错误,请重新输入!";
   }
}
?>

<!-- 在HTML代码中显示错误信息 -->
<html>
   <head>
      <title>Login Page</title>
   </head>

   <body>
      <h2>Login Page</h2>

      <?php if(isset($msg)) { ?>
         <p style="color:red;"><?php echo $msg; ?></p>
      <?php } ?>

      <form method="post">
         <label>Username:</label>
         <input type="text" name="username"><br><br>

         <label>Password:</label>
         <input type="password" name="password"><br><br>

         <input type="submit" value="Login">
      </form>
   </body>
</html>
로그인 후 복사

index.php 페이지에서 check_login() 함수를 사용하여 사용자가 로그인했는지 확인해야 합니다. 사용자가 로그인되어 있으면 페이지의 내용이 표시됩니다. 사용자가 로그인되어 있지 않으면 이 기능은 사용자를 login.php 페이지로 리디렉션합니다. PHP 코드는 다음과 같습니다.

<?php
session_start(); // 开启session
include_once("auth.php"); // 包含头文件

check_login(); // 判断用户登录状态
?>

<html>
   <head>
      <title>Index Page</title>
   </head>

   <body>
      <h2>Index Page</h2>

      <p>Welcome, <?php echo $_SESSION[&#39;username&#39;]; ?> !</p>

      <a href="logout.php">Logout</a>
   </body>
</html>
로그인 후 복사

요약하자면 이 방법을 사용하려면 먼저 헤더 파일에 check_login() 함수를 정의하고 로그인 인증이 필요한 페이지에서 이 함수를 호출해야 합니다. 동시에 로그인 확인 페이지의 PHP 코드에 있는 세션 변수에 사용자 로그인 정보가 저장되어야 하며, 세션 변수는 확인이 필요한 페이지에서 사용자의 로그인 상태를 확인하는 데 사용됩니다. 이 방법은 간단하고 구현하기 쉬우며 보안 및 사용자 경험 측면에서 우수한 보장을 제공합니다.

위 내용은 PHP를 사용하여 로그인되어 있지 않은지 확인하고 점프하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿