Php 如何要求用户身份验证才能查看仪表板页面

Php 如何要求用户身份验证才能查看仪表板页面,php,Php,在我的索引页面上,我有我的用户登录表单,然后它转到login.php来处理登录脚本,从那里用户被重定向到dashboardd.php。但我希望这样,他们必须登录才能访问此页面,而不仅仅是键入URL Index.php <?php session_start(); ?> <?php if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count

在我的索引页面上,我有我的用户登录表单,然后它转到login.php来处理登录脚本,从那里用户被重定向到dashboardd.php。但我希望这样,他们必须登录才能访问此页面,而不仅仅是键入URL

Index.php

<?php
  session_start();
?>
<?php
  if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 ) {
    echo '<ul style="padding:0; color:red;">';
    foreach($_SESSION['ERRMSG_ARR'] as $msg) {
      echo '<li>',$msg,'</li>'; 
    }
    echo '</ul>';
    unset($_SESSION['ERRMSG_ARR']);
  }
?>
<!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">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="img/favicon.ico">

    <title>Jumbotron Template for Bootstrap</title>

    <!-- Bootstrap core CSS -->
    <link href="css/bootstrap.min.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="css/style.css" rel="stylesheet">

    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
    <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
    <script src="js/ie-emulation-modes-warning.js"></script>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>

  <body>

    <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Alec Grogan</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <form class="navbar-form navbar-right" role="form" action="login.php" method="POST">
            <div class="form-group">
              <input type="text" placeholder="Username" name="uname" class="form-control">
            </div>
            <div class="form-group">
              <input type="password" placeholder="Password" name="pword" class="form-control">
            </div>
            <button type="submit" class="btn btn-success">Sign in</button>
          </form>
        </div><!--/.navbar-collapse -->
      </div>
    </nav>

    <!-- Main jumbotron for a primary marketing message or call to action -->
    <div class="jumbotron">
      <div class="container">
        <h1>Hello, world!</h1>
        <p>This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
        <p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more &raquo;</a></p>
      </div>
    </div>

    <div class="container">
      <!-- Example row of columns -->
      <div class="row">
        <div class="col-md-4">
          <h2>Heading</h2>
          <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
          <p><a class="btn btn-default" href="#" role="button">View details &raquo;</a></p>
        </div>
        <div class="col-md-4">
          <h2>Heading</h2>
          <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
          <p><a class="btn btn-default" href="#" role="button">View details &raquo;</a></p>
       </div>
        <div class="col-md-4">
          <h2>Heading</h2>
          <p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
          <p><a class="btn btn-default" href="#" role="button">View details &raquo;</a></p>
        </div>
      </div>

      <hr>

      <footer>
        <p>&copy; Company 2014</p>
      </footer>
    </div> <!-- /container -->


    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="../../dist/js/bootstrap.min.js"></script>
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
  </body>
</html>

用于引导的Jumbotron模板
切换导航
登录
你好,世界!
这是一个简单的营销或信息网站的模板。它包括一个称为jumbotron的大型标注和三个支持内容。把它作为一个起点来创造更独特的东西

标题 Donec在eget metus为非mi porta孕妇确定了最佳身份。这是一种很好的调味品,是一种很好的调味品。这是一个很好的例子。Donec sed odio dui

标题 Donec在eget metus为非mi porta孕妇确定了最佳身份。这是一种很好的调味品,是一种很好的调味品。这是一个很好的例子。Donec sed odio dui

标题 Donec sed odio dui。我是奥迪奥先生,我是艾格斯塔·艾格特·奎姆先生。猫门前庭舌骨。这是一种很好的调味品,是一种很好的调味品


&抄袭;公司2014

login.php

<?php
    session_start();
    $errmsg_arr = array();
    $errflag = false;
    // configuration
    $dbhost     = "localhost";
    $dbname     = "alecgrogan";
    $dbuser     = "root";
    $dbpass     = "";
    // database connection
    $conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
    // new data
    $user = $_POST['uname'];
    $password = $_POST['pword'];
    if($user == '') {
        $errmsg_arr[] = 'You must enter your Username';
        $errflag = true;
    }
    if($password == '') {
        $errmsg_arr[] = 'You must enter your Password';
        $errflag = true;
    }
    // query
    $result = $conn->prepare("SELECT * FROM users WHERE username= :hjhjhjh AND password= :asas");
    $result->bindParam(':hjhjhjh', $user);
    $result->bindParam(':asas', $password);
    $result->execute();
    $rows = $result->fetch(PDO::FETCH_NUM);
    if($rows > 0) {
    header("location: dashboard.php");
    }
    else{
        $errmsg_arr[] = 'Username and Password are not found';
        $errflag = true;
    }
    if($errflag) {
        $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
        session_write_close();
        header("location: index.php");
        exit();
    }
?>

dashboard.php

<?php
    echo "string";
?>

创建一个
$\u会话
例如
$\u会话['logged\u in']
并用数据填充或将其设置为true

$username = $_POST['username']; //don't forget to sanitize $_POST values
$userID = (int)$_POST['userID'];

$_SESSION['logged_in'] = array('username' => $username, 'id' => $userID);
OR
$_SESSION['logged_in'] = TRUE;
然后检查仪表板

if(!isset($_SESSION['logged_in'])){
    header('Location:index.php');
}
现在,如果它不存在,它将返回用户到index.php。不要忘记在每个页面顶部使用
session\u start()
调用
$\u session
变量


您可以在
$\u会话中设置
数组()
,因此这非常适合存储用户信息
$\u会话中存储用户密码
tho.

如果登录成功,请根据需要设置一个$\u会话['myvar',并在dashboard.php上使用它(启动会话后)。我收到此错误!我在login.php顶部的session_start()下添加了这个选项$_会话['logged_in']=true;。然后在dashboard.php上,我添加了以下错误:解析错误:语法错误,Z:\xampp\htdocs\alecgrogan\dashboard.php中的意外文件结尾5@AlecRobertGrogan,您必须检查输入的登录是否正确,然后将
$\u会话设置为true。你缺少一个结束括号!在
标题之后('Location:/alecgrogan/index.php')关闭它!对于一个
}
我很抱歉,我仍然不明白你在说什么,我把它放在login.php$\u会话的末尾['logged\u in']=TRUE;,然后在dashboard.php上,我将session_Start()放在;然后,如果(!isset($_SESSION['logged_in']){header('Location:index.php');},并且仍然无法工作,我可以在不被记录的情况下查看页面in@AlecRobertGrogan那是在你登录之后吗?因为只要浏览器打开或会话被破坏,会话就会保持为真。您需要识别用户,如果这是正确的设置会话,则在您完全关闭浏览器之前,或者在您使用以下命令取消设置会话时,都会设置会话:
unset($\u session['logged\u in']
(这应该在您的logout.php文件中)(顶部是
session\u start()
)。