我有一个名为登录的数据库和一个名为用户的表。
用户表有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
答案 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
值进行搜索。