Home / گائیڈز / ایسٹرو رابطہ فارم انٹیگریشن (جامد اور ایس ایس آر)
انٹیگریشن گائیڈ · ایسٹرو اور جیمسٹاک

ایسٹرو رابطہ فارم انٹیگریشن (جامد اور ایس ایس آر)

ای میل سرورز یا ڈیٹا بیس کو برقرار رکھے بغیر Lugatu اینڈ پوائنٹس کا استعمال کرتے ہوئے Astro static sites (SSG) اور ہائبرڈ سرور روٹس پر رابطہ فارم کیسے شامل کریں۔

1. خالص جامد سائٹ (SSG) فارم ادخال

ایسٹرو بطور ڈیفالٹ صفر جاوا اسکرپٹ کے لیے مشہور ہے۔ Lugatu کے ساتھ، آپ معیاری HTML فارمز اور ہلکے وزن والے کلائنٹ سائڈ بازیافت کے ساتھ استفسارات جمع کرتے ہوئے اپنی Astro سائٹ کو 100% مستحکم رکھ سکتے ہیں۔

src/pages/contact.astro astro
---
// src/pages/contact.astro
---
<form id="astro-contact-form" class="space-y-4 max-w-md">
  <div>
    <label class="block text-sm font-semibold mb-1">Your Name</label>
    <input type="text" name="name" required class="w-full border rounded-xl p-2.5" />
  </div>
  <div>
    <label class="block text-sm font-semibold mb-1">Email Address</label>
    <input type="email" name="email" required class="w-full border rounded-xl p-2.5" />
  </div>
  <div>
    <label class="block text-sm font-semibold mb-1">Message</label>
    <textarea name="message" rows="4" required class="w-full border rounded-xl p-2.5"></textarea>
  </div>

  <input type="text" name="_gotcha" style="display:none !important" tabindex="-1" autocomplete="off" />

  <button type="submit" class="btn-primary-editorial py-2.5 px-6">Send Message</button>
</form>

<script>
  const form = document.getElementById('astro-contact-form') as HTMLFormElement;
  form?.addEventListener('submit', async (e) => {
    e.preventDefault();
    const formData = new FormData(form);

    const payload = {
      fields: {
        name: formData.get('name'),
        email: formData.get('email'),
        message: formData.get('message'),
      },
      honeypot: formData.get('_gotcha') || '',
    };

    const res = await fetch('https://www.lugatu.com/api/v1/public/forms/YOUR_PUBLIC_FORM_ID/submissions', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
      body: JSON.stringify(payload),
    });

    if (res.ok) {
      alert('Thank you! Message delivered.');
      form.reset();
    }
  });
</script>

2. سرور API کلید کے ساتھ Astro Hybrid / SSR API روٹ

اگر آپ کی Astro سائٹ Cloudflare Pages، Netlify، یا Vercel پر ہائبرڈ یا SSR موڈ میں چلتی ہے، تو Astro API روٹ کے ذریعے گذارشات کو محفوظ طریقے سے آگے بھیجیں۔

src/pages/api/contact.ts typescript
import type { APIRoute } from 'astro';

export const POST: APIRoute = async ({ request }) => {
  const data = await request.formData();
  const fields = {
    name: data.get('name')?.toString(),
    email: data.get('email')?.toString(),
    message: data.get('message')?.toString(),
  };

  const res = await fetch(`https://www.lugatu.com/api/v1/forms/${import.meta.env.LUGATU_FORM_ID}/submissions`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${import.meta.env.LUGATU_API_KEY}`,
      'Content-Type': 'application/json',
      'Idempotency-Key': crypto.randomUUID(),
    },
    body: JSON.stringify({ fields }),
  });

  return new Response(JSON.stringify({ success: res.ok }), {
    status: res.status,
    headers: { 'Content-Type': 'application/json' },
  });
};

سیکورٹی اور توثیق انویرینٹ

حفاظتی ہدایات: کبھی بھی import.meta.env.LUGATU_API_KEY کو ایسٹرو کلائنٹ سائڈ اسکرپٹ ٹیگز میں ظاہر نہ کریں۔ کلائنٹ اسکرپٹس کو صرف پبلک اینڈ پوائنٹ کا استعمال کرنا چاہیے۔

ٹربل شوٹنگ اور عام ادخال کی خرابیاں

فارم مقامی طور پر کام کرتا ہے لیکن پروڈکشن Cloudflare/Netlify build میں ناکام ہوجاتا ہے۔

یقینی بنائیں کہ آپ کے پیداواری ماحول کے متغیرات (LUGATU_FORM_ID اور LUGATU_API_KEY) آپ کے ہوسٹنگ ڈیش بورڈ میں کنفیگر ہیں۔

اکثر پوچھے گئے سوالات

کیا میں اپنی ایسٹرو سائٹ کو Lugatu کے ساتھ 100% مستحکم رکھ سکتا ہوں؟

جی ہاں خالص جامد (SSG) سائٹس آپ کے ہوسٹنگ فراہم کنندہ پر کسی سرور کی گنتی کی ضرورت کے بغیر براہ راست Lugatu پبلک اینڈ پوائنٹ پر جمع کراتی ہیں۔

اپنا فارم اینڈ پوائنٹ بنانے کے لیے تیار ہیں؟

سیکنڈوں میں مفت شروع کریں۔ کریڈٹ کارڈ کی ضرورت نہیں ہے۔

مفت شروع کریں۔ →