DUDAK ŞEKİLLENDİRME İŞLEM MUVAFAKAT FORMU
Lütfen işlem öncesinde aşağıdaki bilgilendirme maddelerini dikkatlice okuyup sağlık beyanınızı ve imzanızı tamamlayınız.
📍 Çukurbağ, İnönü Cd. no:208, 41300 İzmit/Kocaeli | 📞 +90 532 692 13 17
0
Dijital Zaman Damgalı0
Dikkat gerektiren danışanlar0
Tam veya bölgesel görsel izni| Danışan Adı Soyadı | Telefon & Adres | İşlem Tarihi | Sağlık Beyanı | Sosyal Medya İzni | İmza | İşlem |
|---|
Kendi Cloudflare Hesabınıza Ücretsiz Kurulum Rehberi
Bu uygulama hem tarayıcı içinde hemen test edilebilir hem de Cloudflare Pages + Cloudflare D1 SQL veritabanına bağlanacak şekilde kodlanmıştır. Aşağıdaki 3 adımla kendi hesabınızda canlıya alabilirsiniz:
Veritabanını Oluşturun
Cloudflare panelinde Workers & Pages → D1 SQL Database menüsünden klinik-onam-db adında bir veritabanı açın ve aşağıdaki SQL şemasını Console sekmesinde çalıştırın.
Sadece index.html Yükleyin
Upload and deploy ekranına wrangler.toml olmadan sadece kök dizindeki index.html dosyasını (veya temiz ZIP paketini) sürükleyin, alt kısımda Worker name alanına cigdem-caner-onam yazıp Deploy butonuna basın.
/form ve /panel Adresleri
Danışanlar ccbeautystudio.com.tr/form adresinden sadece formu görür; siz ise ccbeautystudio.com.tr/panel adresinden doğrudan Klinik Arşivi ve Ad-Soyad arama ekranına ulaşırsınız.
CREATE TABLE IF NOT EXISTS submissions ( id TEXT PRIMARY KEY, full_name TEXT NOT NULL, phone TEXT NOT NULL, address TEXT NOT NULL, form_date TEXT NOT NULL, clinic_name TEXT NOT NULL, media_consent TEXT NOT NULL, medical_answers_json TEXT NOT NULL, has_medical_risk INTEGER DEFAULT 0, signature_data_url TEXT NOT NULL, ip_address TEXT, user_agent TEXT, created_at TEXT NOT NULL ); CREATE INDEX IF NOT EXISTS idx_submissions_full_name ON submissions(full_name); CREATE INDEX IF NOT EXISTS idx_submissions_phone ON submissions(phone);
export async function onRequestGet(context) {
const { request, env } = context;
const url = new URL(request.url);
const q = (url.searchParams.get("q") || "").trim();
let stmt;
if (q) {
stmt = env.DB.prepare(
"SELECT * FROM submissions WHERE full_name LIKE ?1 OR phone LIKE ?1 ORDER BY created_at DESC LIMIT 200"
).bind(`%${q}%`);
} else {
stmt = env.DB.prepare("SELECT * FROM submissions ORDER BY created_at DESC LIMIT 200");
}
const { results } = await stmt.all();
return Response.json({ ok: true, submissions: results });
}
export async function onRequestPost(context) {
const { request, env } = context;
const body = await request.json();
const ip = request.headers.get("CF-Connecting-IP") || "Bilinmiyor";
const ua = request.headers.get("User-Agent") || "Bilinmiyor";
await env.DB.prepare(
`INSERT INTO submissions (
id, full_name, phone, address, form_date, clinic_name,
media_consent, medical_answers_json, has_medical_risk,
signature_data_url, ip_address, user_agent, created_at
) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13)`
).bind(
body.id, body.fullName, body.phone, body.address, body.formDate, body.clinicName,
body.mediaConsent, JSON.stringify(body.medicalAnswers), body.hasMedicalRisk ? 1 : 0,
body.signatureDataUrl, ip, ua, body.createdAt
).run();
return Response.json({ ok: true, id: body.id });
}