# Changelog

**PHP User Registration** — https://rskworld.in  
Developer: Molla Samser | RSK World  
Contact: help@rskworld.in | +91 93305 39277  
© 2026 RSK World. Licensed under [LICENSE.md](LICENSE.md) (MIT).  

---

All notable changes to this project are documented in this file.

## [1.1.1] – 2026

### Fixed

- Contact form: auto-create `contact_messages` table when missing so "Unable to send message" no longer occurs on first use.

---

## [1.1.0] – 2026

### Added

- **Failed login tracking**: failed attempts (email, IP, time) stored in `failed_login_attempts`; Admin → Failed Logins to view
- **Admin activity log**: role changes, suspend/unsuspend, and verify actions logged; Admin → Activity Log to view
- **Sortable admin users list**: click column headers (ID, Name, Email, Joined, Last Login) to sort
- **Profile avatar**: upload JPG/PNG/GIF/WebP (max 2 MB), remove picture; shown on dashboard and in admin users table
- Migration `sql/migrate-add-new-features.sql` for new tables and `avatar_path` column

---

## [1.0.0] – 2026

### Added

- User registration with validation
- Email verification (token-based, 24h expiry) and resend
- Password hashing (PHP `password_hash` / `password_verify`)
- Forgot password and reset password (email link, 1h expiry)
- Session-based login with “Remember me”
- Protected dashboard with last login
- Profile: update name, change password, delete account
- Terms of Service and Privacy Policy pages
- Contact form (messages stored in database)
- Custom 404 page
- Admin area: dashboard, users list (search, pagination, export CSV), contact messages (pagination, delete)
- Demo user (auto-created, credentials on login/home)
- Password strength indicator (register and profile)
- Redirect after login to originally requested page
- Database migrations for existing installs
- All documentation: README, LICENSE, CONTRIBUTING, CHANGELOG, CODE_OF_CONDUCT, SECURITY

---

*For full license terms, see [LICENSE.md](LICENSE.md).*
