This commit is contained in:
Francesco Picone
2025-12-06 17:35:52 +01:00
parent 5ec1cb2f45
commit ca1d604701

101
README.md
View File

@@ -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! 🚀
---