Я посмотрел на другие вопросы SO, и ни один из них не решил проблему. Следующий класс определяет переменную и затем вызывает переменную в HTML-коде. Я использовал этот же метод для другой страницы PHP, и он отлично работает. По какой-то причине это не работает на этой странице. Я делал это так много раз без проблем. PHPStorm говорит, что переменная $ пользователю «возможно, не был определен», но я знаю, что это так. Как я могу это исправить? Я попытался установить переменную global в верхней части страницы без удачи. Я попытался установить глобальную переменную после if (isset ()) и до сих пор не работает. Вот мой PHP-код:
<?php
session_start();
require_once 'includes/class.user.php';
$user_edit = new USER();
if(!$user_edit->is_logged_in())
{
$user_edit->redirect('index.php');
}
if(isset($_GET['user_id'])) {
$tid = $_GET['user_id'];
$stmt = $user_edit->runQuery("SELECT * FROM users WHERE user_id = :id");
$stmt->execute(array(':id' => $tid));
$user = $stmt->fetch(PDO::FETCH_ASSOC);
}
?>
<?php include('header.php'); ?>
<div class="container side-collapse-container">
<p><?php if (!empty($user['username'])) {
echo $user['username'];
} ?></p>
</div>
<?php include('footer.php'); ?>
РЕДАКТИРОВАТЬ
Это то, что отображается в браузере после запуска его с XAMPP
Примечание: неопределенная переменная: user в C: \ Users \ USER \ PhpstormProjects \ site1 \ view_user.php в строке 22
Это должен быть комментарий, но у меня пока нет представителя.
PhpStorm говорит, что переменная $ user не может быть определена, потому что она в настоящее время установлена в блоке if. Если вы хотите, чтобы сообщение PhpStorm исчезло, определите $ user над ‘if’ как массив.
$user = [];
if (isset($_GET['user_id'])) {
$tid = $_GET['user_id'];
$stmt = $user_edit->runQuery("SELECT * FROM users WHERE user_id = :id");
$stmt->execute(array(':id' => $tid));
$user = $stmt->fetch(PDO::FETCH_ASSOC);
}
Если имя пользователя не отображается на странице, то запрос либо возвращается как пустое (false), либо индекс ‘username’ неверен.
Конечно, для заполнения $ user необходимо указать user_id в строке запроса.
определять $user
вначале
$user = array();
// your codes
Проверьте $user
перед звонком
if (isset($user['username']) && !empty($user['username'])) {
// your codes