PHP从数据库获取用户名,在页面上显示用户名

Nic*_*ntq -2 html php mysql

我目前正在尝试从数据库中获取用户名并将其显示出来。我运气不太好,这是我到目前为止的代码。应该可以,但是$ username变量是不确定的,不确定为什么。

        <?php
    /* Database Information */
    $server = '127.0.0.1';
    $database = 'nicedevelopment';
    $dbuser = 'root';

    /* Database Connection */
    $connect = mysql_connect("$server", "$dbuser")
        OR die(mysql_error());
    mysql_select_db("$database", $connect);

    /* Escape String */
    $username = mysql_real_escape_string($connect);

    /* Find and get row*/
    $getit = mysql_query("SELECT * FROM users WHERE username='$username'",$connect);
    $row = mysql_fetch_array($getit);

    $username = $row['username']
        ?>

  <nav>
    <div class="nav-wrapper">
      <a href="#" class="brand-logo center"><?php echo $row['username']; ?></a>
Run Code Online (Sandbox Code Playgroud)

这是我的登录页面!

    <?php
 require('connect.php');
    session_start();
    // If form submitted, insert values into the database.
        if (isset($_POST['email'])){
        $email = $_POST['email'];
            $password = $_POST['password'];
        $email = stripslashes($email);
        $email = mysql_real_escape_string($email);
        $password = stripslashes($password);
        $password = mysql_real_escape_string($password);
        //Checking is user existing in the database or not
        $query = "SELECT * FROM `users` WHERE email='$email' and password='".md5($password)."'";
        $result = mysql_query($query) or die(mysql_error());
        $rows = mysql_num_rows($result);
        if($rows==1){
        $_SESSION['email'] = $email;
        header("Location: dashboard.php"); // Redirect user to index.php
    }else{
    echo "<div class='form'><h4>Email/password is incorrect.</h4><br/>Click here to <a href='index.php'>Login</a></div>";
  }
    }else{
?>
Run Code Online (Sandbox Code Playgroud)

The*_*see 5

更新的答案

由于用户只能使用其电子邮件登录,因此您将无法使用session显示用户名(除非您要显示其电子邮件!)。最好的选择是使用一个查询,该查询从一个表中选择用户名,该表中的电子邮件等于他们用来登录的电子邮件:

<?php
$email = $_POST['email'];
$query = "SELECT * FROM users WHERE email='$email'"
$row = mysql_fetch_array($query);
$username = $row['username'];

echo $username;
?>
Run Code Online (Sandbox Code Playgroud)

原始答案

根据您的查询,您正在尝试从数据库中选择一个等于的用户名$connect = mysql_connect("$server", "$dbuser")-根本没有意义。

您首先要像这样登录用户:

<?php
session_start();
if(isset($_POST['submit'])) {
$_SESSION['username'] = $_POST['username'];
}

<form method="post">
<input type="text" name="username">
<input type="password>
<input type="submit" name="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

要显示用户名,只需使用以下两行代码:

session_start();
echo $_SESSION['username];
Run Code Online (Sandbox Code Playgroud)

注意:这是一个非常基本的脚本。它不会阻止任何形式的SQL注入攻击,也不会验证用户名和密码-这只是使您步入正轨的一个示例。