Невозможно отобразить определенную картинку для администратора и простого пользователя в приложении чата

Попытка отобразить другую картинку для вошедшего в систему пользователя, если это администратор или простой пользователь. Вот моя функция

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>

Благодарю вас!

Этот $filename = "$metcircle13.png"; выглядит неправильно

Rotimi 02.11.2018 15:28

У вас не может быть тегов php внутри тегов php

Rotimi 02.11.2018 15:29
echo "<img src='images/$filename' style='height: 50px;'>"; ДВАЖДЫ
RiggsFolly 02.11.2018 15:30

Вам нужно сменить if (file_exists("images/metcircle13.png")){ на if (file_exists("images/$metcircle13.png")){.

hardik solanki 02.11.2018 15:30

спасибо, они действительно полезны!

L-Drac WarThorn 02.11.2018 15:38
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
5
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как ни странно, в вашей функции 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.

frobinsonj 02.11.2018 15:48

Спасибо. Да, это правда, я пытаюсь выучить php, но я плохой ученик: D Ну, это работает! Спасибо. Проблема в том, что когда я вхожу в систему как другой пользователь, изображения меняются. Не по счету! В любом случае, спасибо

L-Drac WarThorn 02.11.2018 15:53

@ L-DracWarThorn Вы уверены, что использовали session_start(); и что на самом деле внутри переменной $_SESSION есть значения? ... Я отредактировал свой код выше, чтобы убедиться, что сеанс начался.

Gary Thomas 02.11.2018 15:55

Другие вопросы по теме