首頁  >  問答  >  主體

使用會話和會話變數的PHP登入腳本

<p>我剛剛在PHP中完成了一個完整的登入和註冊系統,但我的問題是我還沒有使用任何會話。我在PHP方面是個新手,以前從未使用過會話。我想要做的是,用戶在註冊並填寫登入表單後,仍然停留在同一頁。因此,頁面的一部分將是如果會話已登錄,另一部分將是否則(使用者未登錄,因此顯示登入表單)。有人可以告訴我如何入門嗎? </p>
P粉726133917P粉726133917448 天前474

全部回覆(2)我來回復

  • P粉573809727

    P粉5738097272023-08-22 13:18:23

    這是使用PHP編寫的最簡單的會話程式碼。 我們使用了3個文件。

    login.php

    ##
    <?php  session_start();   // 使用此函数启动会话
    
    
    if(isset($_SESSION['use']))   // 检查会话是否已存在,如果存在则直接重定向到主页
     {
        header("Location:home.php"); 
     }
    
    if(isset($_POST['login']))   // 检查用户是否点击了登录按钮
    {
         $user = $_POST['user'];
         $pass = $_POST['pass'];
    
          if($user == "Ank" && $pass == "1234")  // 用户名默认为“Ank”,密码默认为1234
             {                                   
    
              $_SESSION['use']=$user;
    
    
             echo '<script type="text/javascript"> window.open("home.php","_self");</script>';            // 登录成功后重定向到home.php
    
            }
    
            else
            {
                echo "无效的用户名或密码";        
            }
    }
     ?>
    <html>
    <head>
    
    <title> 登录页面   </title>
    
    </head>
    
    <body>
    
    <form action="" method="post">
    
        <table width="200" border="0">
      <tr>
        <td>  用户名</td>
        <td> <input type="text" name="user" > </td>
      </tr>
      <tr>
        <td> 密码  </td>
        <td><input type="password" name="pass"></td>
      </tr>
      <tr>
        <td> <input type="submit" name="login" value="登录"></td>
        <td></td>
      </tr>
    </table>
    </form>
    
    </body>
    </html>

    home.php

    #
    <?php   session_start();  ?>
    
    <html>
      <head>
           <title> 主页 </title>
      </head>
      <body>
    <?php
          if(!isset($_SESSION['use'])) // 如果会话未设置,则重定向到登录页面
           {
               header("Location:Login.php");  
           }
    
              echo $_SESSION['use'];
    
              echo "登录成功";
    
              echo "<a href='logout.php'> 退出</a> "; 
    ?>
    </body>
    </html>

    logout.php

    ##
    <?php
     session_start();
    
      echo "成功退出";
      session_destroy();   // 销毁会话
      header("Location: Login.php");
    ?>

    回覆
    0
  • P粉348088995

    P粉3480889952023-08-22 12:03:57

    開始會話,需要在頁面頂部或在呼叫會話程式碼之前說這句話

    session_start();

    將使用者ID放入會話中以追蹤誰已登入

    $_SESSION['user'] = $user_id;

    檢查是否有人已登入

    if (isset($_SESSION['user'])) {
       // 已登录
     } else {
       // 未登录
     }

    找到已登入使用者的ID

    $_SESSION['user']

    在您的頁面上

    <?php
     session_start();
    
    
     if (isset($_SESSION['user'])) {
     ?>
       已登录的HTML和代码在这里
     <?php
    
     } else {
       ?>
       未登录的HTML和代码在这里
       <?php
     }

    回覆
    0
  • 取消回覆