setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die("Veritabanı bağlantı hatası: " . $e->getMessage()); } // Tablo oluşturma (eğer yoksa) function createTables($pdo) { $sql = "CREATE TABLE IF NOT EXISTS rks_siparisler ( id INT AUTO_INCREMENT PRIMARY KEY, siparis_no VARCHAR(50) UNIQUE, renk VARCHAR(20), ad VARCHAR(100), soyad VARCHAR(100), telefon VARCHAR(20), email VARCHAR(100), sehir VARCHAR(50), ilce VARCHAR(50), sokak VARCHAR(200), adres TEXT, odeme_yontemi VARCHAR(50), siparis_tarihi DATETIME, durum VARCHAR(20) DEFAULT 'beklemede', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"; try { $pdo->exec($sql); } catch (PDOException $e) { // Tablo zaten varsa hata verme } } createTables($pdo); // Silinenler tablosunu oluştur (eğer yoksa) $createDeletedTable = "CREATE TABLE IF NOT EXISTS rks_silinen_siparisler ( id INT AUTO_INCREMENT PRIMARY KEY, siparis_no VARCHAR(50), renk VARCHAR(20), ad VARCHAR(100), soyad VARCHAR(100), telefon VARCHAR(20), email VARCHAR(100), sehir VARCHAR(50), ilce VARCHAR(50), sokak VARCHAR(200), adres TEXT, odeme_yontemi VARCHAR(50), siparis_tarihi DATETIME, durum VARCHAR(20), silinme_tarihi DATETIME, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"; try { $pdo->exec($createDeletedTable); } catch (PDOException $e) { // Tablo zaten varsa hata verme } // Adım kontrolü $currentStep = isset($_GET['step']) ? intval($_GET['step']) : 1; if ($currentStep < 1 || $currentStep > 4) $currentStep = 1; // POST ile gelen verileri işle if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Step-1: Renk seçimi if (isset($_POST['step1_color'])) { $color = htmlspecialchars($_POST['step1_color']); if (!empty($color)) { $_SESSION['color'] = $color; header('Location: sip.php?step=2'); exit; } else { $step1_error = 'Lütfen Renk Seçiniz'; } } // Step-2: Kişisel bilgiler if (isset($_POST['step2_name']) && isset($_POST['step2_surname']) && isset($_POST['step2_phone']) && isset($_POST['step2_email'])) { $name = trim($_POST['step2_name']); $surname = trim($_POST['step2_surname']); $phone = trim($_POST['step2_phone']); $email = trim($_POST['step2_email']); $errors = []; if (!preg_match('/^[A-Za-zğüşıöçĞÜŞİÖÇ\s]+$/', $name)) { $errors[] = 'Ad alanı sadece harf içermelidir.'; } if (!preg_match('/^[A-Za-zğüşıöçĞÜŞİÖÇ\s]+$/', $surname)) { $errors[] = 'Soyad alanı sadece harf içermelidir.'; } if (!preg_match('/^[0-9]+$/', $phone)) { $errors[] = 'Telefon alanı sadece rakam içermelidir.'; } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errors[] = 'Geçerli bir e-posta adresi giriniz (@ işareti içermeli).'; } if (empty($errors)) { $_SESSION['name'] = $name; $_SESSION['surname'] = $surname; $_SESSION['phone'] = $phone; $_SESSION['email'] = $email; header('Location: sip.php?step=3'); exit; } else { $step2_errors = $errors; } } // Step-3: Adres ve onaylar if (isset($_POST['step3_city']) && isset($_POST['step3_district']) && isset($_POST['step3_street']) && isset($_POST['step3_address']) && isset($_POST['step3_accept1']) && isset($_POST['step3_accept2'])) { $city = htmlspecialchars($_POST['step3_city']); $district = htmlspecialchars($_POST['step3_district']); $street = htmlspecialchars($_POST['step3_street']); $address = htmlspecialchars($_POST['step3_address']); $accept1 = isset($_POST['step3_accept1']) ? $_POST['step3_accept1'] : ''; $accept2 = isset($_POST['step3_accept2']) ? $_POST['step3_accept2'] : ''; $errors3 = []; if (empty($city)) $errors3[] = 'Lütfen şehir seçiniz.'; if (!preg_match('/^[A-Za-zğüşıöçĞÜŞİÖÇ\s]+$/', $district)) { $errors3[] = 'İlçe alanı sadece harf içermelidir.'; } if (empty($district)) $errors3[] = 'Lütfen ilçe giriniz.'; if ($accept1 !== '1') $errors3[] = 'Kampanya satın alma onayı gereklidir.'; if ($accept2 !== '1') $errors3[] = 'Mesafeli satış sözleşmesi onayı gereklidir.'; if (empty($errors3)) { $_SESSION['city'] = $city; $_SESSION['district'] = $district; $_SESSION['street'] = $street; $_SESSION['address'] = $address; $_SESSION['accept1'] = $accept1; $_SESSION['accept2'] = $accept2; header('Location: sip.php?step=4'); exit; } else { $step3_errors = $errors3; } } // Step-4: Ödeme seçeneği ve veritabanına kayıt if (isset($_POST['step4_payment'])) { $payment = htmlspecialchars($_POST['step4_payment']); if (!empty($payment)) { $_SESSION['payment'] = $payment; // Veritabanına kaydetmeden önce aynı telefon/email/adres kontrolü $phone = $_SESSION['phone']; $email = $_SESSION['email']; $address = $_SESSION['address']; $checkSql = "SELECT id, durum FROM rks_siparisler WHERE telefon = :telefon AND email = :email AND adres = :adres"; $checkStmt = $pdo->prepare($checkSql); $checkStmt->execute([ ':telefon' => $phone, ':email' => $email, ':adres' => $address ]); $existingOrder = $checkStmt->fetch(PDO::FETCH_ASSOC); if ($existingOrder) { // Aynı sipariş varsa $_SESSION['order_complete'] = true; $_SESSION['order_date'] = date('d.m.Y H:i'); $_SESSION['existing_order'] = true; $_SESSION['existing_order_id'] = $existingOrder['id']; header('Location: sip.php?step=4&success=1'); exit; } // Yeni sipariş kaydet $siparis_no = 'RKS-' . date('Ymd') . '-' . strtoupper(substr(uniqid(), -6)); $insertSql = "INSERT INTO rks_siparisler (siparis_no, renk, ad, soyad, telefon, email, sehir, ilce, sokak, adres, odeme_yontemi, siparis_tarihi, durum) VALUES (:siparis_no, :renk, :ad, :soyad, :telefon, :email, :sehir, :ilce, :sokak, :adres, :odeme_yontemi, :siparis_tarihi, 'beklemede')"; $insertStmt = $pdo->prepare($insertSql); $insertStmt->execute([ ':siparis_no' => $siparis_no, ':renk' => $_SESSION['color'], ':ad' => $_SESSION['name'], ':soyad' => $_SESSION['surname'], ':telefon' => $_SESSION['phone'], ':email' => $_SESSION['email'], ':sehir' => $_SESSION['city'], ':ilce' => $_SESSION['district'], ':sokak' => $_SESSION['street'], ':adres' => $_SESSION['address'], ':odeme_yontemi' => $payment, ':siparis_tarihi' => date('Y-m-d H:i:s') ]); $_SESSION['order_complete'] = true; $_SESSION['order_date'] = date('d.m.Y H:i'); $_SESSION['existing_order'] = false; $_SESSION['siparis_no'] = $siparis_no; header('Location: sip.php?step=4&success=1'); exit; } else { $step4_error = 'Lütfen bir ödeme seçeneği seçiniz.'; } } } // Oturumdan verileri al $color = isset($_SESSION['color']) ? $_SESSION['color'] : ''; $name = isset($_SESSION['name']) ? $_SESSION['name'] : ''; $surname = isset($_SESSION['surname']) ? $_SESSION['surname'] : ''; $phone = isset($_SESSION['phone']) ? $_SESSION['phone'] : ''; $email = isset($_SESSION['email']) ? $_SESSION['email'] : ''; $city = isset($_SESSION['city']) ? $_SESSION['city'] : ''; $district = isset($_SESSION['district']) ? $_SESSION['district'] : ''; $street = isset($_SESSION['street']) ? $_SESSION['street'] : ''; $address = isset($_SESSION['address']) ? $_SESSION['address'] : ''; $payment = isset($_SESSION['payment']) ? $_SESSION['payment'] : ''; $orderDate = isset($_SESSION['order_date']) ? $_SESSION['order_date'] : date('d.m.Y H:i'); $orderComplete = isset($_SESSION['order_complete']) && $_SESSION['order_complete'] === true; $existingOrder = isset($_SESSION['existing_order']) && $_SESSION['existing_order'] === true; // Başarılı sipariş mesajı $success = isset($_GET['success']) && $_GET['success'] == 1; // Renk adını Türkçe yaz $colorName = ''; if ($color == 'beyaz') $colorName = 'Beyaz'; elseif ($color == 'siyah') $colorName = 'Siyah'; else $colorName = ucfirst($color); // Türkiye şehir listesi (tam liste) $cities = [ 'Adana', 'Adıyaman', 'Afyonkarahisar', 'Ağrı', 'Aksaray', 'Amasya', 'Ankara', 'Antalya', 'Ardahan', 'Artvin', 'Aydın', 'Balıkesir', 'Bartın', 'Batman', 'Bayburt', 'Bilecik', 'Bingöl', 'Bitlis', 'Bolu', 'Burdur', 'Bursa', 'Çanakkale', 'Çankırı', 'Çorum', 'Denizli', 'Diyarbakır', 'Düzce', 'Edirne', 'Elazığ', 'Erzincan', 'Erzurum', 'Eskişehir', 'Gaziantep', 'Giresun', 'Gümüşhane', 'Hakkâri', 'Hatay', 'Iğdır', 'Isparta', 'İstanbul', 'İzmir', 'Kahramanmaraş', 'Karabük', 'Karaman', 'Kars', 'Kastamonu', 'Kayseri', 'Kırıkkale', 'Kırklareli', 'Kırşehir', 'Kilis', 'Kocaeli', 'Konya', 'Kütahya', 'Malatya', 'Manisa', 'Mardin', 'Mersin', 'Muğla', 'Muş', 'Nevşehir', 'Niğde', 'Ordu', 'Osmaniye', 'Rize', 'Sakarya', 'Samsun', 'Siirt', 'Sinop', 'Sivas', 'Şanlıurfa', 'Şırnak', 'Tekirdağ', 'Tokat', 'Trabzon', 'Tunceli', 'Uşak', 'Van', 'Yalova', 'Yozgat', 'Zonguldak' ]; ?> RKS MX55 Pro Sipariş Formu

