简体   繁体   English

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

[英]Login / Logout using session in php

I am working on login logout using php with session concept. 我正在使用带有会话概念的php进行登录注销。 Created 4 files 创建了4个文件

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

I'm able to login with defined username and password when i logged in session gets started login.php will navigate to securepage.php if i copy securepage.php file in some other browser it doesnot gets open it will redirect to login.php vch works great. 当我登录会话开始时,我能够使用定义的用户名和密码登录。如果我在其他浏览器中复制了securepage.php文件但未打开,则login.php将导航至securepage.php,它将重定向至login.php vch效果很好。

But if i open securepage.php in same browser in another tab it is redirecting to login.php instead it should show securepage.php can somebody help me out in achieving it Thanks! 但是,如果我在另一个标签页的同一浏览器中打开securepage.php,它将重定向到login.php,而是应该显示securepage.php可以有人帮助我实现它,谢谢!

1.Login.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 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 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 4.logout.php

<?php 
    echo "Logged out successfully";

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

Try this 尝试这个

In checklogin.php 在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";
      }
   }
?>

In securepage.php 在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');
   }
?>

In logout.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