douren5898 2014-04-04 11:26 采纳率: 100%
浏览 89
已采纳

在PHP中显示名字问题

I have looked through SO to get help with my code however haven't come across/understood the code which helps me with my error.

I have a database with a table which holds username, password and first name. I would like to display the user's first name when they log into the dashboard.

I receive this error with the code I will provide below:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/sites/s/ssangar.com/public_html/PMWebsite/dashboard.php:31) in /var/sites/s/ssangar.com/public_html/PMWebsite/dashboard.php on line 31

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /var/sites/s/ssangar.com/public_html/PMWebsite/dashboard.php on line 35

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in /var/sites/s/ssangar.com/public_html/PMWebsite/dashboard.php on line 36

My Code for Log In:

<?php

   session_start();
   if(isset($_POST['submitted']))
   {

    $username = $_POST['username'];
    $password = $_POST['password'];

        $connect = mysqli_connect("", "", "", "");


        if (mysqli_connect_errno()){
            echo mysqli_connect_error();
        }

        $query = "SELECT * FROM members where username = '$username'";


        $result = mysqli_query($connect, $query);
        $log = mysqli_fetch_array($result);
    $dbusername=$log['username'];
    $dbpassword=$log['password'];
    //  }
    if($username == $dbusername && $password == $dbpassword)
    {
        $_SESSION['username'] = $dbusername;
        $_SESSION['password'] = $dbpassword;
        header("Location: PMWebsite/dashboard.php");

    }else
    {
    echo "Username or Password Incorrect";

    }
    }else{
    echo "No Connection";
    }   
    ?>

Code for dashboard to display username:

<?php ob_start();
   session_start(); ?>
   <!DOCTYPE html>
   <html lang="en">
   <head>
   <title>Dashboard</title>

   <link href="css/bootstrap.min.css" rel="stylesheet">  
   <link href="dashboard.css" rel="stylesheet">
      <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>
    </head>

    <body>
    <?php
    $user = $_SESSION['username'];
    $query = "SELECT firstName FROM members where username = '$username'"; 
    $result = mysqli_query($connect, $query); 
    $log = mysqli_fetch_array($result); 
    $dbfirstName=$log['firstName']; 
    print_r($log); 
    echo $query; ?>


      <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
        <div class="container-fluid">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
              <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="index.html">Aston Racing: Formula Student</a>
          </div>
          <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav navbar-right">
              <li><a href="#">Settings</a></li>
              <li><a href="#">Profile</a></li>
              <li><a href="#">Log Out</a></li>
            </ul>
          </div>
        </div>
      </div>

      <div class="container-fluid">
        <div class="row">
          <div class="col-sm-3 col-md-2 sidebar">
            <ul class="nav nav-sidebar">
              <li class="active"><a href="#"><img src="PM/projects.png"> Projects</a></li>
              <li><a href="gantt/teamGantt.html"><img src="PM/teamtimetable.png"> Team Gantt</a></li>
              <li><a href="#"><img src="PM/meetings.png"> Meetings</a></li>
              <li><a href="parts.html"><img src="PM/parts.png"> Part Orders</a></li>
              <li><a href="#"><img src="PM/fileshare.png"> File Share</a></li>
            </ul>
          </div>
          <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
            <h1 class="page-header">Welcome <?php echo $dbfirstName; ?>!</h1>

            <div class="row placeholders">
              <div class="col-xs-6 col-sm-3 placeholder">              
               <h4>Tasks To Do</h4>
               <span class="text-muted"></span>
             </div>
             <div class="col-xs-6 col-sm-3 placeholder">            
               <h4>Upcoming deadlines</h4>
               <span class="text-muted"></span>
             </div>
             <div class="col-xs-6 col-sm-3 placeholder">
               <h4>Goals</h4>
               <span class="text-muted"></span>
             </div>
        </div>
      </div>
    </div>
    </div>
    </div>
    </div>
    </div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="docs.min.js"></script>
    </body>
    </html>

Any help would be very much appreciated thanks!

  • 写回答

4条回答 默认 最新

  • douxu0550 2014-04-04 11:30
    关注

    sesson_start must be defined before any output

    <?php session_start(); ?>
    <html>
    <head>
    </head>
    <body>
    ....
    

    Than you have typo in you sql query

    $user = $_SESSION['user'];
    $query = "SELECT firstName FROM members where username = '$user'";
    

    Dont forget to valited all user input inside sql query, to avoid sql injection wiki

    $username = mysqli_real_escape_string ($connect , $_POST['username']);
    $password = mysqli_real_escape_string ($connect , $_POST['password']);
    

    You are trying to use more cols from DB that you are stating in your SQL

    $query = "SELECT username, firstName FROM members where username = '$user'";
    $result = mysqli_query($connect, $query);
    $log = mysqli_fetch_array($result);
    $dbusername=$log['username'];
    $dbfirstName=$log['firstName'];?>
    

    No myqli in second file

    $connect = mysqli_connect("", "", "", "");
    $user = $_SESSION['username'];
    $query = "SELECT firstName FROM members where username = '$username'"; 
    $result = mysqli_query($connect, $query);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器