Пароли не совпадают (Авторизация пользователя на PHP без MySQL)

Всем доброй ночи. Есть один очень старый скрипт, работающий без mysql, нашёл его на одном каталоге скриптов. Регистрация пользователя проходит успешно, пользователь вводит имя пользователя и пароль, с этим проблем нет, но когда пользователь авторизуется начинаются проблемы, скрипт постоянно выдаёт предупреждение "Неверно введён пароль.", хотя пароль введён правильно, 100%.

В качестве базы данных, скрипт использует файл с расширением db. Вот так получаем список пользователей из базы:
$users = file('users.db');

Всё в один массив. Дальше, при помощи цикла foreach проходим по списку и ищем нужное имя пользователя, как найдет, сравнит пароль. Пароль вводится верно, а выдаёт, что не верно:
foreach ($users as $user) {
	$data = explode('::', $user);

	if ($_POST['name'] == $data[0]) {
		if ($_POST['pas'] != $data[1]) {
			exit('Неверно введён пароль.');
		}
		else {
			login($data[0], $data[1]);
		}
	}
}

exit('Пользователь не найден.');

База составляется таким образом:
User1::password1
User2::password2
User3::password3

Сам скрипт очень понравился и не хотелось бы выбрасывать его, а хочется исправить.
Пароль верный, а ошибка выходит, скорее всего, из-за того, что в конце пароля присутствует перенос на новую строку. Как сказано на официальном сайте: http://php.net/manual/ru/function.file.php, чтобы не было переносов в элементах массива, используйте флаг: FILE_IGNORE_NEW_LINES - Пропускать новую строку в конце каждого элемента массива:
$users = file('users.db', FILE_IGNORE_NEW_LINES);

Может проблема в другом месте, но другого места я не вижу в Вашем коде.
Скорпион, очень Вам благодарен, Вы гений! Теперь правильный пароль определяется правильно.