diff --git a/README.md b/README.md index e225bde..26023d6 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,9 @@ Piattaforma completa per vendere videolezioni e lezioni live di Pilates. Svilupp ### Area Pubblica - **Homepage** con lezioni demo gratuite -- **Sistema di autenticazione** completo (login, registrazione, recupero password) +- **Sistema di autenticazione** completo (login, registrazione) +- **Recupero password** con token sicuro e scadenza temporale +- **Reset password** via email con link univoco - **Visualizzazione lezioni** con integrazione video (YouTube, Vimeo, locale) - **Pagamento sicuro** tramite PayPal @@ -17,20 +19,24 @@ Piattaforma completa per vendere videolezioni e lezioni live di Pilates. Svilupp - **Accesso illimitato** alle lezioni acquistate ### Area Amministratore -- **Dashboard** con statistiche in tempo reale -- **Gestione lezioni** (crea, modifica, elimina) -- **Gestione utenti** (visualizza, blocca/sblocca) -- **Storico acquisti** con dettagli pagamenti PayPal -- **Report e analisi** vendite +- **Dashboard** con statistiche in tempo reale (utenti, lezioni, acquisti, revenue) +- **Gestione lezioni** (crea, modifica, elimina, attiva/disattiva) +- **Modifica lezioni** con form completo per videolezioni e lezioni live +- **Gestione utenti** (visualizza, blocca/sblocca, statistiche acquisti) +- **Storico acquisti** con dettagli pagamenti PayPal e grafici +- **Report e analisi** vendite con totali formattati ### Funzionalità Tecniche -- ✅ **Sicurezza**: Password crittografate con bcrypt +- ✅ **Sicurezza**: Password crittografate con bcrypt (PHP 8.1+ compatibile) - ✅ **Database**: MySQL con PDO per prevenire SQL injection -- ✅ **Sessioni**: Gestione sicura con timeout automatico -- ✅ **Responsive**: Design mobile-first +- ✅ **Sessioni**: Gestione sicura con timeout automatico (30 minuti) +- ✅ **Reset password**: Token sicuri con scadenza 1 ora +- ✅ **Responsive**: Design mobile-first con CSS moderno - ✅ **Codice commentato**: Ogni funzione è documentata per facilità di manutenzione - ✅ **Log attività**: Tracciamento delle azioni importanti - ✅ **Soft delete**: I dati eliminati non sono rimossi definitivamente +- ✅ **Gestione errori**: Controllo null values per compatibilità PHP 8.1+ +- ✅ **Flash messages**: Sistema di messaggi temporanei per feedback utente --- @@ -56,25 +62,31 @@ C:\xampp\htdocs\pilates-platform\ 1. Apri phpMyAdmin (o il tuo client MySQL preferito) 2. Esegui lo script `database/schema.sql` 3. Questo creerà: - - Il database `pilatesplatform` - - Tutte le tabelle necessarie + - Il database `pilates_platform` (con underscore, non trattino!) + - Tutte le tabelle necessarie (users, lessons, purchases, activity_log) - Un utente amministratore di default - Alcune lezioni demo di esempio + - Campi per reset password (reset_token, reset_expires) **Credenziali Admin di Default:** - Email: `admin@pilatesstudio.com` - Password: `admin123` - ⚠️ **IMPORTANTE**: Cambia questa password subito dopo il primo accesso! +**Se hai problemi con la password admin:** +1. Esegui lo script `database/reset_admin_password.sql` in phpMyAdmin +2. Oppure usa `test_password.php` per verificare l'hash della password +3. La password verrà reimpostata a `admin123` + ### Passo 3: Configura l'Applicazione Apri il file `includes/config.php` e modifica: #### Database ```php -define('DB_HOST', 'localhost'); // Host del database -define('DB_NAME', 'pilatesplatform'); // Nome database -define('DB_USER', 'root'); // Username (es: root per localhost) -define('DB_PASS', ''); // Password database +define('DB_HOST', 'localhost'); // Host del database +define('DB_NAME', 'pilates_platform'); // Nome database (usa underscore!) +define('DB_USER', 'root'); // Username (es: root per localhost) +define('DB_PASS', ''); // Password database ``` #### Sito @@ -209,6 +221,14 @@ La **Dashboard** mostra: - Telefono - Password +#### Recuperare la Password +1. Vai su `login.php` +2. Clicca su "Password dimenticata?" +3. Inserisci la tua email +4. Riceverai un link valido per 1 ora +5. Clicca sul link e imposta una nuova password +6. Accedi con le nuove credenziali + --- ## 🎨 Personalizzazione @@ -329,7 +349,8 @@ Crea `.htaccess` nella cartella `includes/`: ### Errore: "Errore connessione database" - Verifica che MySQL sia avviato - Controlla credenziali in `config.php` -- Assicurati che il database esista +- Assicurati che il database `pilates_platform` esista (NON pilates-platform) +- MySQL non accetta trattini nei nomi database, usa underscore ### Le email non vengono inviate - Configura SMTP in `config.php` @@ -350,6 +371,18 @@ Crea `.htaccess` nella cartella `includes/`: - Attiva `DEBUG_MODE` in `config.php` - Controlla log errori PHP - Verifica permessi file (644) e cartelle (755) +- Controlla percorsi `require_once` nei file (devono essere relativi corretti) + +### Errore "Deprecated: Passing null to parameter" +- Questo è un warning di PHP 8.1+ +- La piattaforma è già aggiornata per gestire valori null +- Se vedi ancora warning, verifica che tutti i file siano aggiornati + +### Reset Password non funziona +- Verifica che le email vengano inviate correttamente +- Configura SMTP in `config.php` se `mail()` non funziona +- Il token scade dopo 1 ora per sicurezza +- Controlla che la tabella `users` abbia i campi `reset_token` e `reset_expires` --- @@ -359,12 +392,12 @@ Crea `.htaccess` nella cartella `includes/`: pilates-platform/ │ ├── admin/ # Area amministratore -│ ├── dashboard.php # Dashboard admin -│ ├── lessons.php # Gestione lezioni -│ ├── lesson_create.php # Crea lezione -│ ├── lesson_edit.php # Modifica lezione (da creare se serve) +│ ├── dashboard.php # Dashboard admin con statistiche +│ ├── lessons.php # Gestione lezioni (lista, elimina) +│ ├── lesson_create.php # Crea nuova lezione +│ ├── lesson_edit.php # Modifica lezione esistente │ ├── users.php # Gestione utenti -│ └── purchases.php # Storico acquisti +│ └── purchases.php # Storico acquisti e revenue │ ├── assets/ # Risorse statiche │ ├── css/ @@ -373,7 +406,8 @@ pilates-platform/ │ └── main.js # JavaScript │ ├── database/ -│ └── schema.sql # Script creazione database +│ ├── schema.sql # Script creazione database +│ └── reset_admin_password.sql # Reset password admin │ ├── includes/ # File PHP condivisi │ ├── config.php # Configurazione @@ -389,13 +423,14 @@ pilates-platform/ │ ├── catalog.php # Catalogo lezioni │ └── profile.php # Profilo utente │ -├── index.php # Homepage -├── login.php # Login -├── register.php # Registrazione -├── forgot_password.php # Recupero password (step 1) -├── reset_password.php # Reset password (step 2) -├── lesson.php # Visualizza lezione +├── index.php # Homepage pubblica +├── login.php # Login utenti e admin +├── register.php # Registrazione nuovi utenti +├── forgot_password.php # Recupero password (richiesta token) +├── reset_password.php # Reset password (con token) +├── lesson.php # Visualizza lezione e acquisto ├── process_payment.php # Elabora pagamento PayPal +├── test_password.php # Utility test hash password (debug) └── README.md # Questo file ``` @@ -467,15 +502,19 @@ Questo progetto è stato creato come piattaforma custom. Sei libero di modificar ## ✅ Checklist Prossimi Passi Dopo l'installazione: -- [ ] Cambia password admin +- [ ] Cambia password admin (profilo o reset_admin_password.sql) +- [ ] Configura SMTP per invio email +- [ ] Testa recupero password - [ ] Configura PayPal Sandbox - [ ] Carica almeno 3 lezioni demo - [ ] Testa registrazione utente - [ ] Testa acquisto lezione (in sandbox) +- [ ] Testa modifica lezioni esistenti - [ ] Personalizza colori e logo -- [ ] Configura backup automatici +- [ ] Configura backup automatici database - [ ] Passa a produzione PayPal -- [ ] Attiva HTTPS +- [ ] Attiva HTTPS (certificato SSL) +- [ ] Testa tutti i flussi su produzione - [ ] Lancia! 🚀 ---