PHP数组表示不存在



我通过网站搜索,关键字如"PHP数组错误"one_answers"数据不被PHP发现",但我找不到适合我需要的答案。我正在做一个真正基本的密码保护的网站,与文本文件。我将包括下面的代码,但出现的错误是;

Array ( ) count of banned = 1
Notice: Undefined index: banned[0] in C:xampphtdocsdnsdomainsbanklogin.php on line 17

但是我不确定为什么。代码是用php编写的,如下所示。

<?php
//variables
$user = $_POST["user"];
$pass = $_POST["password"];
$banned = array("admin");
$users = array("admin");
$c = count($users);
$users = print_r(glob("../users/*.txt"));
$r = count($banned);
$k = $r - 1;
echo "count of banned = $r";
$loop = 0;
$isbanned = true;
//check if banned
while ($loop <= $k) {
if ($GLOBALS["user"] == $GLOBALS["banned"][$loop]) {
echo "sorry but this account is banned from this site!";
$GLOBALS["isbanned"] = true;
} 
$loop = $loop + 1;
}
if ($isbanned == false) {
//if you are not banned, check if you are even a proper user with password!
$loop = 0;
while ($loop <= $r) {
if ($GLOBALS["user"] == $GLOBALS["users[$loop]"]) {
$person = print_r(file($GLOBALS["user"] . ".txt"));
if ($GLOBALS["pass"] == $GLOBALS["person[0]"]) {
header('location /welcome.php');
die();
}
} 
$loop = $loop + 1;
}
}
?>

及以下是我文件夹的内容。index.php只是一个基本的表单,它可以工作。

-index.php
-login.php
-Users
|-user.txt

,很抱歉剪掉了它,但是每个。txt文件的内容如下;

1234
2000

第一行是密码,第二行是现金,用于以后的项目。如果您还需要其他的信息,我会尽力去弄到的。谢谢您审阅我的问题。-------------------------------------- 第2部分 ------------------------------------谢谢Barmar回答第一个问题。修复代码后,如果不正确在这里抱歉,系统仍然不会获取文件的内容到数组,所以它仍然不能作为一个登录系统。我知道我应该把它作为一个新问题,但它似乎更适合这样。谢谢你批改我的问题。

$GLOBALS["banned[$loop]"]应为$GLOBALS["banned"][$loop]。索引不是变量名的一部分。变量包含一个数组,然后你需要索引它。

但是根本不需要使用$GLOBALS。您的代码处于全局作用域,因此它可以正常访问全局变量。这一行应该是:

if ($user == $banned[$loop])

如果您想访问函数中的全局变量,您可以使用global声明:

global $user, $banned, $users, $is_banned;

最新更新