Francesco Picone 10f709a970 change from mail
2025-12-09 17:38:21 +01:00
2025-12-09 17:15:54 +01:00
fix
2025-12-06 18:34:12 +01:00
2025-12-09 17:15:54 +01:00
2025-12-09 17:38:21 +01:00
2025-12-09 16:46:59 +01:00
2025-12-06 17:53:12 +01:00
fix
2025-12-06 18:50:57 +01:00
fix
2025-12-06 18:50:57 +01:00
2025-12-09 15:43:00 +01:00
2025-12-06 17:53:12 +01:00
2025-12-09 15:43:00 +01:00
2025-12-09 16:58:11 +01:00
2025-12-06 17:53:12 +01:00
fix
2025-12-03 18:35:21 +01:00
2025-12-09 17:35:40 +01:00
2025-12-09 16:46:59 +01:00
2025-12-06 17:53:12 +01:00
2025-12-09 17:35:40 +01:00
2025-12-09 16:58:11 +01:00
2025-12-06 18:06:42 +01:00
fix
2025-12-06 17:20:22 +01:00

🧘‍♀️ Pilates Platform

Piattaforma completa per vendere videolezioni e lezioni live di Pilates. Sviluppata in PHP puro con design minimale bianco e celeste.

📋 Caratteristiche Principali

Area Pubblica

  • Homepage con lezioni demo gratuite
  • Form contatti per richiesta lezioni live personalizzate
  • Informazioni contatto (email, telefono, WhatsApp opzionali)
  • 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

Area Utente

  • Dashboard personale con lezioni acquistate
  • Catalogo completo con filtri per tipo e livello
  • Gestione profilo (dati personali e cambio password)
  • Accesso illimitato alle lezioni acquistate

Area Amministratore

  • 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
  • Profilo amministratore con cambio password e test invio email
  • Conversione video automatica in formato web-compatible (MP4 H.264)

Funzionalità Tecniche

  • Sicurezza: Password crittografate con bcrypt (PHP 8.1+ compatibile)
  • Database: MySQL con PDO per prevenire SQL injection
  • 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
  • Email benvenuto: Invio automatico email alla registrazione
  • Test email: Strumento test SMTP nell'area admin
  • Video protetti: Streaming sicuro con protezione download
  • Conversione video: Automatica in MP4 H.264 per compatibilità browser

Requisiti

  • PHP 7.4 o superiore (8.0+ raccomandato)
  • MySQL 5.7 o superiore (o MariaDB 10.3+)
  • Python 3.6 o superiore (per invio email SMTP)
  • Web Server (Apache, Nginx, o PHP built-in server per sviluppo)
  • Account PayPal Sandbox (per test) o Business (per produzione)
  • FFmpeg (opzionale, per conversione automatica video in MP4)

Passo 1: Copia i File

# Copia tutti i file nella cartella del tuo web server
# Esempio per XAMPP/WAMP:
C:\xampp\htdocs\pilates-platform\

# Esempio per Linux:
/var/www/html/pilates-platform/

Passo 2: Crea il Database

  1. Apri phpMyAdmin (o il tuo client MySQL preferito)
  2. Esegui lo script database/schema.sql
  3. Questo creerà:
    • 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

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

define('SITE_URL', 'http://localhost/pilates-platform'); // URL del sito
define('ADMIN_EMAIL', 'tua-email@esempio.com');          // Riceve richieste contatti

// Contatti opzionali (mostrati nella homepage)
define('CONTACT_PHONE', '+39 123 456 7890');             // Telefono (lascia vuoto per nascondere)
define('CONTACT_WHATSAPP', '+39 123 456 7890');          // WhatsApp (lascia vuoto per nascondere)

Sicurezza

// Genera una chiave casuale sicura (es: usando password_hash)
define('SECRET_KEY', 'CAMBIA-QUESTA-CHIAVE-CON-STRINGA-CASUALE-LUNGA-E-SICURA');

Email SMTP con Gmail IMPORTANTE

