doq70020 2016-01-18 01:37
浏览 92
已采纳

在登录时显示当前用户信息

I am trying to display the current user info when only they are logged in.. I have got the users info to display but it displays all users not just the logged in user. it is showing all users

<?php
        $sql = "SELECT users.uid, users.username, user_images.user_image
        FROM users, user_images
        WHERE users.user_id = users.user_id";

        $result = query($sql);
        while (($row = mysqli_fetch_assoc($result)) != false) {

            $uid = $row['uid'];
            $user_image = $row['user_image'];
            $username = $row['username'];


            echo "$username";
            echo "$user_image";

        }        
 ?> 

My Login

function login_user($email, $password)
{
    $sql = "SELECT user_pwd, uid FROM users WHERE user_email = '" . escape($email) . "' AND active = 1";

    $result = query($sql);

    if (row_count($result) == 1) {

        $row = fetch_array($result);

        $db_password = $row['user_pwd'];

        if (password_verify($password, $db_password)) {

            $_SESSION['email'] = $email;            

            return true;
        } else {

            return false;
        }

        return true;
    } else {

        return false;
    }
}

Query Functions

function row_count($result)
{
    return mysqli_num_rows($result);
}


function query($query)
{
    global $connection;
    return mysqli_query($connection, $query);
}


function fetch_array($result)
{
    global $connection;
    return mysqli_fetch_array($result);
}
  • 写回答

2条回答 默认 最新

  • duanmei1922 2016-01-18 02:04
    关注

    In your login you should create a session variable for userid

     function login_user($email, $password)
        {
            $sql = "SELECT user_pwd, uid FROM users WHERE user_email = '" . escape($email) . "' AND active = 1";
    
            $result = query($sql);
    
            if (row_count($result) == 1) {
    
                $row = fetch_array($result);
    
                $db_password = $row['user_pwd'];
    
                if (password_verify($password, $db_password)) {
    
                    $_SESSION['email'] = $email;            
                    $_SESSION['user_id'] = $row['user_id'];
                    return true;
                } else {
    
                    return false;
                }
    
                return true;
            } else {
    
                return false;
            }
        }
    

    then in the php file where you want to display the users info you will use $_SESSION['user_id']

    <?php
            session_start();
            $user_id = $_SESSION['user_id'];
            $sql = "SELECT users.uid, users.username, user_images.user_image
            FROM users, user_images
            WHERE users.user_id = {$user_id}";
    
            $result = query($sql);
            while (($row = mysqli_fetch_assoc($result)) != false) {
    
                $uid = $row['uid'];
                $user_image = $row['user_image'];
                $username = $row['username'];
    
    
                echo "$username";
                echo "$user_image";
    
            }        
     ?> 
    

    Hope it helps.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?