?php
session_start();
// Varsayılan kurlar
$defaultRates = [
'USD' => 34.50,
'EUR' => 37.80,
'GBP' => 44.20,
'CHF' => 39.50
];
// Session'da kurlar yoksa varsayılanları kullan
if (!isset($_SESSION['rates'])) {
$_SESSION['rates'] = $defaultRates;
}
// Session'da ürünler yoksa boş array
if (!isset($_SESSION['products'])) {
$_SESSION['products'] = [];
}
// Para birimleri
$currencies = [
'TL' => ['symbol' => '₺', 'name' => 'Türk Lirası'],
'USD' => ['symbol' => '$', 'name' => 'Amerikan Doları'],
'EUR' => ['symbol' => '€', 'name' => 'Euro'],
'GBP' => ['symbol' => '£', 'name' => 'İngiliz Sterlini'],
'CHF' => ['symbol' => 'Fr', 'name' => 'İsviçre Frangı']
];
// POST işlemleri
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Kur güncelleme
if (isset($_POST['update_rates'])) {
$_SESSION['rates'] = [
'USD' => floatval($_POST['rate_usd']),
'EUR' => floatval($_POST['rate_eur']),
'GBP' => floatval($_POST['rate_gbp']),
'CHF' => floatval($_POST['rate_chf'])
];
$message = "Kurlar güncellendi!";
}
// Kurları sıfırla
if (isset($_POST['reset_rates'])) {
$_SESSION['rates'] = $defaultRates;
$message = "Kurlar sıfırlandı!";
}
// Ürün ekleme
if (isset($_POST['add_product'])) {
$name = trim($_POST['product_name']);
$price = floatval($_POST['product_price']);
$currency = $_POST['product_currency'];
if (!empty($name) && $price > 0) {
// Önce TL'ye çevir
$priceInTL = $currency === 'TL' ? $price : $price * $_SESSION['rates'][$currency];
$product = [
'id' => time() . rand(1000, 9999),
'name' => $name,
'original_price' => $price,
'original_currency' => $currency,
'TL' => $priceInTL,
'USD' => $priceInTL / $_SESSION['rates']['USD'],
'EUR' => $priceInTL / $_SESSION['rates']['EUR'],
'GBP' => $priceInTL / $_SESSION['rates']['GBP'],
'CHF' => $priceInTL / $_SESSION['rates']['CHF']
];
$_SESSION['products'][] = $product;
$message = "Ürün eklendi!";
}
}
// Ürün silme
if (isset($_POST['delete_product'])) {
$deleteId = $_POST['product_id'];
$_SESSION['products'] = array_filter($_SESSION['products'], function($p) use ($deleteId) {
return $p['id'] != $deleteId;
});
$_SESSION['products'] = array_values($_SESSION['products']); // Re-index
$message = "Ürün silindi!";
}
// Tüm ürünleri sil
if (isset($_POST['clear_all'])) {
$_SESSION['products'] = [];
$message = "Tüm ürünler silindi!";
}
}
// Dönüştürme fonksiyonu
function convertCurrency($amount, $from, $to, $rates) {
if ($from === $to) return $amount;
// Önce TL'ye çevir
$amountInTL = $from === 'TL' ? $amount : $amount * $rates[$from];
// Sonra hedef para birimine çevir
if ($to === 'TL') return $amountInTL;
return $amountInTL / $rates[$to];
}
// Hızlı dönüştürücü hesaplama
$converterResult = 0;
if (isset($_GET['convert_amount']) && isset($_GET['from']) && isset($_GET['to'])) {
$amount = floatval($_GET['convert_amount']);
$from = $_GET['from'];
$to = $_GET['to'];
if ($amount > 0) {
$converterResult = convertCurrency($amount, $from, $to, $_SESSION['rates']);
}
}
// Toplam hesaplama
$totalTL = array_sum(array_column($_SESSION['products'], 'TL'));
?>
Para Birimi Yönetim Sistemi