<?php
/**
* Plaka Yorum - Ana Konfigürasyon Dosyası
*/
// Hata raporlama (canlıda kapatılmalı)
error_reporting(E_ALL);
ini_set('display_errors', 0);
ini_set('log_errors', 1);
// Zaman dilimi
date_default_timezone_set('Europe/Istanbul');
// ============================================
// VERİTABANI
// ============================================
define('DB_HOST', 'localhost');
define('DB_NAME', 'plakayorum_db');
define('DB_USER', 'plakayorum_db');
define('DB_PASS', '14325789Mk*');
define('DB_CHARSET', 'utf8mb4');
// ============================================
// UYGULAMA
// ============================================
define('APP_NAME', 'Plaka Yorum');
define('APP_URL', 'https://plakayorum.com');
define('API_URL', APP_URL . '/api');
define('UPLOAD_DIR', __DIR__ . '/uploads/');
define('UPLOAD_URL', APP_URL . '/uploads/');
define('MAX_UPLOAD_SIZE', 50 * 1024 * 1024); // 50MB
// ============================================
// JWT
// ============================================
define('JWT_SECRET', 'plakayorum_jwt_secret_key_2026_secure_random');
define('JWT_EXPIRY', 60 * 60 * 24 * 30); // 30 gün
// ============================================
// OTP
// ============================================
define('OTP_LENGTH', 6);
define('OTP_EXPIRY_MINUTES', 5);
define('OTP_MAX_ATTEMPTS', 5);
define('OTP_RESEND_COOLDOWN', 60); // saniye
// ============================================
// VERİMOR SMS API
// ============================================
define('VERIMOR_USERNAME', '908503351432');
define('VERIMOR_API_KEY', 'SLX*745nfp');
define('VERIMOR_SENDER', '08503351432');
define('VERIMOR_API_URL', 'https://sms.verimor.com.tr/v2/send.json');
// ============================================
// SMTP E-POSTA
// ============================================
define('SMTP_HOST', 'mail.plakayorum.com');
define('SMTP_PORT', 587);
define('SMTP_USER', 'noreply@plakayorum.com');
define('SMTP_PASS', '14325789Mk*');
define('SMTP_FROM_NAME', 'Plaka Yorum');
define('SMTP_FROM_EMAIL', 'noreply@plakayorum.com');
// ============================================
// FCM PUSH BİLDİRİM
// ============================================
define('FCM_SERVER_KEY', ''); // Firebase Console'dan alınacak
// ============================================
// VERİTABANI BAĞLANTISI
// ============================================
function getDB(): PDO {
static $pdo = null;
if ($pdo === null) {
try {
$dsn = 'mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';charset=' . DB_CHARSET;
$pdo = new PDO($dsn, DB_USER, DB_PASS, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4"
]);
} catch (PDOException $e) {
http_response_code(500);
echo json_encode(['success' => false, 'message' => 'Veritabanı bağlantı hatası']);
exit;
}
}
return $pdo;
}
// ============================================
// CORS & HEADERS
// ============================================
function setCorsHeaders(): void {
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Authorization');
header('Content-Type: application/json; charset=utf-8');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
http_response_code(200);
exit;
}
}
// Upload dizinleri oluştur
$uploadDirs = ['comments', 'claims', 'profiles'];
foreach ($uploadDirs as $dir) {
$path = UPLOAD_DIR . $dir;
if (!file_exists($path)) {
mkdir($path, 0755, true);
}
}
Name Last modified Size Description