로그인 상태에 따라 다른 포함 파일 표시

니키 매더

로그인했지만 문제가있는 사용자를 위해 다른 탐색 메뉴를 포함하려고합니다. 저는 현재 사용자가 성공적으로 인증 할 때 세션을 설정하고 있으며 해당 세션은 사용자가 로그인했는지 로그 아웃했는지 알 수 있도록 세션 변수를 설정합니다.

로그인 한 경우 로그인 된 메뉴가 표시되어야하며 그렇지 않은 경우 로그 아웃 된 메뉴 만 표시되어야합니다. 어떤 이유로 사용자가 로그인했는지 확인하여이 작업을 수행 할 수 없습니다. 내가 뭘 잘못하고 있는지 확실하지 않습니다.

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Meteor + React : 로그인 상태에 따라 다른 탐색 항목 표시

분류에서Dev

로그 파일에서 문자열을 확인하고 배치를 사용하여 상태에 따라 파일을 다른 폴더로 이동하는 방법

분류에서Dev

MYSQL 값에 따라 다른 형태로 표시

분류에서Dev

MYSQL 값에 따라 다른 형태로 표시

분류에서Dev

경로가 정확하더라도 다른 폴더의 파일에 포함 된 경우 헤더의 이미지가 표시되지 않음

분류에서Dev

사용자 Firebase 로그인 상태에 따라보기 컨트롤러 표시

분류에서Dev

환경에 따라 다른 파일 배포

분류에서Dev

따옴표를 포함하고 Bash에서 변수로 지정된 파일 이름을 인용하십시오.

분류에서Dev

표시된 요소에 따라 다른 스타일

분류에서Dev

장치에 따라 다른 표시 그리드

분류에서Dev

각도는 동일하지만 로그인 상태에 따라 레이아웃이 다릅니다.

분류에서Dev

다른 폴더에서 포함 된 .iss 파일에 상대적으로 파일 경로를 확인합니다.

분류에서Dev

조건에 따라 레코드를 다른 파일로 복사

분류에서Dev

Nginx는 사용자 로그인에 따라 다른 파일을 제공합니까?

분류에서Dev

사용 사례에 따라 동일한 클래스에 다른 모듈 포함

분류에서Dev

SQL Server 교착 상태 이벤트 파일의 타임 스탬프 로깅에 따라 따르는 표준 시간대 설정

분류에서Dev

파일 입력 상태에 따라 함수 실행

분류에서Dev

asp.net mvc의 인증 상태에 따라보기 표시

분류에서Dev

동일한 서버, 다른 도메인에 PHP 파일 포함

분류에서Dev

각도 파일 업로드는 동일한 게시물에 다른 데이터가 포함 된 파일을 포함합니다.

분류에서Dev

파일 유형에 따라 다른 vimrc

분류에서Dev

조건에 따라 다른 양으로 지터 포인트

분류에서Dev

화면 해상도에 따라 PHP 파일 포함

분류에서Dev

화면 해상도에 따라 PHP 파일 포함

분류에서Dev

다른 파일의 함수에 포인터 인수 전달

분류에서Dev

Postfix 프록시 구성에 다른 파일 포함

분류에서Dev

grep이 입력 파일 크기에 따라 다른 출력을 표시하는 이유는 무엇입니까?

분류에서Dev

SQL Server 저장 프로 시저의 다른 선택에 따라 결과 표시

분류에서Dev

SQL Server 저장 프로 시저의 다른 선택에 따라 결과 표시

Related 관련 기사

  1. 1

    Meteor + React : 로그인 상태에 따라 다른 탐색 항목 표시

  2. 2

    로그 파일에서 문자열을 확인하고 배치를 사용하여 상태에 따라 파일을 다른 폴더로 이동하는 방법

  3. 3

    MYSQL 값에 따라 다른 형태로 표시

  4. 4

    MYSQL 값에 따라 다른 형태로 표시

  5. 5

    경로가 정확하더라도 다른 폴더의 파일에 포함 된 경우 헤더의 이미지가 표시되지 않음

  6. 6

    사용자 Firebase 로그인 상태에 따라보기 컨트롤러 표시

  7. 7

    환경에 따라 다른 파일 배포

  8. 8

    따옴표를 포함하고 Bash에서 변수로 지정된 파일 이름을 인용하십시오.

  9. 9

    표시된 요소에 따라 다른 스타일

  10. 10

    장치에 따라 다른 표시 그리드

  11. 11

    각도는 동일하지만 로그인 상태에 따라 레이아웃이 다릅니다.

  12. 12

    다른 폴더에서 포함 된 .iss 파일에 상대적으로 파일 경로를 확인합니다.

  13. 13

    조건에 따라 레코드를 다른 파일로 복사

  14. 14

    Nginx는 사용자 로그인에 따라 다른 파일을 제공합니까?

  15. 15

    사용 사례에 따라 동일한 클래스에 다른 모듈 포함

  16. 16

    SQL Server 교착 상태 이벤트 파일의 타임 스탬프 로깅에 따라 따르는 표준 시간대 설정

  17. 17

    파일 입력 상태에 따라 함수 실행

  18. 18

    asp.net mvc의 인증 상태에 따라보기 표시

  19. 19

    동일한 서버, 다른 도메인에 PHP 파일 포함

  20. 20

    각도 파일 업로드는 동일한 게시물에 다른 데이터가 포함 된 파일을 포함합니다.

  21. 21

    파일 유형에 따라 다른 vimrc

  22. 22

    조건에 따라 다른 양으로 지터 포인트

  23. 23

    화면 해상도에 따라 PHP 파일 포함

  24. 24

    화면 해상도에 따라 PHP 파일 포함

  25. 25

    다른 파일의 함수에 포인터 인수 전달

  26. 26

    Postfix 프록시 구성에 다른 파일 포함

  27. 27

    grep이 입력 파일 크기에 따라 다른 출력을 표시하는 이유는 무엇입니까?

  28. 28

    SQL Server 저장 프로 시저의 다른 선택에 따라 결과 표시

  29. 29

    SQL Server 저장 프로 시저의 다른 선택에 따라 결과 표시

뜨겁다태그

보관