RKS MX55 Pro

1
2
3
4

⚠️ Siparişiniz Ödeme Aşamasında

Sayın , Tarihinde, Renk RKS MX55 Pro Siparişiniz, 3 İş Günü İçerisinde , , Adresinize Teslimatı İçin Telefon Numaranızdan Aranarak Bilgilendirileceksiniz.

Bu sipariş daha önce tarafınızca oluşturulmuştur. Ödeme işleminiz tamamlanana kadar siparişiniz beklemede kalacaktır.

✅ Siparişiniz Alındı!

Sayın , Tarihinde, Renk RKS MX55 Pro Siparişiniz, 3 İş Günü İçerisinde , , Adresinize Teslimatı İçin Telefon Numaranızdan Aranarak Bilgilendirileceksiniz.

Sipariş No:

← Yeni Sipariş
Adım 1 / 4

MX55 PRO Renk Seçiniz

Beyaz
Siyah
Renk kutusuna tıklayarak seçim yapın
Adım 2 / 4

Kişisel Bilgileriniz

Adım 3 / 4

Teslimat Adresiniz

>
>
Adım 4 / 4

Sipariş Özetiniz

Renk:

Ad Soyad:

Telefon:

E-posta:

Şehir:

İlçe:

Sokak:

Açık Adres:

Satın Alınan Ürün;

RKS MX55 PRO - - 14.299 TL (KDV Dahildir)

Teslimat Bilgisi;

Ücretsiz Teslimat / Tahmini 3 İş Günü

Ödeme Seçenekleri

>
>
>