Попытка получить изображение профиля пользователя из базы данных MySQL.

0

У меня возникла проблема с попыткой получить ссылку на профиль пользователей, которая хранится в базе данных MYSQL.

Я попытался запустить этот код, чтобы выбрать userprofile (где хранится ссылка на изображение профиля пользователей), но при этом возникла ошибка 500.

        <?php
    $stmt = $DB_con->prepare('SELECT id, userprofile FROM users ');
    $stmt->execute();
if($stmt->rowCount() > 0)
{
    while($row=$stmt->fetch(PDO::FETCH_ASSOC))
    {
        extract($row);
        ?>

Изображение 174551

Ссылка сохраняется в столбце userprofile.

HTML (function.php имеет в нем информацию о базе данных):

<?php 
    include('functions.php');


    if (!isAdmin()) {
        $_SESSION['msg'] = "You must log in first";
        header('location: ../login.php');
    }


?>

<!DOCTYPE html>
<html>
<head>
    <title> Admin Home</title>

</head>
<body>
    <div class="header">
        <h2>Admin - Home Page</h2>
    </div>
    <div class="content">
        <!-- notification message -->


        <!-- logged in user information -->
        <div class="profile_info">
            <img src="uploads/<?php echo $row['userprofile']; ?>" class="img-rounded" width="250px" height="250px" />

            <div>
                <?php  if (isset($_SESSION['user'])) : ?>
                    <strong><?php echo $_SESSION['user']['username']; ?></strong>

                    <small>
                        <i  style="color: #888;">(<?php echo ucfirst($_SESSION['user']['user_type']); ?>)</i> 
                        <br>
                        <a href="home.php?logout='1'" style="color: red;">logout</a>
                        &nbsp; <a href="create_user.php"> + add user</a>
                    </small>

                <?php endif ?>
            </div>
        </div>



    </div>

</body>
</html>

Изображение тестируемого пользователя (Bigfella)

Изображение 174551

Любые идеи о том, почему он не извлекает ссылку на изображение из базы данных? Заранее спасибо!!

Теги:

4 ответа

0

1.) Ошибка 500 - ошибка сервера. Причиной здесь является неправильный синтаксис. Попробуй это:

<?php
    ...

    if($stmt->rowCount() > 0)
    {
        // Since you want only one row (one user) you can drop the while
        $row=$stmt->fetch(PDO::FETCH_ASSOC);
        extract($row);
    }
?>

2.) Почему вы загружаете значения id и userprofile у всех пользователей?

Поскольку вы показываете информацию только одного пользователя за раз, было бы лучше, если бы вы использовали что-то более избирательное:

$stmt = $DB_con->prepare('SELECT 'id', 'userprofile' FROM users WHERE 'email'='.$clean['emailAddress']);
0

Я закончил решение проблемы 500 Ошибка Не удалось обработать запрос, вместо того, чтобы иметь код в начале, я переместил его ниже <!DOCTYPE html> и он отлично справился с ошибкой, поэтому я не знаю, что произошло, но теперь он работает! Спасибо всем, кто внес вклад, помогая мне попытаться это исправить! :)

0

Вам нужно a } чтобы закрыть цикл while() и другой } чтобы закрыть оператор if.

В общем случае, чтобы выяснить ошибку PHP 500, если у вас нет доступа к изменению отчета об ошибках или запуску в режиме командной строки (большинство общих хостов не будут предоставлять ни один из вариантов), разделите код на код (или двоичный 1/2 ваши заявления) в то время, пока вы не включите часть его работы и не добавите обратно строку за раз, и, надеюсь, вы сможете найти синтаксическую ошибку. 500 может означать много чего, но с PHP я считаю, что это вообще означает фатальную синтаксическую ошибку.

  • 0
    Как это правильно? $stmt = $DB_con->prepare('SELECT id, userprofile FROM users '); $stmt->execute(); if($stmt->rowCount() > 0) { } while($row=$stmt->fetch(PDO::FETCH_ASSOC)) { } extract($row); Я все еще вижу ошибку 500, не в состоянии обработать запрос.
  • 0
    Нет. {} Окружают выполняемые операторы. Используя ваш оригинальный код, это будет добавление еще двух } в конце, перед ?>
Показать ещё 2 комментария
0

500 html означает, что при попытке обслуживания страницы на сервере есть некоторая ошибка.

это означает, что вы, вероятно, генерируете ошибочный URL-адрес в

<img src="uploads/<?php echo $row['userprofile'];?>" class="img-rounded" width="250px" height="250px"/>

или на стороне сервера есть переопределение, которое позволяет каждому вызову определенного URL-адреса обслуживаться скриптом.

попробуйте проверить файл .htaccess если вы используете Apache/HTTPD

Ещё вопросы

Сообщество Overcoder
Наверх
Меню