로그인했지만 문제가있는 사용자를 위해 다른 탐색 메뉴를 포함하려고합니다. 저는 현재 사용자가 성공적으로 인증 할 때 세션을 설정하고 있으며 해당 세션은 사용자가 로그인했는지 로그 아웃했는지 알 수 있도록 세션 변수를 설정합니다.
로그인 한 경우 로그인 된 메뉴가 표시되어야하며 그렇지 않은 경우 로그 아웃 된 메뉴 만 표시되어야합니다. 어떤 이유로 사용자가 로그인했는지 확인하여이 작업을 수행 할 수 없습니다. 내가 뭘 잘못하고 있는지 확실하지 않습니다.
index.php
<?php
require_once("inc/config.php");
require(ROOT_PATH . "inc/database.php");
session_start();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Property Rental</title>
<!-- CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<link href="css/responsive.css" rel="stylesheet">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<header role="banner" id="top" class="navbar navbar-static-top bs-docs-nav">
<div class="container">
<div class="navbar-header">
<button data-target=".bs-navbar-collapse" data-toggle="collapse" type="button" class="navbar-toggle">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<nav role="navigation" class="collapse navbar-collapse bs-navbar-collapse">
<ul class="nav navbar-nav">
<li class="active">
<a href="../getting-started">Menu Item 1</a>
</li>
<li>
<a href="../css">Menu Item 2</a>
</li>
<li>
<a href="../components">Menu Item 3</a>
</li>
<li>
<a href="../javascript">Menu Item 4</a>
</li>
<li>
<a href="../customize">Menu Item 5</a>
</li>
<?php
if ( $_SESSION['loggedin'] == true) {
include("inc/logged.php");
} else {
include("inc/loggedOut.php");
}
print_r($_SESSION);
?>
</ul>
</nav>
</div>
</header>
<div class="container">
<h1>Hello, world!</h1>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="/js/bootstrap.js"></script>
<script src="/js/core.js"></script>
</body>
</html>
users.database.php
<?php
$username = $_POST['username'];
$password = $_POST['password'];
try {
$result = $db->prepare("SELECT username, pass FROM user_info WHERE username = :user AND BINARY pass = :pass");
$result->bindParam(':user', $username);
$result->bindParam(':pass', $password);
$result->execute();
$rows = $result->fetch(PDO::FETCH_NUM);
}
catch (Exception $e) {
echo "Could not retrieve data from database";
exit();
}
if ($password = $rows) {
session_start();
$_SESSION['username'] = $_POST['username'];
$_SESSION['loggedin'] = true;
} else {
if (isset($_POST['login'])) {
echo "Username or password incorrect (passwords are case sensitive)";
}
}
?>
logs.php
<li class="login-register pull-right">
<ul>
<li class="login pull-left">
<a href="#">My Account</a>
<div class="login-box">
<div class="login-box-inner">
<a href="/logout.php">Logout</a>
</div>
</form>
</div>
</li>
</ul>
</li>
logout.php
<li class="login-register pull-right">
<ul>
<li class="login pull-left">
<a href="#">Login</a>
<a href="/logout.php">LOGOUT</a>
<div class="login-box">
<div class="login-box-inner">
<div class="up-arrow"></div>
<form role="form" method="post">
<div class="form-group">
<label>Username or Email</label>
<input type="text" name="username">
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password">
</div>
<?php require(ROOT_PATH . "inc/users.database.php"); ?>
<div class="form-group">
<div class="row">
<div class="col-xs-6">
<label class="remember-me">
<input type="checkbox" name="remember"> Remember me
</label>
</div>
<div class="col-xs-6">
<button type="submit" name="login" class="btn btn-small btn-primary pull-right">Login</button>
</div>
</div>
</div>
</form>
</div>
</form>
</div>
</li>
<span class="slash">/</span>
<li class="pull-right">
<a href="/register">Register</a>
</li>
</ul>
</li>
$loggedin
index.php 파일에 설정되어 있지 않습니다.
if 조건을 다음으로 바꿉니다.
if ($_SESSION['loggedin'] == true) {
똑같은 의미를 가진 이것을 사용할 수도 있습니다 ...
if ( $_SESSION['loggedin'] ) {
위의 코드를 사용하여 해당 페이지에서 세션을 시작해야합니다. session_start();
사용자가 로그인 할 때 javascript를 사용하여 기록으로 돌아가는 경우 다음과 같이 변경하십시오.
<script>
window.location.href = document.referrer;
</script>
참고 : 이것은 기록에서 한 페이지로만 되돌아갑니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다