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

时间:2015-11-11 06:18:07

标签: php session

我正在使用带有会话概念的php登录注销。创建了4个文件

  1. 的login.php
  2. checklogin.php
  3. securepage.php
  4. logout.php
  5. 当我登录会话时,我能够使用已定义的用户名和密码登录login.php将导航到securepage.php,如果我在其他浏览器中复制securepage.php文件,它将不会打开它将重定向登录.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);
    ?>
    

1 个答案:

答案 0 :(得分:0)

试试这个

在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";
    }
?>