Php 从用户id显示用户的特定图像

Php 从用户id显示用户的特定图像,php,mysql,Php,Mysql,我有一个名为login的数据库和一个名为users的表 users表有6行(uid、image、username、password、firstname和lastname) 我希望登录者的图像显示在div中,但由于某种原因它不会显示 下面是我正在使用的代码片段: logindb.php: <?php try { $db = new PDO('mysql:host=localhost;dbname=login', "root", ""); } catch (PDOException $e) {

我有一个名为login的数据库和一个名为users的表

users表有6行(uid、image、username、password、firstname和lastname)

我希望登录者的图像显示在div中,但由于某种原因它不会显示

下面是我正在使用的代码片段:

logindb.php

<?php
try {
$db = new PDO('mysql:host=localhost;dbname=login', "root", "");
} catch (PDOException $e) {
echo $e->getMessage();
}

$uid = $_POST['username1'];
$pwd = $_POST['password1'];

$sql = "SELECT * FROM `users` WHERE `username` = :username1 AND `password` = :password1";
$statement = $db->prepare($sql);
$userData = [
'username1'=>$uid,
'password1'=>$pwd,
];

$statement->execute($userData);

if($statement->rowCount() > 0){
session_start();
$_SESSION['admin']= $uid;
$_SESSION['logged'] = true;
header('Location: indextemplate.php');
exit();
}

elseif(empty($uid&$pwd)){
header('Location: index1.php?error=empty1');
exit();
}
elseif ($uid!=$idvariable&$pwd!=$idvarible){
header('Location: index1.php?error=empty2');
exit();
}

?>

这就是我想展示的地方:

 <!-- menu profile quick info -->
        <div class="profile clearfix">
          <div class="profile_pic">
              <?php
               $conn = mysqli_connect("localhost", "root", "", "login");
                $uid1 = $_SESSION['admin'];
                $users= "SELECT * FROM `users` WHERE `uid`='$uid1'";
                $data= mysqli_query($conn,$users) or die("Connection Failed!");
               while($row = mysqli_fetch_array($data, MYSQLI_ASSOC)){ 

                   $imgdata = $row['image'];?>

            <?php echo '<center><img src="'.$imgdata.'" alt="..." class="img-circle profile_img"></center>'; ?>

            <?php

               }      
              ?>
          </div>
          <div class="profile_info">
            <span>Welcome,</span>
            <h2><?php echo $_SESSION['admin'];

            ?></h2>
          </div>
        </div>
  <!-- /menu profile quick info -->

欢迎
我做错了什么?当我放入
$uid1=$\u会话['logged']时它显示来自uid
1
的图像,即使当前登录的uid是
2

编辑: 下面是我的数据库表的一个示例

请尝试以下示例:

$db = mysqli_connect("localhost","root","","DbName"); 
$sql = "SELECT * FROM products WHERE id = $id";
$sth = $db->query($sql);
$result=mysqli_fetch_array($sth);
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';
$db=mysqli_connect(“localhost”、“root”、“”、“DbName”);
$sql=“从id=$id的产品中选择*”;
$sth=$db->query($sql);
$result=mysqli\u fetch\u数组($sth);
回声';
在数据库中存储图像时,这是显示图像的正确方法。

请尝试使用

$imgdata=$row['image']

echo '<img src="data:image/jpeg;base64,'.base64_encode( $imgdata ).'"/>';
echo';

无法获取图像的原因是

$_SESSION['admin']= $uid; // should be uid, not username

您已在
$uid
中分配了名称,并在查询中使用作为
整数
值进行搜索。

添加数据库表的屏幕截图是否已检查会话存储相同的详细信息?当我放入$uid1=$\u Session['logged']时;你的意思是
$\u SESSION['admin']
?@JigarShah当我放入$uid=$\u SESSION['admin']时,没有图像出现,但当我放入
$uid1=$\u SESSION['logged']时出现一个图像。
$\u会话['logged']
是布尔值,具有值
true
,即
1
,因此它将显示用户具有uid
1
的图像。您需要检查会话['admin']
包含的内容。如果你使用静态uid,你也会看到其他用户的值。我发现了这个错误。它应该是$uiid=$_SESSION['admin'];和$users=“SELECT*FROM
users
其中
username
=”$uiid';是的,您的会话变量
admin
出现问题。如果你觉得有用,你可以接受这个答案。