181 lines
6.2 KiB
PHP
181 lines
6.2 KiB
PHP
<?php
|
|
/**
|
|
* File di Configurazione
|
|
*
|
|
* Contiene tutte le impostazioni del sito: database, email, PayPal, ecc.
|
|
* IMPORTANTE: Non condividere mai questo file pubblicamente!
|
|
*/
|
|
|
|
// ============================================
|
|
// CONFIGURAZIONE DATABASE
|
|
// ============================================
|
|
|
|
define('DB_HOST', 'localhost'); // Host del database
|
|
define('DB_NAME', 'pilatesplatform'); // Nome del database
|
|
define('DB_USER', 'pilates'); // Username database
|
|
define('DB_PASS', 'Z.p8ibwg4jri'); // Password database
|
|
define('DB_CHARSET', 'utf8mb4'); // Charset per supportare tutti i caratteri
|
|
|
|
// ============================================
|
|
// CONFIGURAZIONE GENERALE SITO
|
|
// ============================================
|
|
|
|
define('SITE_NAME', 'Pilates Studio');
|
|
define('SITE_URL', 'https://demo-pilates.pyconetwork.it'); // URL del sito in produzione
|
|
define('ADMIN_EMAIL', 'admin@pilatesstudio.com'); // Email amministratore
|
|
|
|
// Contatti opzionali (lascia vuoto se non vuoi mostrarli)
|
|
define('CONTACT_PHONE', '+393272689561'); // Es: '+39 123 456 7890'
|
|
define('CONTACT_WHATSAPP', '+393272689561'); // Es: '+39 123 456 7890' (numero con prefisso internazionale)
|
|
|
|
// ============================================
|
|
// CONFIGURAZIONE SICUREZZA
|
|
// ============================================
|
|
|
|
// Chiave segreta per crittografia (CAMBIALA in produzione!)
|
|
define('SECRET_KEY', 'cambia-questa-chiave-con-una-stringa-casuale-sicura');
|
|
|
|
// Durata sessione in secondi (default: 2 ore)
|
|
define('SESSION_LIFETIME', 7200);
|
|
|
|
// Durata token recupero password (default: 1 ora)
|
|
define('PASSWORD_RESET_TOKEN_LIFETIME', 3600);
|
|
|
|
// ============================================
|
|
// CONFIGURAZIONE PAYPAL
|
|
// ============================================
|
|
|
|
// Modalità sandbox per test (true) o produzione (false)
|
|
define('PAYPAL_SANDBOX', true);
|
|
|
|
// Credenziali PayPal Sandbox (per test)
|
|
define('PAYPAL_CLIENT_ID', 'inserisci-qui-il-tuo-client-id-sandbox');
|
|
define('PAYPAL_SECRET', 'inserisci-qui-il-tuo-secret-sandbox');
|
|
|
|
// Credenziali PayPal Live (per produzione - NON compilare finché non sei pronto!)
|
|
define('PAYPAL_LIVE_CLIENT_ID', '');
|
|
define('PAYPAL_LIVE_SECRET', '');
|
|
|
|
// URL API PayPal
|
|
define('PAYPAL_API_URL', PAYPAL_SANDBOX ?
|
|
'https://api-m.sandbox.paypal.com' :
|
|
'https://api-m.paypal.com'
|
|
);
|
|
|
|
// ============================================
|
|
// CONFIGURAZIONE EMAIL
|
|
// ============================================
|
|
|
|
// Configurazione per l'invio di email
|
|
define('MAIL_FROM', 'pyco.networking@gmail.com');
|
|
define('MAIL_FROM_NAME', 'Pilates Studio');
|
|
|
|
// Usa SMTP per invio email affidabile
|
|
define('USE_SMTP', true); // Imposta false per usare mail() PHP di base
|
|
|
|
// Impostazioni SMTP - Gmail
|
|
// NOTA: Le email vengono inviate tramite script Python (send_email.py) per maggiore affidabilità
|
|
// Per Gmail: usa password applicazione da https://myaccount.google.com/apppasswords
|
|
// Requisito: Python 3.6+ installato sul server (testa con: python3 --version)
|
|
define('SMTP_HOST', 'smtp.gmail.com');
|
|
define('SMTP_PORT', 587);
|
|
define('SMTP_USERNAME', 'pyco.networking@gmail.com'); // Inserisci la tua email Gmail
|
|
define('SMTP_PASSWORD', 'iaxuxsvggkfmbzpa'); // Password applicazione (16 caratteri)
|
|
define('SMTP_ENCRYPTION', 'tls'); // tls (porta 587) o ssl (porta 465)
|
|
|
|
// ============================================
|
|
// CONFIGURAZIONE UPLOAD FILE
|
|
// ============================================
|
|
|
|
// Cartella per upload file (thumbnails, video se locali)
|
|
define('UPLOAD_DIR', __DIR__ . '/../uploads/');
|
|
define('UPLOAD_URL', SITE_URL . '/uploads/');
|
|
|
|
// Dimensione massima file upload (in bytes - default 50MB)
|
|
define('MAX_UPLOAD_SIZE', 50 * 1024 * 1024);
|
|
|
|
// Estensioni permesse per upload
|
|
define('ALLOWED_IMAGE_TYPES', ['jpg', 'jpeg', 'png', 'gif', 'webp']);
|
|
define('ALLOWED_VIDEO_TYPES', ['mp4', 'mov', 'avi', 'webm']);
|
|
|
|
// ============================================
|
|
// CONFIGURAZIONE VIDEO
|
|
// ============================================
|
|
|
|
// Tipo di hosting video: 'local', 'youtube', 'vimeo', 's3'
|
|
define('VIDEO_HOSTING_TYPE', 'local');
|
|
|
|
// Configurazione AWS S3 (se usi S3)
|
|
/*
|
|
define('AWS_ACCESS_KEY', 'tua-access-key');
|
|
define('AWS_SECRET_KEY', 'tua-secret-key');
|
|
define('AWS_REGION', 'eu-west-1');
|
|
define('AWS_BUCKET', 'pilates-videos');
|
|
*/
|
|
|
|
// ============================================
|
|
// CONFIGURAZIONE TIMEZONE
|
|
// ============================================
|
|
|
|
date_default_timezone_set('Europe/Rome');
|
|
|
|
// ============================================
|
|
// MODALITÀ DEBUG
|
|
// ============================================
|
|
|
|
// Attiva/disattiva visualizzazione errori (FALSE in produzione!)
|
|
define('DEBUG_MODE', true);
|
|
|
|
if (DEBUG_MODE) {
|
|
error_reporting(E_ALL);
|
|
ini_set('display_errors', 1);
|
|
} else {
|
|
error_reporting(0);
|
|
ini_set('display_errors', 0);
|
|
}
|
|
|
|
// ============================================
|
|
// CONNESSIONE DATABASE
|
|
// ============================================
|
|
|
|
/**
|
|
* Crea e restituisce la connessione al database
|
|
* Usa PDO per sicurezza contro SQL injection
|
|
*/
|
|
function get_db_connection() {
|
|
static $pdo = null;
|
|
|
|
// Se la connessione esiste già, restituiscila
|
|
if ($pdo !== null) {
|
|
return $pdo;
|
|
}
|
|
|
|
try {
|
|
// Crea stringa DSN (Data Source Name)
|
|
$dsn = "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=" . DB_CHARSET;
|
|
|
|
// Opzioni PDO per sicurezza
|
|
$options = [
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // Lancia eccezioni per errori
|
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // Fetch come array associativo
|
|
PDO::ATTR_EMULATE_PREPARES => false, // Usa prepared statements veri
|
|
PDO::ATTR_PERSISTENT => false, // Non usare connessioni persistenti
|
|
];
|
|
|
|
// Crea connessione PDO
|
|
$pdo = new PDO($dsn, DB_USER, DB_PASS, $options);
|
|
|
|
return $pdo;
|
|
|
|
} catch (PDOException $e) {
|
|
// In caso di errore di connessione
|
|
if (DEBUG_MODE) {
|
|
die("Errore connessione database: " . $e->getMessage());
|
|
} else {
|
|
die("Errore di connessione al database. Contatta l'amministratore.");
|
|
}
|
|
}
|
|
}
|
|
|
|
?>
|