Попытка отобразить другую картинку для вошедшего в систему пользователя, если это администратор или простой пользователь. Вот моя функция
function isAdminPhotoChange() {
// check if user is admin or user
if (isset($_SESSION['user']) && $_SESSION['user']['user_type'] == 'admin') {
if (file_exists("images/metcircle13.png")) {
$filename = "$metcircle13.png";
echo '<img src = "images/<?php echo'. $filename.'?>" style = "height: 50px;">';
} else {
if (isset($_SESSION['user']) && $_SESSION['user']['user_type'] == 'user') {
$filename = "user_profile.jpg";
echo '<img src = "images/<?php echo'. $filename.'?>" style = "height: 50px;">';
}
}
}
}
А вот и вызов в другом php файле
<?php
include("functions.php");
$comm = mysqli_query($db, "select name,comment,post_time from comments");
while($row=mysqli_fetch_array($comm)){
$name=$row['name'];
$comment=$row['comment'];
$time=$row['post_time'];
}
?>
<div class = "sxolion">
<strong style = "margin: 3px; color: #000; text-shadow: 2px 2px 5px #3d5c5c;"><?php isAdminPhotoChange(); ?><br><p style = "margin: 4px;"><?=$name?></p></strong><p style = "margin: 3px;"><?=$comment?></p><span class = "time"><br><p style = "margin: 4px;"><?=date("j/m/Y g:i:sa", strtotime($time))?></p></span>
Благодарю вас!
У вас не может быть тегов php внутри тегов php
echo "<img src='images/$filename' style='height: 50px;'>"; ДВАЖДЫ
Вам нужно сменить if (file_exists("images/metcircle13.png")){ на if (file_exists("images/$metcircle13.png")){.
спасибо, они действительно полезны!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Как ни странно, в вашей функции isAdminPhotoChange () было ужасно много логических / синтаксических ошибок, которые были упомянуты в комментариях, и некоторые другие, хотя ни одна из них не вызвала бы ошибку.
Вот моя попытка исправить только эту функцию, так как все остальное выглядит нормально:
function isAdminPhotoChange()
{
// ENSURE SESSION HAS STARTED
if (session_status() === PHP_SESSION_NONE)
{
session_start();
}
$admin_img = "images/metcircle13.png";
$user_img = "images/user_profile.jpg";
// IS ADMIN
if (isset($_SESSION['user']) && $_SESSION['user']['user_type'] == 'admin' && file_exists($admin_img))
{
echo '<img src = "'.$admin_img.'" style = "height: 50px;">';
}
// IS USER
else if (isset($_SESSION['user']) && $_SESSION['user']['user_type'] == 'user' && file_exists($user_img))
{
echo '<img src = "'.$user_img.'" style = "height: 50px;">';
}
}
Вероятно, опечатка - источником образа администратора будет images/images/metcircle13.png.
Спасибо. Да, это правда, я пытаюсь выучить php, но я плохой ученик: D Ну, это работает! Спасибо. Проблема в том, что когда я вхожу в систему как другой пользователь, изображения меняются. Не по счету! В любом случае, спасибо
@ L-DracWarThorn Вы уверены, что использовали session_start(); и что на самом деле внутри переменной $_SESSION есть значения? ... Я отредактировал свой код выше, чтобы убедиться, что сеанс начался.
Этот
$filename = "$metcircle13.png";выглядит неправильно