登录后出现PHP未定义索引错误

登录后出现PHP未定义索引错误,php,html,Php,Html,我已经从互联网上下载了这个项目,并试图访问的网页,这是好的。但在登录到desire个人资料后,我只得到了这种我无法解决的错误。有人能帮我吗 错误页面的截图。 出现错误的页面 friends.php <?php if(!isset($_SESSION)){ session_start(); } include("profilesql.php"); $result = mysql_query("SELECT * FROM addfriends where meid='$_SESSIO

我已经从互联网上下载了这个项目,并试图访问的网页,这是好的。但在登录到desire个人资料后,我只得到了这种我无法解决的错误。有人能帮我吗

错误页面的截图。

出现错误的页面

friends.php

<?php
if(!isset($_SESSION)){
    session_start();
}
include("profilesql.php");
$result = mysql_query("SELECT * FROM addfriends where meid='$_SESSION[stuid]' ");
while($row = mysql_fetch_array($result))
  {
$uid1[$i] = $row["friendid"];
$i++;
  }

 $acrec1 = mysql_query("SELECT * FROM addfriends WHERE userid='$uid1[1]'");

while($row = mysql_fetch_array($acrec2))
  {
    $img1[0]=  $row["image"];
  }

  $acrec2 = mysql_query("SELECT * FROM addfriends WHERE userid='$uid1[2]'");

while($row = mysql_fetch_array($acrec2))
  {
    $img1[1]=  $row["image"];
  }

  $acrec3 = mysql_query("SELECT * FROM profile WHERE userid='$uid1[3]' ");

while($row = mysql_fetch_array($acrec3))
  {
    $img1[2]=  $row["image"];
  }

  $acrec4 = mysql_query("SELECT * FROM profile WHERE userid='$uid1[4]' ");
while($row = mysql_fetch_array($acrec4))
  {
    $img1[3]=  $row["image"];
  }
  ?>

这些都是严格的错误-这些错误不是致命的,而是不安全代码的迹象。许多是因为缺少数组键,这意味着您正在访问的数组键没有定义。要停止错误,在访问可能不存在的数组键之前,需要检查它们是否已设置。例如:

if($row["userid"] != $_SESSION["stuid"] )
变成

if(!isset($_SESSION["stuid"] || $row["userid"] != $_SESSION["stuid"])
对于未定义的变量警告,您需要事先定义变量,或者在访问它们时检查它们是否已设置。对于您的使用,您可能只需定义未设置的:

$uid1 = array();
最后,您可能无意中使用了错误的变量。第一个
while($row=mysql\u fetch\u数组($acrec2))
应该是
while($row=mysql\u fetch\u数组($acrec1))


不过,这里的许多代码效率很低。例如,您正在运行多个查询,以查找在一个查询中可以完成的操作。考虑使用A来获取所有“朋友”,而不是对每个用户执行一个查询。

将您的脚本包含在<代码>如果语句:

friends.php

<?php
if(!isset($_SESSION)){
    session_start();

    include("profilesql.php");
    $result = mysql_query("SELECT * FROM addfriends where meid='$_SESSION[stuid]' ");
    while($row = mysql_fetch_array($result))
    {
        $uid1[$i] = $row["friendid"];
        $i++;
    }

    $acrec1 = mysql_query("SELECT * FROM addfriends WHERE userid='$uid1[1]'");

    while($row = mysql_fetch_array($acrec2))
    {
        $img1[0]=  $row["image"];
    }

    $acrec2 = mysql_query("SELECT * FROM addfriends WHERE userid='$uid1[2]'");

    while($row = mysql_fetch_array($acrec2))
    {
        $img1[1]=  $row["image"];
    }

    $acrec3 = mysql_query("SELECT * FROM profile WHERE userid='$uid1[3]' ");

    while($row = mysql_fetch_array($acrec3))
    {
        $img1[2]=  $row["image"];
    }

    $acrec4 = mysql_query("SELECT * FROM profile WHERE userid='$uid1[4]' ");
    while($row = mysql_fetch_array($acrec4))
    {
        $img1[3]=  $row["image"];
    }
}
?>

很明显,您的错误显示未设置
$\u会话[stuid]
。即使您正在检查会话是否未设置,
SESSION\u start(),也尝试将其设置为
$\u SESSION['stuid']
必须位于顶部。然后你就可以设定你的条件,而不是现在的方式。另外,它必须在您的所有文件中。检查此提示您确定project没有更新的版本吗?他们在其他蹩脚的编码实践中使用mysql\u查询(
ORDER BY RAND()
,使用
SELECT*
,并且只使用一列,不转义查询中的任何内容,第一列
while($row=mysql\u fetch\u array($acrec2))
应该是
while($row=mysql\u fetch\u array($acrec1))
,等等).它在friends.php中按我输入的代码排序。但是profile.php中仍然存在错误。查看我正在上传的更新屏幕截图
<?php
if(!isset($_SESSION)){
    session_start();

    include("profilesql.php");
    $result = mysql_query("SELECT * FROM addfriends where meid='$_SESSION[stuid]' ");
    while($row = mysql_fetch_array($result))
    {
        $uid1[$i] = $row["friendid"];
        $i++;
    }

    $acrec1 = mysql_query("SELECT * FROM addfriends WHERE userid='$uid1[1]'");

    while($row = mysql_fetch_array($acrec2))
    {
        $img1[0]=  $row["image"];
    }

    $acrec2 = mysql_query("SELECT * FROM addfriends WHERE userid='$uid1[2]'");

    while($row = mysql_fetch_array($acrec2))
    {
        $img1[1]=  $row["image"];
    }

    $acrec3 = mysql_query("SELECT * FROM profile WHERE userid='$uid1[3]' ");

    while($row = mysql_fetch_array($acrec3))
    {
        $img1[2]=  $row["image"];
    }

    $acrec4 = mysql_query("SELECT * FROM profile WHERE userid='$uid1[4]' ");
    while($row = mysql_fetch_array($acrec4))
    {
        $img1[3]=  $row["image"];
    }
}
?>