В прошлой статье я рассказывал, как можно записывать данные в файловую базу данных, минуя MySql. Обратите внимание пожалуйста на то, что файлы лучше использовать только в случае малого количество записываемой информации. Для больших массивов данных, конечно будет удобнее MySql база данных.
Чтение из файла, или выборка, обычно происходит по заданным параметрам. Давайте будем пользоваться переменными прошлой статьи. База данных у нас лежит по адресу ./bd/bd.dat в которой записи идут в формате:
User1:pass1 User2:pass2
И так далее...
Рассмотрим пример, когда нам нужно достать пароль пользователя User2, имя которого хранится в переменной user_name. И пусть введенный пароль хранится в переменной user_pass Для начала загружаем данные всего файла в массив fl, элементами которого станут строки файла:
$fl = File("./bd/bd.dat"); Дальше в цикле проходим построчно весь файл: foreach ($fl as $value) { // в переменной value теперь хранится каждая строка файла; // разобьем ее тоже на массив по двоеточию $ex = explode(":", $value); // таким образом теперь в $ex[0] у нас хранится имя юзера; // а в $ex[1] пароль. Дальше делаем проверку на совпадение; if ($user_name == $ex[0]) $user_pass_bd = $ex[1];} На выходе из цикла мы получим пароль пользователя User2.
Но если вы помните из прошлой статьи, пароль в базе у нас хранится в зашифрованном виде, да еще и под "солью" - 123. Поэтому проверка будет выглядеть чуть-чуть сложнее чем обычно: if (md5($sault.$user_pass) == $user_pass_bd) echo("Пароль для пользователя ".$user_name." введен верно!"); Мы просто также зашифровали введенный пароль, как и при сохранении и потом эти два пароля сравнили.
Как редактировать данные файла, я вам расскажу в следующей статье, а пока на этом всё =)