簡體   English   中英

使用php中的會話登錄/注銷

[英]Login / Logout using session in php

我正在使用帶有會話概念的php進行登錄注銷。 創建了4個文件

  1. 的login.php
  2. checklogin.php
  3. securepage.php
  4. logout.php

當我登錄會話開始時,我能夠使用定義的用戶名和密碼登錄。如果我在其他瀏覽器中復制了securepage.php文件但未打開,則login.php將導航至securepage.php,它將重定向至login.php vch效果很好。

但是,如果我在另一個標簽頁的同一瀏覽器中打開securepage.php,它將重定向到login.php,而是應該顯示securepage.php可以有人幫助我實現它,謝謝!

1.Login.php

<html>
    <head>
        <title>Login Form</title>
    </head>
    <body>
        <h2>Login Form</h2>
        <form method="post" action="checklogin.php">
            USER ID: <input type="text" name="uid"/><br>
            PASSWORD: <input type="password" name="pw"/><br>
            <input type="submit" value="Login"/>
        </form>
    </body>
</html>

2.checklogin.php

<?php 
    $uid = $_POST['uid'];
    $pw = $_POST['pw'];

    if($uid == 'arun' and $pw == 'arun123')
    {
        session_start();
        $_SESSION['sid'] = session_id();
        header('location:securepage.php');
    }
?>

3. securepage.php

<?php 
    session_start();
    if($_SESSION['sid'] == session_id())
    {
        echo "welcome to you<br>";
        echo "<a href='logout.php'>Logout</a>";
    }
    else
    {
        header('location:login.php');
    }
?>

4.logout.php

<?php 
    echo "Logged out successfully";

    session_start();
    session_destroy();
    setcookie(session_id(),time()-1);
?>

嘗試這個

在checklogin.php中

<?php 
    session_start();
   $uid = $_POST['uid']; 
   $pw = $_POST['pw'];
   if($uid == 'arun' and $pw == 'arun123')
   {      
      $_SESSION['sid'] = '$uid'; # need to set user id instead of session_id()
      if (isset($_SESSION['sid'])) {
        header('Location: securepage.php');
      }
      else
      {
        echo "Error";
      }
   }
?>

在securepage.php中

<?php 
   session_start();
   if(isset($_SESSION['sid']))
   {
    echo "welcome to you<br>";
      echo "<a href='logout.php'>Logout</a>";
   }
   else
   {
    header('Location: login.php');
   }
?>

在logout.php中

<?php 

    session_start();
    if(!session_destroy())
    {
        echo "Failed to log out";
    }
    else
    {
        echo "Logged out successfully";
    }
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM