我正在使用php和会话概念进行登录注销。创建了4个文件
- login.php
- checklogin.php
- securepage.php
- 注销.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";
}
?>