метод многомерного массива для проверки входа в функцию - PullRequest
0 голосов
/ 25 августа 2011

Я пытаюсь использовать метод многомерного массива для проверки входа в систему.

например, у меня есть массив ниже:

$multiuser['master'][0] = 'boss'=>'123456';

$multiuser['master'][1] = 'computer' => '636363';

$multiuser['admin'][0] = 'admin1' => '382382';

$multiuser['admin'][1] = 'admin2' => '323243';

Как проверить пользователя, если он ввел свое имя пользователя как «admin1» или «boss», существует в этом массиве и пароль совпадает с именем пользователя «admin1» / «boss»? И я хочу знать, что это группа пользователей тоже. Если имя и пароль босса совпадают. Как мне узнать, что группа пользователей находится под мастером.

Ответы [ 2 ]

2 голосов
/ 25 августа 2011

Это не очень хороший способ обработки логинов.

1) Структура вашего массива затрудняет поиск пользователя.Конечно, вы можете сканировать каждый массив в $multiuser и пытаться найти желаемое имя пользователя, но по мере добавления групп это будет становиться все сложнее и сложнее.

Вы должны упростить поиск пользователя,и найдите группу оттуда.Например:

$users = array ('boss' => array(
                          'hash'  => 'password_hash',
                          'group' => 'master'),

                'admin1' => array(
                          'hash'  => 'password_hash',
                          'group' => 'admin'), 
                // and so forth
               );

Теперь, если вы хотите найти $user, вы просто делаете $users[$user], и если оно определено, оно есть.Затем вы можете получить группу из $users[$user]['group'] и т. Д.

2) Вы используете то, что выглядит как текстовые пароли.Пароли не должны храниться в виде открытого текста, но, по крайней мере, должны быть хешированы и засолены.Это очень длинная тема, но вот отправная точка:

Хеширование паролей (PHP Security Consortium)

3) В любом случае, вы должны отказаться от этой идеи хранения логинаИнформация в PHP полностью и использовать базу данных.Хранение информации о пользователях в виде простого файла (не очень хорошо) или файла PHP (что еще хуже) усложнит управление в будущем.

Это может показаться не таким уж большим делом, поскольку у вас есть несколько пользователей., но это очень грязно.

0 голосов
/ 25 августа 2011

Я использую этот метод на многих своих сайтах:

$accounts[]=array("username" => "guest123","password" => "password123");
$accounts[]=array("username" => "jon","password" => "password123");
$accounts[]=array("username" => "bob123","password" => "password123");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...