Честно говоря, здесь есть серьезные проблемы.
Ноль. Вы не должны хранить незашифрованные пароли. Когда-либо. Используйте одностороннее хеширование, например sha1 () (не md5) с солью, об этом есть множество руководств в Интернете.
One. Использование eval () является плохой практикой, как с точки зрения производительности, так и с точки зрения безопасности. Ищите другие механизмы, они всегда рядом.
Два. Вы должны использовать надежные механизмы хранения данных, кроме файла php. Предложите использовать СУБД, такую как mysql, которая гарантирует, что для пользователей никогда не будут создаваться повторяющиеся записи.
Три. Не следует придавать какое-либо особое значение имени пользователя, например, admin или mod, делать разрешения специальным полем или, что еще лучше, рассмотреть возможность использования авторизации на основе ролей.
Четыре. Вы не можете контролировать безопасность кода, запускаемого для определенного пользователя, без правильной архитектуры. Подумайте об использовании объектно-ориентированного подхода MVC, вы снова можете найти много руководств по этому поводу.
Извините, это звучит критично, но я серьезно считаю, что это лучший ответ, чем публикация исправлений к представленному вами коду.