suchen

Heim  >  Fragen und Antworten  >  Hauptteil

PHP-Anmeldeskript mit Sitzungs- und Sitzungsvariablen

<p>Ich habe gerade ein vollständiges Anmelde- und Registrierungssystem in PHP fertiggestellt, aber mein Problem ist, dass ich noch keine Sitzungen verwendet habe. Ich bin PHP-Neuling und habe noch nie Sitzungen verwendet. Was ich erreichen möchte, ist, dass der Benutzer, nachdem er sich registriert und das Anmeldeformular ausgefüllt hat, immer noch auf derselben Seite bleibt. Ein Teil der Seite ist also vorhanden, wenn die Sitzung angemeldet ist, und der andere Teil ist anders (der Benutzer ist nicht angemeldet, daher wird das Anmeldeformular angezeigt). Kann mir jemand sagen, wie ich anfangen soll? </p>
P粉726133917P粉726133917495 Tage vor521

Antworte allen(2)Ich werde antworten

  • 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");
    ?>

    Antwort
    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
     }

    Antwort
    0
  • StornierenAntwort