2013-04-24 3 views
0

Я прочитал много разных вещей, пытаясь исправить это, прежде чем я пришел сюда. В любом случае я получаюПримечание: Неопределенный индекс: Ошибка

"Notice: Undefined index: Username in C:\xampp\htdocs\home\header.php on line 18" 

Я не могу понять, что я делаю неправильно. Я использую для работы с кукисами не сессий, так что это немного другое.

Вот код.

index.php

<table class='siteTable'> 
<tr> 
<td class='account'> 


<?php 
if(!$ULN){ 
echo" 
<div class='settings1'> 
<center>Login</center> 
<br /> 

</div> 
<div class='settings2'> 
<center>Register</center> 
<br /> 

</div> 
"; 
} else { 
echo" 
Logged In! 
"; 
} 
?> 
</td> 
<td> 

</td> 
</tr> 
</table> 

<?php include("footer.php"); ?> 

header.php

<?php 
ob_start(); 
?> 
<html> 
<head> 
<link href='css/style.css' type='css/text' rel='stylesheet'> 
</head> 
<body style='background-image:url("darkbg.png");'> 
<?php 
include("database.php"); 
?> 
<div class='mainDiv' style='background-image:url("mdbg.png");'> 
<div class='siteBanner' style='background-image:url("siteBanner.png");'></div> 
<?php 
session_start(); 


$LoggedIn = mysql_query("SELECT * FROM Users WHERE Username='".$_SESSION['Username']."'"); 
$ULN = mysql_fetch_object($LoggedIn); 


$banner = true; 
if($banner == true){ 
echo"<div class='Banner'>In the works.</div>"; 
} 
?> 
<div class='siteLinks'> 
<ul> 
<a href='index.php'> 
<li> 
Home 
</li> 
</a> 
<a href='#catalog.php'> 
<li> 
Catalog 
</li> 
</a> 
<a href='#users.php'> 
<li> 
Users 
</li> 
</a> 
<a href='#forum.php'> 
<li> 
Forum 
</li> 
</a> 
</ul> 
</div> 
<div class='siteContent'> 

Я использую

"$LoggedIn = mysql_query("SELECT * FROM Users WHERE Username='".$_SESSION['Username']."'"); 
$ULN = mysql_fetch_object($LoggedIn);" 

проверить, пользователь вошел в систему или нет, и есть проблема. Извините, если это было уже ответили или нет, если я не могу найти его. Все, что я нашел, это то, что пользователи $ _POST или $ _GET.

+2

Скажи "НЕТ" запутанного кода ... –

+0

Скажи "НЕТ", чтобы писать код в Word. – elclanrs

+0

Скажите «НЕТ» на незакрепленный код – raidenace

ответ

0

Перед тем, как сделать запрос, отметьте для $_SESSION['Username']. Новый посетитель не будет иметь эту переменную сессии.

if (isset($_SESSION['Username'])) { 
    $LoggedIn = mysql_query("SELECT * FROM Users WHERE Username='".$_SESSION['Username']."'"); 
    $ULN = mysql_fetch_object($LoggedIn); 
} 
1

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

  1. Ищите номер строки. «... on line 18» сообщает вам, что проблема находится в строке 18 вашего кода. Подсчитайте строки, пока не достигнете этого. Именно это одна:

$ LoggedIn = mysql_query ("SELECT * FROM Users WHERE Имя пользователя = '". $ _ SESSION [ 'Имя пользователя']. "'");

  1. Поиск Google по фразе сообщение об ошибке, чтобы узнать, что это значит. В этом случае это «неопределенный индекс». Слово «индекс» - это другое слово для ключа массива. $ _GET, $ _POST и $ _SESSION - это все массивы, кстати. «Undefined» означает, что индекс не существует. На простом английском языке это означает, что $ _SESSION ['Username'] еще не существует. Вы должны проверить, существует ли это до того, как попытаться найти его.
if(isset($_SESSION['Username'])) { 
     $LoggedIn = mysql_query("SELECT * FROM Users WHERE Username='".$_SESSION['Username']."'"); 
     $ULN = mysql_fetch_object($LoggedIn); 
} else { 
     $ULN = false; 
} 
Смежные вопросы