Как распечатать изображение в html, используя php echo и переменную $_SESSION?

#php #html

#php #HTML

Вопрос:

Я пытаюсь распечатать изображение пользователя, используя PHP и HTML. Изображение пользователя сохраняется внутри $_SESSION['usericon']

Ошибка в строке 3.

Я попытался удалить теги PHP и отключить print_r и т.д.

 <?php
if (isset($_SESSION['userId'])) {
    echo '<img class="img-responsive" src="img/<?php print_r($_SESSION['userIcon']); ?>">
          <a href="settings.php">Settings</a>
          <form action="lib/logout.php" method="POST">
              <button type="submit" name="logout-submit">Logout</button>
          </form>';
} else {
?>
  

Комментарии:

1. Вы уже находитесь в разделе PHP code, поэтому использование <?php внутри этого снова не имеет абсолютно никакого смысла. Пожалуйста, прочтите некоторые основы конкатенации строк. (Нам не нужно объяснять это здесь, этот сайт не является заменой руководств и т.д.)

2. Вы могли бы просто объединить переменную, не уверены, что это все еще тот синтаксис (не выполняется php с версии 4): echo '<img class="img-responsive" src="img/' . $_SESSION['userIcon']) . '">';

3. @executable Я присвоил переменной $_SESSION[‘userIcon’], но теперь, когда я смотрю на исходный код страницы, я просто делаю это: <img class=»img-responsive» src=»img / $ userIcon»>

Ответ №1:

Вот простое решение вашей проблемы. Вам нужно удалить теги php и использовать конкатенацию.

 <?php
if (isset($_SESSION['userId'])) {
    echo '<img class="img-responsive" src="img/'.$_SESSION['userIcon'].'">
          <a href="settings.php">Settings</a>
          <form action="lib/logout.php" method="POST">
              <button type="submit" name="logout-submit">Logout</button>
          </form>';
} else {

}
?>
  

Ответ №2:

изменить

  echo '<img class="img-responsive" src="img/<?php print_r($_SESSION['userIcon']); ?>">
  

Для

  echo '<img class="img-responsive" src="img/'.$_SESSION['userIcon']).'">';
  

Ответ №3:

Вы можете использовать что-то вроде этого:

 <?php
    if (isset($_SESSION['userId'])) {
        $img = sprintf('<img class="img-responsive" src="img/%s" />', $_SESSION['userIcon']);
        echo $img . ' <a href="settings.php">Settings</a>
              <form action="lib/logout.php" method="POST">
                <button type="submit" name="logout-submit">Logout</button>
              </form>';
    } else {
        // @todo
    }
?>
  

rsrs

Ответ №4:

Вы запустили PHP-код внутри PHP-кода… Это правильный img src:

 src="img/' . print_r($_SESSION['userIcon']) . '"
  

Я бы посоветовал вам хранить все (временные) изображения на вашем сервере, а не в файле сеанса 🙂 Хорошего дня.