-2

我收到以下错误消息:

未定义索引:在第 20 行登录 C:\wamp\www\Networking Script\home.php

使用以下 PHP 代码时:

<?php
  include("session/DBConnection.php");
   $user = $_SESSION['log']['username'];  //this is the 20th line in home.php
    $query = mysql_query("SELECT * FROM members WHERE username = '$user'")or die (mysql_error()); 
    $display = mysql_fetch_array($query);   ?>

请帮帮我 :) 谢谢 :)

4

6 回答 6

2

开始你的脚本

session_start();

于 2013-06-23T16:39:43.037 回答
1

未定义的索引可能是一个“通知”。只是意味着您正在尝试访问尚未首先初始化的数组的一部分。

您可以在从数组中读取之前使用array_key_exists来检查偏移量是否存在

于 2013-06-23T16:42:10.900 回答
0

可以肯定地说,但有失礼的风险......这意味着尚未设置vairable。它是空的。session_start(); 将是首先要检查的。如果它没有通过您的“if isset”部分,则不会设置此值。尝试在据称设置后简单地打印出变量,并在变量被发送到任何地方之前检查它。

于 2013-06-23T17:34:42.350 回答
0

您也可能刚刚忘记开始会话。请记住,您还必须使用此函数来恢复会话:PHP: session_start - Manual

于 2013-06-23T16:41:17.157 回答
0

您需要在访问会话数据的每个文件的开头调用 session_start。

于 2013-06-23T16:41:47.127 回答
0

它只是告诉你第 20 行的变量还不存在。

session_start();

if(isset($_SESSION['log']['username'])
{

include("session/DBConnection.php");
        $user = $_SESSION['log']['username'];  
        $query = mysql_query("SELECT * FROM members WHERE username = '".mysql_real_escape_string($user)."'")or die (mysql_error()); 
        $display = mysql_fetch_array($query); 
{
else
{
// on username
}

http://www.php.net/manual/en/book.pdo.php

http://uk1.php.net/manual/en/mysqlinfo.api.choosing.php

http://php.net/manual/en/function.htmlspecialchars.php将代码输出到浏览器

http://php.net/manual/en/function.mysql-real-escape-string.php

于 2013-06-23T16:49:18.767 回答