Php 从用户id显示用户的特定图像
我有一个名为login的数据库和一个名为users的表 users表有6行(uid、image、username、password、firstname和lastname) 我希望登录者的图像显示在div中,但由于某种原因它不会显示 下面是我正在使用的代码片段: logindb.php: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) {
<?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']时代码>它显示来自uid1
的图像,即使当前登录的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
,因此它将显示用户具有uid1
的图像。您需要检查会话['admin']
包含的内容。如果你使用静态uid,你也会看到其他用户的值。我发现了这个错误。它应该是$uiid=$_SESSION['admin'];和$users=“SELECT*FROMusers
其中username
=”$uiid';是的,您的会话变量admin
出现问题。如果你觉得有用,你可以接受这个答案。