Per inviare email (recupero password, registrazione), configura Gmail SMTP:

  1. Abilita verifica 2 fattori sul tuo account Gmail
  2. Vai su Password per le app
  3. Seleziona "App: Posta" e "Dispositivo: Altro (nome personalizzato)"
  4. Inserisci "Pilates Platform" e clicca Genera
  5. Copia la password di 16 caratteri generata

In includes/config.php:

define('USE_SMTP', true); // Attiva SMTP
define('SMTP_HOST', 'smtp.gmail.com');
define('SMTP_PORT', 587);                        // 587 per TLS, 465 per SSL
define('SMTP_USERNAME', 'tua-email@gmail.com'); // La tua Gmail
define('SMTP_PASSWORD', 'abcd efgh ijkl mnop'); // Password app (16 caratteri)
define('SMTP_ENCRYPTION', 'tls');               // tls (porta 587) o ssl (porta 465)

⚠️ Non usare la password normale di Gmail, usa solo la password applicazione!

Sistema di invio email:

  • Le email vengono inviate tramite script Python (send_email.py)
  • Python 3.6+ deve essere installato sul server
  • Lo script legge automaticamente le credenziali da config.php
  • Più affidabile e stabile rispetto a SMTP nativo PHP

Verifica installazione Python:

python3 --version

Se Python non è installato:

  • Ubuntu/Debian: sudo apt install python3
  • CentOS/RHEL: sudo yum install python3
  • Windows: Scarica da python.org

PayPal Sandbox (per Test)

  1. Vai su PayPal Developer
  2. Accedi con il tuo account PayPal
  3. Vai su "My Apps & Credentials"
  4. Crea un'app nella sezione Sandbox
  5. Copia Client ID e Secret
define('PAYPAL_SANDBOX', true);  // true per test, false per produzione
define('PAYPAL_CLIENT_ID', 'il-tuo-client-id-sandbox');
define('PAYPAL_SECRET', 'il-tuo-secret-sandbox');

Passo 4: Installa getID3 (Opzionale - per durata video automatica)

La piattaforma può estrarre automaticamente la durata dei video caricati usando getID3.

Metodo 1: Con Composer (raccomandato)

composer install

Metodo 2: Script Automatico

# Linux/Mac
bash install_getid3.sh

# Windows PowerShell
.\install_getid3.ps1

Metodo 3: Manuale

  1. Scarica getID3 da GitHub
  2. Estrai in vendor/getid3/getid3/
  3. Verifica che esista il file vendor/getid3/getid3/getid3.php

Nota: Se getID3 non è disponibile, la piattaforma proverà ad usare ffmpeg/ffprobe. Se anche questi non sono disponibili, dovrai inserire manualmente la durata.

Passo 5: Configura i Permessi (Linux/Mac)

# Rendi scrivibile la cartella uploads e sottocartelle
chmod -R 755 uploads/
chmod -R 755 uploads/lessons/demo/
chmod -R 755 uploads/lessons/pay/
chmod -R 755 uploads/images/

Nota: Le cartelle demo/ e pay/ vengono create automaticamente all'upload se non esistono.

Passo 6: Avvia il Server

Con PHP Built-in (per sviluppo)

cd pilates-platform
php -S localhost:8000

Poi apri: http://localhost:8000

Con XAMPP/WAMP

  1. Avvia Apache e MySQL
  2. Apri: http://localhost/pilates-platform

📖 Guida all'Uso

Per Amministratori

Primo Accesso

  1. Vai su http://tuo-sito/login.php
  2. Accedi con le credenziali di default
  3. Vai su "Area Admin" → "Profilo" e cambia la password
  4. Testa l'invio email usando il bottone "📨 Invia Email di Test" nel profilo admin
  5. Vai su "Area Admin" → "Profilo" e cambia la password

