У меня есть несколько простых страниц входа. Я попытался поместить код на страницу login.php
чтобы попробовать, если это работает. Но это не так.
if(!isset($_SESSION['UserData']['Username'])){
header("location:index.php");
}
Я пытаюсь скрыть login.php
для зарегистрированных пользователей. Другими словами, когда они вошли в статус, они пытаются посетить login.php
, login.php
автоматически перенаправит их на указанную страницу. что означает, login.php
страница login.php
доступна только для не зарегистрированных пользователей. Вот код, который у меня есть на моей странице login.php
.
<?php session_start(); /* Starts the session */
/* Check Login form submitted */
if(isset($_POST['Submit'])){
/* Define username and associated password array */
$logins = array('Test1' => 'test1','Test2' => 'test2','Test3' => 'test3');
/* Check and assign submitted Username and Password to new variable */
$Username = isset($_POST['Username']) ? $_POST['Username'] : '';
$Password = isset($_POST['Password']) ? $_POST['Password'] : '';
/* Check Username and Password existence in defined array */
if (isset($logins[$Username]) && $logins[$Username] == $Password){
/* Success: Set session variables and redirect to Protected page */
$_SESSION['UserData']['Username']=$Username; <-- this line amended to display username properly.
header("location:index.php");
exit;
} else {
/*Unsuccessful attempt: Set error message */
$msg="<span style='color:red'>Invalid Login Details</span>";
}
}
?>
<!doctype html>
<html>
<head>
<title>Login Page</title>
<link href="style.css" rel="stylesheet" />
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
<link href='http://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' />
</head>
<body>
<section class="pd">
<div class="login">
<form action="" method="post" name="Login_Form">
<h1>Login</h1>
Username:<br/>
<input name="Username" type="text" class="Input">
<div class="formgap"></div>
Password:<br/>
<input name="Password" type="password" class="Input">
<div class="formgap"></div>
<?php if(isset($msg)){?><?php echo $msg;?>
<div class="formgap"></div>
<?php } ?>
<div class="formgap"></div>
<input name="Submit" type="submit" value="Login" class="Button3">
</form>
</div><!--login-->
</section>
</body>
</html>
Я попытался посетить login.php
после входа в систему. Я все еще могу. Любые предложения для этого? Благодарю!
Просто проверьте это на login.php
if(isset($_SESSION['UserData']['Username']) && !empty($_SESSION['UserData']['Username'])){
header("location:index.php");
}
Пользователь будет перенаправлен на index.php
если он вошел в систему.
вы проверяете, установлены ли userdata или нет. попробуй это
<?php
session_start(); /* Starts the session */
/* Check Login form submitted */
if(isset($_SESSION['UserData']['Username'])){
header("location:im.php");
exit;
}
elseif(isset($_POST['Submit'])){
/* Define username and associated password array */
$logins = array('Test1' => 'test1','Test2' => 'test2','Test3' => 'test3');
/* Check and assign submitted Username and Password to new variable */
$Username = isset($_POST['Username']) ? $_POST['Username'] : '';
$Password = isset($_POST['Password']) ? $_POST['Password'] : '';
/* Check Username and Password existence in defined array */
if (isset($logins[$Username]) && $logins[$Username] == $Password){
/* Success: Set session variables and redirect to Protected page */
$_SESSION['UserData']['Username']=$logins[$Username];
header("location:im.php");
exit;
} else {
/*Unsuccessful attempt: Set error message */
$msg="<span style='color:red'>Invalid Login Details</span>";
}
}
?>
<!doctype html>
<html>
<head>
<title>Login Page</title>
<link href="style.css" rel="stylesheet" />
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
<link href='http://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' />
</head>
<body>
<section class="pd">
<div class="login">
<form action="" method="post" name="Login_Form">
<h1>Login</h1>
Username:<br/>
<input name="Username" type="text" class="Input">
<div class="formgap"></div>
Password:<br/>
<input name="Password" type="password" class="Input">
<div class="formgap"></div>
<?php if(isset($msg)){?><?php echo $msg;?>
<div class="formgap"></div>
<?php } ?>
<div class="formgap"></div>
<input name="Submit" type="submit" value="Login" class="Button3">
</form>
</div><!--login-->
</section>
</body>
</html>
Этого достаточно, попробуйте следующее:
if(!empty($_SESSION['UserData']['Username'])){
header("location:index.php");
}
!empty
Если вы получаете сеанс на страницах с ограниченным доступом, просто проверьте это
<?php
if(!isset($_SESSION['UserData']['Username'])){
?>
<script>
window.location='index.php';
</script>
<?php
}
?>
Для перенаправления используйте функцию javascript redirection вместо функции заголовка php.
print_r($_SESSION)
свою сессию и проверить сохраненные данные пользователя или нет?