php - 登录后尝试查看用户名是否在数据库中?

标签 php mysql mysqli

我经历了多个尝试完成此任务的过程,但无法完全弄清楚。我在 Stack Overflow 上寻找重复的答案。我找到了一些并尝试将它们调整到我的代码中。还是没有用。我想说的是,如果我已登录,请转到个人资料页面,并且如果用户名位于数据库中,我希望您显示他们的姓名。如果数据库中没有,则不显示任何内容。这是我想到的:

if (isset($_SESSION['user_id'])){
    $username = mysqli_real_escape_string($con, $_POST['username']);
    $sql = "SELECT * FROM users WHERE username = '".$username."'";
    $result = mysqli_query($con,$sql);
    if(mysqli_num_rows($result)>=1){
        echo "User was found in the database";
    }
    else{
        echo "User was not found in the database.";
    }
}

因此,if isset user_id 基本上表示如果我已登录,则执行此操作。之后的代码尝试查找该数据库中是否找到用户名。如果是这样,就说找到了。如果没有,那就不要。我希望这是清楚的!谢谢!

编辑:这是 HTML 代码:

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

        <div class="banner_container">
            <div class="jumbotron text-center">
        <?php 


        if (isset($_SESSION['user_id']) && isset($_POST['username'])){

    if(($_SESSION['user_id'] != "") && ($_POST['username'] != "")){
        $user_id = $_SESSION['user_id'];
        $username = mysqli_real_escape_string($con, $_POST['username']);
        $sql = "SELECT * FROM users WHERE username = '".$username."' AND user_id !=".$user_id;
        $result = mysqli_query($con, $sql);
        if(mysqli_num_rows($result) > 0){
            echo "User was found in the database";
        }
        else{
            echo "User was not found in the database.";
        }
    }
    else{
       echo "Username or user Id is empty";
    }

}
        ?>

        <?php 
            echo "<h1>";
            echo $_SESSION['first_name'];
            echo " ";
            echo $_SESSION['last_name'];
            echo "</h1>";
            echo "<p>";
            echo '"';
            echo $_SESSION['quote'];
            echo '"';
            echo "<br>";
            echo $_SESSION['who'];
            echo "</p>";

        ?>
        </div>
    </div>


<li><a href="http://www.quotin.co">Home</a></li>
                    <li><a href="quotin_about"> About</a></li>
                    <li class="qotd"><a href="quotin_qotd"> Quote of the Day</a></li>
                    <li class="all_categories"><a href="quotin_categories">All Categories</a></li>
                    <li><a href="http://www.quotin.co/quotin_authors"> Authors</a></li>
                    <?php
                        if(isset($_SESSION['user_id'])){
                        echo $_SESSION['user_id'];

                        echo '<li id="active" class="dropdown">';
                        echo '<a id="act_color" href="#" class="dropdown-toggle" data-toggle="dropdown">';
                        echo $_SESSION['first_name'];
                        echo "'s";
                        echo ' ';
                        echo "Profile";
                        echo '<b class ="caret"></b></a>';
                        echo '<ul class="dropdown-menu">';
                        echo '<li><a href="profile.php"> Profile</a></li>';
                        echo '<li><a href="logout.php">Log out</a></li>';
                        echo '</ul>';
                        echo '</li>';
                        echo '</a>';
                        echo '</li>';
                        } else {
                        }
                    ?>

这是我所在的个人资料页面。

最佳答案

使用此代码:

if (isset($_SESSION['user_id']) && isset($_POST['username'])){

    if(($_SESSION['user_id'] != "") && ($_POST['username'] != "")){
        $user_id = $_SESSION['user_id'];
        $username = mysqli_real_escape_string($con, $_POST['username']);
        $sql = "SELECT * FROM users WHERE username = '".$username."' AND user_id !=".$user_id;
        $result = mysqli_query($con, $sql);
        if(mysqli_num_rows($result) > 0){
            echo "User was found in the database";
        }
        else{
            echo "User was not found in the database.";
        }
    }
    else{
       echo "Username or user Id is empty";
    }

}

关于php - 登录后尝试查看用户名是否在数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45534466/

相关文章:

php - 将网站从 Windows 本地主机移动到 Linux 实时服务器 : issues with filenames and paths

php - 在 Laravel 5.1 中关闭数据库连接

mysql - Laravel 工匠没有创建所有列

php - 如何将 MySQLi 准备好的语句中的单行的单列存储在 PHP 变量中?

php - 如何从 DATETIME 列中仅提取时间

php - OOP PHP 文件中的 HTML 代码

php - 进行仅显示不包含空值的行的查询

php - 将html实体存储在数据库中?还是在检索时转换?

mysql - 所选日期之间1年的任何日期MYSQL查询

php - SQL数组只显示第一个结果