fix
This commit is contained in:
95
README.md
95
README.md
@@ -6,7 +6,9 @@ Piattaforma completa per vendere videolezioni e lezioni live di Pilates. Svilupp
|
|||||||
|
|
||||||
### Area Pubblica
|
### Area Pubblica
|
||||||
- **Homepage** con lezioni demo gratuite
|
- **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)
|
- **Visualizzazione lezioni** con integrazione video (YouTube, Vimeo, locale)
|
||||||
- **Pagamento sicuro** tramite PayPal
|
- **Pagamento sicuro** tramite PayPal
|
||||||
|
|
||||||
@@ -17,20 +19,24 @@ Piattaforma completa per vendere videolezioni e lezioni live di Pilates. Svilupp
|
|||||||
- **Accesso illimitato** alle lezioni acquistate
|
- **Accesso illimitato** alle lezioni acquistate
|
||||||
|
|
||||||
### Area Amministratore
|
### Area Amministratore
|
||||||
- **Dashboard** con statistiche in tempo reale
|
- **Dashboard** con statistiche in tempo reale (utenti, lezioni, acquisti, revenue)
|
||||||
- **Gestione lezioni** (crea, modifica, elimina)
|
- **Gestione lezioni** (crea, modifica, elimina, attiva/disattiva)
|
||||||
- **Gestione utenti** (visualizza, blocca/sblocca)
|
- **Modifica lezioni** con form completo per videolezioni e lezioni live
|
||||||
- **Storico acquisti** con dettagli pagamenti PayPal
|
- **Gestione utenti** (visualizza, blocca/sblocca, statistiche acquisti)
|
||||||
- **Report e analisi** vendite
|
- **Storico acquisti** con dettagli pagamenti PayPal e grafici
|
||||||
|
- **Report e analisi** vendite con totali formattati
|
||||||
|
|
||||||
### Funzionalità Tecniche
|
### Funzionalità Tecniche
|
||||||
- ✅ **Sicurezza**: Password crittografate con bcrypt
|
- ✅ **Sicurezza**: Password crittografate con bcrypt (PHP 8.1+ compatibile)
|
||||||
- ✅ **Database**: MySQL con PDO per prevenire SQL injection
|
- ✅ **Database**: MySQL con PDO per prevenire SQL injection
|
||||||
- ✅ **Sessioni**: Gestione sicura con timeout automatico
|
- ✅ **Sessioni**: Gestione sicura con timeout automatico (30 minuti)
|
||||||
- ✅ **Responsive**: Design mobile-first
|
- ✅ **Reset password**: Token sicuri con scadenza 1 ora
|
||||||
|
- ✅ **Responsive**: Design mobile-first con CSS moderno
|
||||||
- ✅ **Codice commentato**: Ogni funzione è documentata per facilità di manutenzione
|
- ✅ **Codice commentato**: Ogni funzione è documentata per facilità di manutenzione
|
||||||
- ✅ **Log attività**: Tracciamento delle azioni importanti
|
- ✅ **Log attività**: Tracciamento delle azioni importanti
|
||||||
- ✅ **Soft delete**: I dati eliminati non sono rimossi definitivamente
|
- ✅ **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,23 +62,29 @@ C:\xampp\htdocs\pilates-platform\
|
|||||||
1. Apri phpMyAdmin (o il tuo client MySQL preferito)
|
1. Apri phpMyAdmin (o il tuo client MySQL preferito)
|
||||||
2. Esegui lo script `database/schema.sql`
|
2. Esegui lo script `database/schema.sql`
|
||||||
3. Questo creerà:
|
3. Questo creerà:
|
||||||
- Il database `pilatesplatform`
|
- Il database `pilates_platform` (con underscore, non trattino!)
|
||||||
- Tutte le tabelle necessarie
|
- Tutte le tabelle necessarie (users, lessons, purchases, activity_log)
|
||||||
- Un utente amministratore di default
|
- Un utente amministratore di default
|
||||||
- Alcune lezioni demo di esempio
|
- Alcune lezioni demo di esempio
|
||||||
|
- Campi per reset password (reset_token, reset_expires)
|
||||||
|
|
||||||
**Credenziali Admin di Default:**
|
**Credenziali Admin di Default:**
|
||||||
- Email: `admin@pilatesstudio.com`
|
- Email: `admin@pilatesstudio.com`
|
||||||
- Password: `admin123`
|
- Password: `admin123`
|
||||||
- ⚠️ **IMPORTANTE**: Cambia questa password subito dopo il primo accesso!
|
- ⚠️ **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
|
### Passo 3: Configura l'Applicazione
|
||||||
Apri il file `includes/config.php` e modifica:
|
Apri il file `includes/config.php` e modifica:
|
||||||
|
|
||||||
#### Database
|
#### Database
|
||||||
```php
|
```php
|
||||||
define('DB_HOST', 'localhost'); // Host del database
|
define('DB_HOST', 'localhost'); // Host del database
|
||||||
define('DB_NAME', 'pilatesplatform'); // Nome database
|
define('DB_NAME', 'pilates_platform'); // Nome database (usa underscore!)
|
||||||
define('DB_USER', 'root'); // Username (es: root per localhost)
|
define('DB_USER', 'root'); // Username (es: root per localhost)
|
||||||
define('DB_PASS', ''); // Password database
|
define('DB_PASS', ''); // Password database
|
||||||
```
|
```
|
||||||
@@ -209,6 +221,14 @@ La **Dashboard** mostra:
|
|||||||
- Telefono
|
- Telefono
|
||||||
- Password
|
- 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
|
## 🎨 Personalizzazione
|
||||||
@@ -329,7 +349,8 @@ Crea `.htaccess` nella cartella `includes/`:
|
|||||||
### Errore: "Errore connessione database"
|
### Errore: "Errore connessione database"
|
||||||
- Verifica che MySQL sia avviato
|
- Verifica che MySQL sia avviato
|
||||||
- Controlla credenziali in `config.php`
|
- 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
|
### Le email non vengono inviate
|
||||||
- Configura SMTP in `config.php`
|
- Configura SMTP in `config.php`
|
||||||
@@ -350,6 +371,18 @@ Crea `.htaccess` nella cartella `includes/`:
|
|||||||
- Attiva `DEBUG_MODE` in `config.php`
|
- Attiva `DEBUG_MODE` in `config.php`
|
||||||
- Controlla log errori PHP
|
- Controlla log errori PHP
|
||||||
- Verifica permessi file (644) e cartelle (755)
|
- 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/
|
pilates-platform/
|
||||||
│
|
│
|
||||||
├── admin/ # Area amministratore
|
├── admin/ # Area amministratore
|
||||||
│ ├── dashboard.php # Dashboard admin
|
│ ├── dashboard.php # Dashboard admin con statistiche
|
||||||
│ ├── lessons.php # Gestione lezioni
|
│ ├── lessons.php # Gestione lezioni (lista, elimina)
|
||||||
│ ├── lesson_create.php # Crea lezione
|
│ ├── lesson_create.php # Crea nuova lezione
|
||||||
│ ├── lesson_edit.php # Modifica lezione (da creare se serve)
|
│ ├── lesson_edit.php # Modifica lezione esistente
|
||||||
│ ├── users.php # Gestione utenti
|
│ ├── users.php # Gestione utenti
|
||||||
│ └── purchases.php # Storico acquisti
|
│ └── purchases.php # Storico acquisti e revenue
|
||||||
│
|
│
|
||||||
├── assets/ # Risorse statiche
|
├── assets/ # Risorse statiche
|
||||||
│ ├── css/
|
│ ├── css/
|
||||||
@@ -373,7 +406,8 @@ pilates-platform/
|
|||||||
│ └── main.js # JavaScript
|
│ └── main.js # JavaScript
|
||||||
│
|
│
|
||||||
├── database/
|
├── database/
|
||||||
│ └── schema.sql # Script creazione database
|
│ ├── schema.sql # Script creazione database
|
||||||
|
│ └── reset_admin_password.sql # Reset password admin
|
||||||
│
|
│
|
||||||
├── includes/ # File PHP condivisi
|
├── includes/ # File PHP condivisi
|
||||||
│ ├── config.php # Configurazione
|
│ ├── config.php # Configurazione
|
||||||
@@ -389,13 +423,14 @@ pilates-platform/
|
|||||||
│ ├── catalog.php # Catalogo lezioni
|
│ ├── catalog.php # Catalogo lezioni
|
||||||
│ └── profile.php # Profilo utente
|
│ └── profile.php # Profilo utente
|
||||||
│
|
│
|
||||||
├── index.php # Homepage
|
├── index.php # Homepage pubblica
|
||||||
├── login.php # Login
|
├── login.php # Login utenti e admin
|
||||||
├── register.php # Registrazione
|
├── register.php # Registrazione nuovi utenti
|
||||||
├── forgot_password.php # Recupero password (step 1)
|
├── forgot_password.php # Recupero password (richiesta token)
|
||||||
├── reset_password.php # Reset password (step 2)
|
├── reset_password.php # Reset password (con token)
|
||||||
├── lesson.php # Visualizza lezione
|
├── lesson.php # Visualizza lezione e acquisto
|
||||||
├── process_payment.php # Elabora pagamento PayPal
|
├── process_payment.php # Elabora pagamento PayPal
|
||||||
|
├── test_password.php # Utility test hash password (debug)
|
||||||
└── README.md # Questo file
|
└── README.md # Questo file
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -467,15 +502,19 @@ Questo progetto è stato creato come piattaforma custom. Sei libero di modificar
|
|||||||
## ✅ Checklist Prossimi Passi
|
## ✅ Checklist Prossimi Passi
|
||||||
|
|
||||||
Dopo l'installazione:
|
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
|
- [ ] Configura PayPal Sandbox
|
||||||
- [ ] Carica almeno 3 lezioni demo
|
- [ ] Carica almeno 3 lezioni demo
|
||||||
- [ ] Testa registrazione utente
|
- [ ] Testa registrazione utente
|
||||||
- [ ] Testa acquisto lezione (in sandbox)
|
- [ ] Testa acquisto lezione (in sandbox)
|
||||||
|
- [ ] Testa modifica lezioni esistenti
|
||||||
- [ ] Personalizza colori e logo
|
- [ ] Personalizza colori e logo
|
||||||
- [ ] Configura backup automatici
|
- [ ] Configura backup automatici database
|
||||||
- [ ] Passa a produzione PayPal
|
- [ ] Passa a produzione PayPal
|
||||||
- [ ] Attiva HTTPS
|
- [ ] Attiva HTTPS (certificato SSL)
|
||||||
|
- [ ] Testa tutti i flussi su produzione
|
||||||
- [ ] Lancia! 🚀
|
- [ ] Lancia! 🚀
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
Reference in New Issue
Block a user