Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan PHP untuk menentukan sama ada anda tidak log masuk dan melompat

Cara menggunakan PHP untuk menentukan sama ada anda tidak log masuk dan melompat

PHPz
PHPzasal
2023-04-03 14:40:22758semak imbas

Dengan perkembangan teknologi Internet, banyak laman web perlu menggunakan fungsi log masuk pengguna untuk membezakan pengguna yang berbeza dan menyediakan perkhidmatan khusus kepada mereka. Apabila membangunkan fungsi log masuk pengguna di tapak web, adalah penting untuk mereka bentuk mekanisme pengesahan log masuk. Jika tiada mekanisme pengesahan yang sepadan, akan ada risiko keselamatan.

Berikut ialah kaedah untuk menentukan status log masuk pengguna, yang dilaksanakan menggunakan bahasa PHP.

Tentukan fungsi pengesahan log masuk dalam fail pengepala tapak web. Fungsi ini menentukan sama ada pengguna dilog masuk dengan menentukan sama ada pembolehubah sesi tertentu wujud Jika pembolehubah sesi wujud, ia bermakna pengguna telah log masuk, jika tidak ia bermakna pengguna tidak log masuk. Kod pseudo fungsi ini adalah seperti berikut:

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

Seterusnya, panggil fungsi di atas dalam halaman web yang memerlukan pengesahan log masuk. Jika pengguna tidak log masuk, fungsi ini akan mengarahkan pengguna ke halaman log masuk, iaitu halaman login.php.

Dalam halaman login.php, pengguna boleh memasukkan nama pengguna dan kata laluan mereka dan menyerahkan borang. Kod PHP latar belakang akan mengesahkan sama ada nama pengguna dan kata laluan adalah betul Jika betul, maklumat pengguna akan disimpan dalam pembolehubah sesi untuk menunjukkan bahawa pengguna telah log masuk. Kod PHP adalah seperti berikut:

<?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>

Dalam halaman index.php, kita perlu menggunakan fungsi check_login() untuk menentukan sama ada pengguna telah log masuk. Jika pengguna log masuk, kandungan halaman akan dipaparkan jika pengguna tidak log masuk, fungsi akan mengarahkan pengguna ke halaman login.php. Kod PHP adalah seperti berikut:

<?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>

Ringkasnya, kaedah ini memerlukan terlebih dahulu mentakrifkan fungsi check_login() dalam fail pengepala dan memanggil fungsi ini dalam halaman yang memerlukan pengesahan log masuk. Pada masa yang sama, maklumat log masuk pengguna perlu disimpan dalam pembolehubah sesi dalam kod PHP halaman pengesahan log masuk, dan pembolehubah sesi digunakan untuk menentukan status log masuk pengguna dalam halaman yang memerlukan pengesahan. Kaedah ini mudah dan mudah untuk dilaksanakan, di samping memberikan jaminan yang baik dari segi keselamatan dan pengalaman pengguna.

Atas ialah kandungan terperinci Cara menggunakan PHP untuk menentukan sama ada anda tidak log masuk dan melompat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn