DANFA

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

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

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

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

	if ($_POST['name'] == $data[0]) {
		if ($_POST['pass'] != $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);

Может проблема в другом месте, но другого места я не вижу в Вашем коде.
Скорпион, очень Вам благодарен, Вы гений! Теперь правильный пароль определяется правильно.
По коду видно, что функция exit в любом случае выполнит свое предназначение. Первый случай:
		if ($_POST['pass'] != $data[1]) {
			exit('Неверно введён пароль.');
		}

Тут она сработает, если пароль неверный. Если все пароли совпадают, то последняя строка кода:
exit('Пользователь не найден.');

Остановит сценарий. Чтобы этого не произошло, необходимо последнюю строку упаковать в условие, например, так:
if (empty($users))
{
	exit('Пользователь не найден.');
}

И будет правильнее вставить это условие, сразу после получения данных:
$users = file('users.db', FILE_IGNORE_NEW_LINES);