使用php中的会话登录/注销


Login / Logout using session in php

我正在使用php和会话概念进行登录注销。创建了4个文件

  1. login.php
  2. checklogin.php
  3. securepage.php
  4. 注销.php

当我登录会话开始时,我可以使用定义的用户名和密码登录。php将导航到securepage.php。如果我在其他浏览器中复制securepagephp文件,它不会打开,它将重定向到login.php。vch工作得很好。

但如果我在同一浏览器的另一个选项卡中打开securepage.php,它会重定向到login.php,它应该显示securepagephp,有人能帮我实现吗?谢谢!

1.登录.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.securrepage.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";
    }
?>