如何使用php在页面角落显示用户登录信息

Posted

技术标签:

【中文标题】如何使用php在页面角落显示用户登录信息【英文标题】:How to display user log in information at the corner of the page using php 【发布时间】:2020-07-19 06:09:42 【问题描述】:

我创建了一个用户需要登录的网页。我希望用户看到他/她的信息。这表示你好 user1 并单击此处注销。这是我的代码,我什至看不到注销按钮。

更新:我看到我没有使用该用户名登录的用户名。我使用用户名 student 进入网站。但它显示了不同的用户名。见下图it supposed to write welcome student not yasemin

登录代码:

// LOGIN USER
if (isset($_POST['login_user'])) 
    $username = mysqli_real_escape_string($db, $_POST['username']);
    $password = mysqli_real_escape_string($db, $_POST['password']);

    if (empty($username)) 
        array_push($errors, "Username is required");


    
    if (empty($password)) 
        array_push($errors, "Password is required");

    


    if (count($errors) == 0) 

        $password = md5($password);
        $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
        $results = mysqli_query($db, $query);
        $row = mysqli_fetch_assoc($results);


        if('student' == $row['user_type']) 
                 header('Location: ogrenciarayuzu.php');
                 exit();
     elseif ('department' == $row['user_type']) 
                 header('Location: bolumsekreterligiarayuzu.php');
                 exit();

     elseif ('institute' == $row['user_type']) 
                 header('Location: enstituarayuzu.php');
                 exit();    

     
    if (mysqli_num_rows($results) == 1) 
            $_SESSION['username'] = $username;
            $_SESSION['success'] = "You are now logged in";
            header('location: index.php');
        else 
            array_push($errors, "Wrong username/password combination");
        
        

     

     ?> 

我把这段代码放在我想查看登录信息的地方。

  <?php session_start(); ?> // at the beginning of my code

   .
   .
   .
    <?php  
    if (isset($_SESSION['username'])) :
    ?>
    <p>Welcome <strong><?php echo $_SESSION['username']; ?></strong></p>
    <p ><a href="index.php" style="color: black;"> <input type="submit" value="Logout" name="logout" 
    class="button"/></a>  </p>

      <?php endif ?>

为了让它成功注销,我把这段代码放在我的index.php文件中

<?php 
session_start(); 

if (isset($_GET['logout'])) 
session_destroy();
unset($_SESSION['username']);
header("location: login1.php");
 
 ?>

请帮助我为什么我仍然看不到。这里有什么问题?

【问题讨论】:

你到底想在这里做什么 我想查看用户登录网站时的用户名。 当用户登录他们的帐户时,您是否设置会话 同时发布您的登录代码 我还应该把 session_start() 代码放在哪里 【参考方案1】:

您的代码出错,您的代码未能设置会话,当 条件为真,然后将用户重定向到另一个 .php 页面 根据您使用的条件。

试试这个代码。

<?php session_start(); ?>

    if (isset($_POST['login_user'])) 
        $username = mysqli_real_escape_string($db, $_POST['username']);
        $password = mysqli_real_escape_string($db, $_POST['password']);

        if (empty($username)) 
            array_push($errors, "Username is required");


        
        if (empty($password)) 
            array_push($errors, "Password is required");

        


        if (count($errors) == 0) 

            $password = md5($password);
            $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
            $results = mysqli_query($db, $query);

        if (mysqli_num_rows($results) == 1) 
            $row = mysqli_fetch_assoc($results);
                $_SESSION['username'] = $username;
                $_SESSION['success'] = "You are now logged in";

                //if you want to redirect user as per its type, you can use this condition

                if('student' == $row['user_type']) 
                         header('Location: ogrenciarayuzu.php');
                         exit();
                 elseif ('department' == $row['user_type']) 
                             header('Location: bolumsekreterligiarayuzu.php');
                             exit();

                 elseif ('institute' == $row['user_type']) 
                             header('Location: enstituarayuzu.php');
                             exit();    

                 
                else
                
                    header('location: index.php');
                
            else 
                array_push($errors, "Wrong username/password combination");
            
            

         

【讨论】:

如果你打电话给session_destroy()。它将销毁所有会话。 因此不需要此代码。 unset($_SESSION['username']). 感谢您的帮助和时间。我很感激 我还有一个问题。如何显示全名?我将名称和用户名列添加到我的数据库中。我将使用用户名登录,但页面显示该用户名的姓名和姓氏。

以上是关于如何使用php在页面角落显示用户登录信息的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 将不同的用户选择的 SQL 表显示为 html 表?

如何获取其他系统登录的用户信息

php cas单点登录如何获取用户信息而不跳转到登录页

通过 Spring Security 和 CAS 登录后,如何在非安全 JSP 页面上显示登录用户详细信息?

PHP和HTML如何加载新文件

使用php实现用户注册和登录功能制作 !急求大神帮助!