Я работаю над регистрацией входа в систему, используя php с концепцией сеанса. Создано 4 файла
Я могу войти в систему с определенным именем пользователя и паролем, когда я вошел в сессию. Login.php перейдет к securepage.php, если я скопирую файл securepage.php в каком-то другом браузере, который он не откроет, он будет перенаправлен на login.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);
?>
Попробуй это
В 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";
}
?>