2013-12-04 7 views
-2

ОК, поэтому я делаю это там, где, когда пользователь выходит из системы, и они пытаются вернуться на страницу участника, он говорит, что вы должны войти в систему, чтобы просмотреть эту страницу, а эхо отображает, что они должны быть зарегистрированы и содержать но есть ошибка. Вот страница. он говорит, что проблема на линии 5.Php Undefined index?

ЧЛЕН PHP PAGE

<?php 

session_start(); 

if ($_SESSION['username']) 
    echo "Welcome, ".$_SESSION['username']."!<br /><a href='logout.php'>Logout</a>"; 
else 
    die("You must be logged in!"); 
?> 
+0

Не удаляйте свой контент, есть уже два уведомления, что это дубликат. Оставив контент на своем месте, людям проще комментировать этот вопрос, чтобы определить, относится ли это к ним. –

ответ

0
<?php 

session_start(); 

if (isset($_SESSION['username'])) 
echo "Welcome, ".$_SESSION['username']."!<br /><a href='logout.php'>Logout</a>"; 
else 
die("You must be logged in!"); 
?> 
0

Улучшение проверки значения для пункта if. Я хотел бы сделать array_key_exists, а также !empty(trim()) для обеспечения значения установлено:

session_start(); 

if (array_key_exists('username', $_SESSION)) && !empty(trim($_SESSION['username']))) { 
    echo "Welcome, " . $_SESSION['username'] . "!<br /><a href='logout.php'>Logout</a>"; 
} 
else { 
    die("You must be logged in!"); 
} 
+0

Что делать, если '$ _SESSION ['username'] = 0'? 'empty()' check не удастся. – Raptor

+0

Это дополнительный уровень проверки, который должен выполнять исходный плакат на основе логики имени пользователя. Вопрос в том, что ошибка отсутствует в индексе. – JakeGould

0

Чтобы избежать ошибок индекса Неопределенного, вы можете использовать isset() проверить:

session_start(); 
if (isset($_SESSION['username']) && trim($_SESSION['username']) != '') { 
    echo 'Welcome, ' . $_SESSION['username'] . '!<br /><a href="logout.php">Logout</a>'; 
} else { 
    die("You must be logged in!"); 
} 

Side Примечания: Если предположить, эти строки - это первые несколько строк файла, если вы печатаете HTML-код без заголовка и тела HTML, страница не заполнена & браузеры могут жаловаться на структуру HTML. Предложите иметь хотя бы минимальную структуру HTML для каждой страницы на экране.

+2

Обычно я рекомендую хранить PHP и HTML (или любую презентацию) отдельно с настройкой шаблонов именно по этой причине. Затем страницы PHP не выводят html, и он решает проблемы, такие как некорректная структура html, вывод данных перед попыткой команды заголовков и т. Д. –

+0

Согласен. Однако для этого требуется дополнительная работа по кодированию. – Raptor