从用户ID显示用户的特定图像

时间:2018-02-05 09:14:02

标签: php mysql

我有一个名为登录的数据库和一个名为用户的表。

用户表有6行(uid,图片,用户名,密码,名字和姓氏)。

我希望登录的人的图像显示在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 = $_SESSION['logged'];它显示来自uid 1的图片时,即使当前登录的uid是2

修改: 这是我的数据库表的screenshot

3 个答案:

答案 0 :(得分:0)

试试这个例子:

$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'] ).'"/>';

当您将图像存储在数据库中时,这是显示图像的正确方法。

答案 1 :(得分:0)

尝试

$ imgdata = $ row ['image'];

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

答案 2 :(得分:0)

您没有获得图片的原因是

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

您已在$uid中指定了名称,并在查询中使用以integer值进行搜索。