// --- REGISTER (Save to Database) --- if ($action == 'register') { header('Content-Type: application/json'); $full_name = trim($_POST['full_name'] ?? ''); $dob = trim($_POST['dob'] ?? ''); $gender = trim($_POST['gender'] ?? ''); $doc_number = trim($_POST['doc_number'] ?? ''); $profession = trim($_POST['profession'] ?? ''); $trx_purpose = trim($_POST['trx_purpose'] ?? ''); $expected_limit = trim($_POST['expected_limit'] ?? ''); $signature_data = $_POST['signature_data'] ?? ''; $phone = $_SESSION['pending_phone'] ?? ''; if (empty($phone)) { echo json_encode(['status' => 'error', 'message' => 'ফোন নাম্বার পাওয়া যায়নি! দয়া করে আবার চেষ্টা করুন।']); exit; } $username = $phone; $password = password_hash('12345', PASSWORD_DEFAULT); // ডিফল্ট পিন (পরবর্তীতে রিসেট করা যাবে) $role = 'customer'; $status = 'pending'; // অ্যাডমিন এপ্রুভালের জন্য // ১. ডিজিটাল সিগনেচারকে Image ফাইল হিসেবে সেভ করা $signature_filename = ''; if (!empty($signature_data)) { $upload_dir = __DIR__ . "/../../../uploads/signatures/"; if (!is_dir($upload_dir)) mkdir($upload_dir, 0777, true); $image_parts = explode(";base64,", $signature_data); if (count($image_parts) == 2) { $image_base64 = base64_decode($image_parts[1]); $signature_filename = time() . '_' . $phone . '_sig.png'; file_put_contents($upload_dir . $signature_filename, $image_base64); } } // ২. মূল Users টেবিলে ডাটা সেভ করা $stmt = $conn->prepare("INSERT INTO users (username, name, phone, password, role, status) VALUES (?, ?, ?, ?, ?, ?)"); $stmt->bind_param("ssssss", $username, $full_name, $phone, $password, $role, $status); if ($stmt->execute()) { $user_id = $conn->insert_id; // ৩. ইউজারের KYC ইনফো এবং সিগনেচার সেভ করার জন্য একটি টেবিল অটোমেটিক তৈরি ও ডাটা ইনসার্ট করা $conn->query("CREATE TABLE IF NOT EXISTS user_kyc ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, dob VARCHAR(50), gender VARCHAR(20), doc_number VARCHAR(100), profession VARCHAR(100), trx_purpose VARCHAR(100), expected_limit VARCHAR(100), signature_image VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP )"); $kyc_stmt = $conn->prepare("INSERT INTO user_kyc (user_id, dob, gender, doc_number, profession, trx_purpose, expected_limit, signature_image) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"); $kyc_stmt->bind_param("isssssss", $user_id, $dob, $gender, $doc_number, $profession, $trx_purpose, $expected_limit, $signature_filename); $kyc_stmt->execute(); // সেশন ক্লিয়ার unset($_SESSION['pending_phone']); unset($_SESSION['pending_otp']); echo json_encode(['status' => 'success', 'message' => 'রেজিস্ট্রেশন সফল হয়েছে! আপনার অ্যাকাউন্টটি অ্যাপ্রুভালের জন্য অপেক্ষমান আছে।']); } else { echo json_encode(['status' => 'error', 'message' => 'Database Error: ' . $conn->error]); } exit; }