注意:未定义的索引:错误

时间:2013-04-24 20:53:18

标签: php session

在我来到这里之前,我已经阅读了很多不同的东西试图解决这个问题。 无论如何我得到了

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

我无法弄清楚我做错了什么。 我习惯使用cookies而不是会话,所以这有点不同。

以下是代码。

的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 :(得分:1)

请告诉您如何调试自己的代码,而不是告诉您这个实例中的错误。这些是根据错误消息确定问题的步骤。

  1. 查找行号。“......第18行”告诉您问题出在代码的第18行。计算线条,直到达到那条线。就是这个:
  2.   

    $ LoggedIn = mysql_query(“SELECT * FROM Users WHERE Username ='”。$ _ SESSION ['Username']。“'”);

    1. 在Google上搜索错误消息短语,找出其含义。在这种情况下,这是“未定义的索引”。单词“index”是数组键的另一个单词。顺便说一句,$ _GET,$ _POST和$ _SESSION都是数组。 “未定义”表示索引不存在。用简单的英语,这意味着$ _SESSION ['Username']还不存在。在尝试查找之前,你应该检查它是否存在。
    2.  if(isset($_SESSION['Username'])) {
            $LoggedIn = mysql_query("SELECT * FROM Users WHERE Username='".$_SESSION['Username']."'");
            $ULN = mysql_fetch_object($LoggedIn);
       } else {
            $ULN = false;
       }
      

答案 1 :(得分:0)

在执行查询之前检查$_SESSION['Username']。新访客不会设置该会话变量。

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