Проблема в том, что $ username будет отображаться независимо от того, что это такое, и если пользователь не вошел в систему, $ username предположительно будет нулевым ("") строка.
Решение состоит в том, чтобы использовать функцию isset , которая принимает один параметр, переменную. Он возвращает true, если переменная установлена, и false, если это не так.
Рекомендуется отформатировать вывод с помощью sprintf .
<?php
// Get the username in whatever method you were using
$username = ...
if (!isset($username)) {
// If the variable is not set (empty) set it to 'Guest'
$username = 'Guest';
}
$title = sprintf('Welcome, %s!', $username);
?>
<html>
<head>
<title><?php echo $title; ?></title>
</head>
</html>