tombola / config.php
Alcalata31's picture
Update config.php
dd1d66f verified
Raw
History Blame Contribute Delete
2.43 kB
<?php
// Database configuration
define('DB_HOST', 'localhost');
define('DB_USER', 'your_db_username');
define('DB_PASS', 'your_db_password');
define('DB_NAME', 'monthly_tombola');
// Site configuration
define('SITE_NAME', 'Monthly Tombola');
define('SITE_URL', 'https://yourdomain.com');
define('ADMIN_EMAIL', 'admin@yourdomain.com');
// Security settings
define('PEPPER', 'your-random-pepper-string-here'); // For password hashing
define('CSRF_TOKEN_SECRET', 'your-csrf-token-secret-here');
// Start session
session_start();
// Create database connection
try {
$db = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME, DB_USER, DB_PASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch(PDOException $e) {
die("Database connection failed: " . $e->getMessage());
}
// Common functions
function sanitizeInput($data) {
return htmlentities(strip_tags(trim($data)), ENT_QUOTES, 'UTF-8');
}
function redirect($url) {
header("Location: $url");
exit();
}
function isLoggedIn() {
return isset($_SESSION['user_id']);
}
function generateCSRFToken() {
if (empty($_SESSION['csrf_token'])) {
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
return $_SESSION['csrf_token'];
}
function verifyCSRFToken($token) {
return isset($_SESSION['csrf_token']) && hash_equals($_SESSION['csrf_token'], $token);
}
function hashPassword($password) {
return password_hash($password . PEPPER, PASSWORD_BCRYPT);
}
function verifyPassword($password, $hash) {
return password_verify($password . PEPPER, $hash);
}
function generateRandomString($length = 32) {
return bin2hex(random_bytes($length));
}
function sendEmail($to, $subject, $message) {
$headers = "From: " . ADMIN_EMAIL . "\r\n";
$headers .= "Reply-To: " . ADMIN_EMAIL . "\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
return mail($to, $subject, $message, $headers);
}
// Error handling
set_error_handler(function($errno, $errstr, $errfile, $errline) {
error_log("Error [$errno] $errstr in $errfile on line $errline");
if (defined('DEBUG') && DEBUG === true) {
echo "<div class='alert alert-danger'>Error: $errstr in $errfile on line $errline</div>";
}
});
// Set timezone
date_default_timezone_set('UTC');
?>