Не удается получить данные $ _POST для ввода в массив [дубликаты]

0

Я создаю 11-страничный веб-сайт в одном PHP файле. В этой конкретной части я пытаюсь взять имена пользователей из $ _POST ['regUser'] и поместить в массив "логинов", определенный как "$ logins = array();" ,

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

Помните, что это всего лишь небольшая часть более крупной программы, если это кажется странным. Эта конкретная часть должна регистрировать пользователя и показывать страницу "userHome", если они поставляют правильный пароль и добавляют свое имя пользователя в массив $ logins. Все, кроме этого, работает нормально. (Я вызываю функцию в другой части программы)

Я собираюсь опубликовать несколько строк моего кода, потому что считаю, что проблема лежит где-то внутри них (возможно, все это 400+).

$regUser = $_POST['regUser'];
$regPass = $_POST['regPass'];

$goodUsername = array('user1', 'user2');
$goodUserPass = array('user1', 'user2');

$logins = array();

if (isset($_POST['userLog'])) {
    if (in_array($regUser, $goodUsername)) {
        $key = array_search($regUser, $goodUsername);
    }

    if($goodUserPass[$key] == $regPass) {
        array_push($logins, $regUser);
        echo userHome(); return;
    }
    else {
        echo invalidLogin(); return;
    }
}

function adLogins() {
    echo phpHeader();

    echo "<center><h1>User Logins</h1></center><br><br>";
    var_dump($logins);
    echo phpFooter();
}
  • 0
    Это простой вопрос переменной области. $logins не входит в область действия функции adLogins() . Вам нужно будет передать его в качестве параметра типа functoin adLogins($logins) {...} php.net/manual/en/language.variables.scope.php
  • 0
    Основываясь исключительно на опубликованном коде, если вы используете var_dump($logins) вне этой функции, он должен иметь содержимое
Показать ещё 2 комментария
Теги:
arrays
post

1 ответ

0

ваш $logins var выходит за рамки функции adLogins

var_dump($logins);

вне функции входа в систему или передать ее в функцию

function adLogins($logins){}
  • 0
    Ну, по крайней мере, я получил быстрый урок по области видимости переменной php. Если это единственная проблема, с которой кто-либо сталкивался в данном коде, я думаю, моя проблема в другом месте - я все еще получал «NULL», когда делал var_dump. Я даже попробовал просто var_dumping в другом месте вне функции и получил NULL - данные записи просто не попадают в массив. Я полагаю, что не могу опубликовать всю программу, потому что здесь я все перепечатываю, плюс это слишком много, чтобы кто-нибудь прошел через lol. По крайней мере, теперь я знаю о сфере применения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню