我正在使用带有会话概念的php登录注销。创建了4个文件
当我登录会话时,我能够使用已定义的用户名和密码登录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);
?>
答案 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";
}
?>