如何在使用会话登录后更改导航栏并在登录前显示该页面

时间:2016-10-12 07:01:55

标签: php session-cookies

我尝试并希望(index.php)我的主页显示网页但导航栏极右显示登录菜单。登录会话创建后,导航栏从登录更改为注销。然后它的会话访问剩余页面。

的login.php

<?php ob_start(); ?>

<?php
 session_start(); 
 require_once 'dbconnect.php';

 if (isset($_SESSION['userSession'])!="") {
       header("Location: index.php");
      exit;
  }

 if (isset($_POST['btn-login'])) {

 $email = strip_tags($_POST['email']);
 $password = strip_tags($_POST['password']);

 $email = $DBcon->real_escape_string($email);
 $password = $DBcon->real_escape_string($password);

 $query = $DBcon->query("SELECT user_id, email, password FROM tbl_users                   WHERE email='$email' and password='$password'");
    $row=$query->fetch_array();

 $count = $query->num_rows; // if email/password are correct returns must be 1 row

if ($count==1) {
    $_SESSION['userSession'] = $row['user_id'];
header("Location: index.php");
} else {
    $msg = "<div class='alert alert-danger'>
                <span class='glyphicon glyphicon-info-sign'></span> &nbsp; Invalid Username or Password !
            </div>";
}
$DBcon->close();
}
?>

的index.php

<?php 
 session_start();
 include_once 'dbconnect.php';

 if (!isset($_SESSION['userSession'])) {
    header("Location: login.php");
  }

 $query = $DBcon->query("SELECT * FROM tbl_users WHERE user_id=".$_SESSION['userSession']);
 $userRow=$query->fetch_array();
 $DBcon->close();

 ?>

导航栏

<?php   
if(isset($_SESSION['userSession'])) {
    echo '<li class="dropdown"><a href="logout.php"><span>Log Out</span></a>   </li>';
} else {
    echo '<li class="dropdown"><a href="login.php"><span>Log In</span></a></li>';
} 
?>

这是我的编码。登录前无法打开index.php文件。现在我需要你的帮助,index.php文件打开但没有登录但导航栏显示登录菜单。登录后,它将替换退出菜单。

谢谢你 提前回复我

1 个答案:

答案 0 :(得分:0)

希望你会发现它很有用。您可以制作如下所示的结构并进一步尝试。请找出注释行以更好地理解代码。

您的索引文件:index.php

<?php
require('configuration.php'); #Database connection and other site configuration

if(!isset($_SESSION['userSession'])){
header("location:login.php"); #Redirection
die();
}
?>

<script language="javascript">
location.href='home.php';
</script>

头文件:header.php

<?php  
if(isset($_SESSION['userSession'])) {
echo '<li class="dropdown"><a href="logout.php"><span>Log Out</span></a></li>';
} else {
echo '<li class="dropdown"><a href="login.php"><span>Log In</span></a></li>';
} 

?>

主页:home.php

<?php
require('configuration.php'); #Database connection and other site configuration

if(!isset($_SESSION['userSession'])){ #Do login first if user is guest user
header("location:login.php"); #Redirection
die();
}

#Active session will perform ...
$id = $_SESSION['userSession'];
$query = $DBcon->query("SELECT * FROM tbl_users WHERE user_id=".$id);
while($userRow = $query->fetch_array();){
extract($userRow);
}

require_once("header.php"); #header file contains navigation bar
?>

登录页面:login.php

<?php

require('configuration.php'); #Database and other site configuration

if(isset($_POST['btn-login'])){ #Login form submission and generate a $_SESSION['userSession']
....
}

require_once("header.php"); #header file contains navigation bar
?>

<!--Your login page form </ CODE> will be here -->