登录会话后,我无法在页面上显示用户名

时间:2018-07-27 10:04:18

标签: php mysql session

晚上好,我在PHP编码中遇到了一些问题。登录后即使在代码中已经包含$ _SESSION ['username']和session_start(),我也无法在下一页显示用户名。谁能帮我指出问题所在?代码如下:

login.php:     

include_once 'dbconnection.php';
$msg = '';

if (!isset($_SESSION)) {
    session_start();

    if(isset($_POST['button']))
    {
        $username = $_POST['username'];
        $password = $_POST['password'];
        $MM_redirectLoginSuccess = "dashboard.php";
        $MM_redirectLoginFailed = "adminLogin.php";
        $MM_redirecttoReferrer = false;

        $username = mysqli_real_escape_string($dbcon,$username);
        $password = mysqli_real_escape_string($dbcon,$password);

        $sql = "SELECT * FROM admin WHERE user_name = '".$username."' and password = '".$password."'";
        $result = mysqli_query($dbcon,$sql);

        if ($count = mysqli_fetch_array($result))
        {
            $_SESSION['username'] = $count['username'];
            $_SESSION['password'] = $count['password'];
            header("location: dashboard.php");
            $successmsg = "Successfully Register!";
            echo "<script type ='text/javascript'>alert('$successmsg')</script>";
        } 
            else {
                $errormsg = "Wrong Username or Password. Please retry.";
                echo "<script type = 'text/javascript'>alert('$errormsg')</script>";
             }

    }

}

?>

index.php:

<?php
//initialize the session
if (!isset($_SESSION)) {
    session_start();
}
?>

<!-- User Account -->
<li class="dropdown user user-menu">
 <a href="#" class="dropdown-toggle" data-toggle="dropdown">
 <span class="hidden-xs">
   <?php echo $_SESSION['username'];?>
 </span>
 </a>

1 个答案:

答案 0 :(得分:0)

您的代码存在一些问题:

  1. 标头函数的用法:“位置”强制重定向,因此您仅应在此之后调用exit()。

  2. 检查是否设置了会话:您应该从php 5.4版开始执行类似的操作:

    if (session_status() == PHP_SESSION_NONE) {
        session_start();
    }
    

    将isset用于更具体的内容,例如:

    if (isset($_SESSION['username']){
       // do something
    }