Creare una Nuova Lezione

  1. Area AdminGestione LezioniNuova Lezione
  2. Compila i campi:
    • Titolo: Nome della lezione
    • Descrizione: Descrizione dettagliata
    • Tipo: Scegli Video o Live
    • Per Video:
      • Piattaforma: Local, YouTube, Vimeo, o S3
      • URL Video: Link al video
      • Durata: Minuti
    • Per Live:
      • Piattaforma: Zoom, Google Meet, ecc.
      • Link: URL della sessione
      • Data e Ora: Quando si terrà
    • Livello: Principiante, Intermedio, Avanzato
    • Categoria: Es. Mat Work, Reformer, Stretching
    • Prezzo: In euro
    • Opzioni:
      • ✓ Lezione Demo (gratuita per tutti)
      • ✓ Lezione Attiva (visibile agli utenti)
  3. Clicca Crea Lezione

Gestire gli Utenti

  1. Area AdminGestione Utenti
  2. Puoi vedere:
    • Tutti gli utenti registrati
    • Numero acquisti per utente
    • Totale speso
    • Data ultimo accesso
  3. Azioni disponibili:
    • Blocca/Sblocca: Disabilita temporaneamente un account

Visualizzare le Statistiche

La Dashboard mostra:

  • 📊 Utenti registrati
  • 🎥 Lezioni totali
  • 💰 Acquisti completati
  • 💵 Guadagni totali
  • 📈 Lezioni più vendute
  • 📋 Ultimi acquisti

Per Utenti

Registrazione

  1. Vai su http://tuo-sito/register.php
  2. Compila il form con:
    • Nome e Cognome
    • Email
    • Password (min 6 caratteri)
  3. Verrai automaticamente loggato
  1. Dashboard UtenteCatalogo
  2. Usa i filtri per:
    • Tipo (Video/Live)
    • Livello (Principiante/Intermedio/Avanzato)
  3. Clicca su una lezione per vedere i dettagli

Acquistare una Lezione

  1. Apri una lezione dal catalogo
  2. Se non è demo, vedrai il prezzo
  3. Clicca sul pulsante PayPal
  4. Completa il pagamento
  5. La lezione apparirà in "Le Mie Lezioni"

Guardare una Lezione

  1. DashboardLe Mie Lezioni
  2. Clicca su Guarda (per video) o Partecipa (per live)
  3. Accesso illimitato per sempre!

Modificare il Profilo

  1. DashboardProfilo
  2. Puoi cambiare:
    • Nome e Cognome
    • Email
    • 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

Colori

Apri assets/css/style.css e modifica le variabili CSS:

:root {
    --primary-color: #4A90E2;        /* Celeste principale */
    --primary-light: #7AB8F5;        /* Celeste chiaro */
    --primary-dark: #357ABD;         /* Celeste scuro */
    --secondary-color: #E8F4F8;      /* Celeste molto chiaro */
}

Logo e Foto Istruttrice AGGIORNATO

  1. Logo: Carica logo.png in uploads/images/

    • Dimensioni consigliate: 200x60px
    • Formato: PNG con sfondo trasparente
    • Il logo viene mostrato automaticamente nell'header se presente
  2. Foto Istruttrice: Carica instructor.jpg in uploads/images/

    • Dimensioni consigliate: 400x400px
    • Formato: JPG o PNG
    • Viene mostrata nella sezione "Chi Sono" della homepage
  3. Hero Image: Carica hero-bg.jpg in uploads/images/

    • Dimensioni: 1920x600px
    • Immagine di sfondo homepage

Email con Gmail SMTP

La piattaforma usa Gmail SMTP per inviare email in modo affidabile:

  1. Configurato di default in includes/config.php
  2. Inserisci le tue credenziali Gmail
  3. Usa Password per le app (non la password Gmail normale)
  4. Testa inviando una richiesta di reset password

Per disattivare SMTP e usare mail() PHP:

define('USE_SMTP', false); // In config.php

Opzione 1: File Locali (Upload Diretto) RACCOMANDATO

  1. Nella creazione/modifica lezione, seleziona File Locale
  2. Clicca su "Scegli file" e seleziona il video dal tuo PC
  3. Il sistema carica automaticamente il file in:
    • uploads/lessons/demo/ per lezioni gratuite
    • uploads/lessons/pay/ per lezioni a pagamento
  4. Formati supportati: MP4, WebM, OGG, MOV
  5. Vantaggi:
    • Upload automatico
    • Conversione automatica in MP4 se FFmpeg disponibile
    • Streaming protetto con divieto download
    • Controllo accessi basato su permessi utente
  6. ⚠️ Limiti: Dimensione massima upload dipende da php.ini (default ~2MB)

Per aumentare il limite di upload: Modifica php.ini:

upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 300

Conversione Automatica Video: Se carichi video in formato diverso da MP4, il sistema:

  1. Verifica se FFmpeg è installato
  2. Converte automaticamente il video in MP4 H.264 con codec AAC
  3. Ottimizza per lo streaming web (fast start)
  4. Sostituisce il file originale con quello convertito

Per installare FFmpeg:

# Ubuntu/Debian
sudo apt-get install ffmpeg

# CentOS/RHEL
sudo yum install ffmpeg

# Mac
brew install ffmpeg
```t_max_size = 500M
max_execution_time = 300

Opzione 2: YouTube (Consigliato per Video Grandi)

  1. Carica video su YouTube come Non in elenco
  2. Copia l'URL (es: https://youtube.com/watch?v=ABC123)
  3. Quando crei la lezione:
    • Piattaforma: YouTube
    • URL: Incolla il link

Opzione 3: Vimeo

  1. Carica su Vimeo
  2. Imposta privacy su "Nascosto"
  3. Copia URL e usa come YouTube

Opzione 4: AWS S3 (Professionale)

Per grandi quantità di video, usa Amazon S3:

  1. Crea un bucket S3
  2. Configura in includes/config.php:
define('AWS_ACCESS_KEY', 'tua-key');
define('AWS_SECRET_KEY', 'tua-secret');
define('AWS_REGION', 'eu-west-1');
define('AWS_BUCKET', 'pilates-videos');
  1. Carica video su S3
  2. Usa URL S3 nelle lezioni

Checklist Produzione

Prima di mettere online:

  • Cambia password admin di default
  • Cambia SECRET_KEY in config.php
  • Imposta DEBUG_MODE a false
  • Usa HTTPS (certificato SSL)
  • Limita permessi cartelle (755 per cartelle, 644 per file)
  • Backup regolari del database
  • Configura SMTP per email
  • Testa invio email con bottone nel profilo admin
  • Testa email di benvenuto alla registrazione
  • Converti tutti i video in MP4 H.264 (se necessario)
  • Testa streaming video protetto
  • Testa tutti i flussi di pagamento
  • Verifica che includes/config.php NON sia accessibile via web
  • ELIMINA test_password.php e test_email.php (rischio sicurezza!)
  1. Copia credenziali Live
  2. In config.php:
define('PAYPAL_SANDBOX', false);  // Passa a false!
define('PAYPAL_LIVE_CLIENT_ID', 'tuo-client-id-live');
define('PAYPAL_LIVE_SECRET', 'tuo-secret-live');

🔒 Sicurezza

Checklist Produzione

Prima di mettere online:

  • Cambia password admin di default
  • Cambia SECRET_KEY in config.php
  • Imposta DEBUG_MODE a false
  • Usa HTTPS (certificato SSL)
  • Limita permessi cartelle (755 per cartelle, 644 per file)
  • Backup regolari del database
  • Configura SMTP per email
  • Testa tutti i flussi di pagamento
  • Verifica che includes/config.php NON sia accessibile via web

File .htaccess (per Apache)

Crea .htaccess nella cartella includes/:

I video non si vedono

  • Verifica che l'URL sia corretto
  • Per YouTube/Vimeo: usa URL diretti al video
  • Per file locali caricati: controlla che esistano in uploads/lessons/demo/ o pay/
  • Verifica permessi cartella uploads (755)
  • Per video grandi, verifica limiti upload in php.ini
  • Se vedi schermo nero ma senti audio: il video ha codec incompatibile
    • Vai su Area Admin🔄 Converti Video
    • Converti il video in MP4 H.264
    • Oppure ricarica il video in formato MP4 già codificato correttamente
  • Verifica nella console browser (F12) eventuali errori di caricamento

🛠️ Risoluzione Problemi

Errore: "Errore connessione database"

  • Verifica che MySQL sia avviato
  • Controlla credenziali in config.php
  • Assicurati che il database pilates_platform esista (NON pilates-platform)
  • MySQL non accetta trattini nei nomi database, usa underscore

Le email non vengono inviate

  • Verifica credenziali Gmail in config.php (SMTP_USERNAME e SMTP_PASSWORD)
  • Usa Password per le app Gmail (non la password normale)
  • Verifica che USE_SMTP sia true
  • Controlla la cartella spam del destinatario
  • Verifica log errori PHP per messaggi "SMTP Error"
  • Assicurati che il server permetta connessioni SMTP in uscita (porta 587)

I video non si vedono

  • Verifica che l'URL sia corretto
  • Per YouTube/Vimeo: usa URL diretti al video
  • Per file locali caricati: controlla che esistano in uploads/lessons/demo/ o pay/
  • Verifica permessi cartella uploads (755)
  • Per video grandi, verifica limiti upload in php.ini

Errore durante upload video

  • Controlla upload_max_filesize e post_max_size in php.ini
  • Verifica che la cartella uploads/lessons/ sia scrivibile
  • Assicurati che il formato sia supportato (MP4, WebM, OGG, MOV)
  • Le cartelle demo/ e pay/ vengono create automaticamente se non esistono

La durata video non viene rilevata

  • Installa getID3 per estrazione automatica durata:
    • Con Composer: composer install
    • Manualmente (Linux/Mac): bash install_getid3.sh
    • Manualmente (Windows): .\install_getid3.ps1
  • Oppure usa ffmpeg/ffprobe (già installato sulla maggior parte dei server)
  • Se non disponibile, inserisci manualmente la durata nel form

PayPal non funziona

  • Verifica Client ID e Secret
  • In test, usa modalità Sandbox
  • Controlla console browser per errori JavaScript

La pagina è bianca / Errore 500

  • 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 / Email non funzionano

  • Verifica che Python 3 sia installato: python3 --version
  • Controlla credenziali SMTP in config.php
  • Verifica che send_email.py abbia permessi esecuzione
  • Testa invio dal profilo admin: pulsante "🧪 Testa Invio Email"
  • Il token reset scade dopo 1 ora per sicurezza
  • Controlla log errori PHP per dettagli (error_log())

Test manuale script Python:

cd /path/to/pilates-platform
python3 send_email.py '{"to":"test@esempio.com","subject":"Test","html":"<p>Test email</p>"}'

Errori comuni:

  • python3: command not found → Installa Python 3
  • Authentication failed → Verifica password applicazione Gmail
  • Connection refused → Controlla porta (587 per TLS, 465 per SSL)
  • Script not found → Verifica che send_email.py esista nella root del progetto
  • Permission denied → Su Linux: chmod +x send_email.py
  • Il token reset scade dopo 1 ora per sicurezza
  • Controlla log errori PHP per dettagli

Test manuale script Python:

cd /path/to/pilates-platform
python3 send_email.py '{"to":"test@esempio.com","subject":"Test","html":"<p>Test email</p>"}'

Errori comuni:

  • python3: command not found → Installa Python 3
  • Authentication failed → Verifica password applicazione Gmail
  • Connection refused → Controlla porta (587 per TLS, 465 per SSL)

📁 Struttura File

pilates-platform/
│
├── admin/                      # Area amministratore
│   ├── 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 e revenue
│
├── assets/                    # Risorse statiche
│   ├── css/
│   │   └── style.css         # Stili principali
│   └── js/
│       └── main.js           # JavaScript
│
├── process_payment.php       # Elabora pagamento PayPal
├── stream_video.php          # Streaming protetto video (verifica permessi)
├── convert_videos.php        # Conversione batch video in MP4 H.264
├── send_email.py             # Script Python per invio email SMTP
├── test_password.php         # Utility test hash password (debug)
├── test_email.php            # Utility test invio email SMTP (debug)
└── README.md                 # Questo file
├── includes/                  # File PHP condivisi
│   ├── config.php            # Configurazione
│   ├── functions.php         # Funzioni comuni
│   └── logout.php            # Script logout
│
├── uploads/                   # File caricati
│   ├── lessons/              # Video lezioni
│   │   ├── demo/            # Video lezioni gratuite
│   │   ├── pay/             # Video lezioni a pagamento
│   │   └── .htaccess        # Protezione accesso diretto
│   ├── images/              # Logo e foto istruttrice
│   └── thumbnails/          # Anteprime lezioni (future)
│
├── user/                      # Area utente
│   ├── dashboard.php         # Dashboard utente
│   ├── catalog.php           # Catalogo lezioni
│   └── profile.php           # Profilo utente
│
├── index.php                 # Homepage pubblica con form contatti
├── contact.php               # Gestione form richiesta lezioni live
├── 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)
├── test_email.php            # Utility test invio email SMTP (debug)
└── README.md                 # Questo file

🎓 Concetti per Neofiti

Cos'è PHP?

PHP è il linguaggio che "genera" le pagine HTML dinamicamente. Quando visiti index.php, il server:

  1. Esegue il codice PHP
  2. Genera l'HTML finale
  3. Lo invia al browser

Cos'è il Database?

MySQL è dove vengono salvati i dati:

  • Utenti registrati
  • Lezioni create
  • Acquisti effettuati

Come Funziona il Login?

  1. Utente inserisce email e password
  2. PHP cerca l'email nel database
  3. Verifica la password (hashata)
  4. Se corretta, crea una "sessione"
  5. La sessione ricorda che sei loggato

Come Funziona PayPal?

  1. Utente clicca "Acquista"
  2. Si apre popup PayPal
  3. Utente paga
  4. PayPal conferma il pagamento
  5. process_payment.php registra l'acquisto nel DB

Checklist Prossimi Passi

Dopo l'installazione:

  • Cambia password admin (profilo o reset_admin_password.sql)
  • Configura Gmail SMTP (obbligatorio per recupero password)
  • Genera password applicazione Gmail
  • Inserisci credenziali SMTP in config.php
  • Testa invio email dal profilo admin
  • Testa recupero password
  • Testa email benvenuto registrazione
  • Installa FFmpeg (opzionale, per conversione video)
  • Configura PayPal Sandbox
  • Carica almeno 3 lezioni demo con video
  • Verifica che i video si vedano correttamente
  • Testa registrazione utente
  • Testa acquisto lezione (in sandbox)
  • Verifica streaming protetto video
  • Testa modifica lezioni esistenti
  • Personalizza colori e logo
  • Configura backup automatici database
  • Passa a produzione PayPal
  • Attiva HTTPS (certificato SSL)
  • Converti tutti i video in MP4 se necessario
  • ELIMINA file di debug (test_password.php, test_email.php)
  • Testa tutti i flussi su produzione
  • Lancia! 🚀PHP, testa la piattaforma in locale prima di aggiornare in produzione.

Log Attività

La tabella activity_log traccia:

  • Login/Logout
  • Acquisti
  • Modifiche importanti

Usa per debug e sicurezza.


📝 Licenza

Questo progetto è stato creato come piattaforma custom. Sei libero di modificarlo e usarlo come preferisci.


Checklist Prossimi Passi

Dopo l'installazione:

  • Cambia password admin (profilo o reset_admin_password.sql)
  • Configura Gmail SMTP (obbligatorio per recupero password)
  • Genera password applicazione Gmail
  • Inserisci credenziali SMTP in config.php
  • 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 database
  • Passa a produzione PayPal
  • Attiva HTTPS (certificato SSL)
  • Testa tutti i flussi su produzione
  • Lancia! 🚀

Buon lavoro con la tua piattaforma Pilates! 🧘‍♀️

Per domande o problemi, verifica sempre i log errori PHP e la console browser.

Description
No description provided
Readme 140 KiB
Languages
PHP 90.2%
CSS 6.8%
Python 2.3%
JavaScript 0.7%