<!DOCTYPE html><html lang="pl"><head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>Zgoda na lokalizację</title> <style> body { font-family: sans-serif; background: #0d0d0d; color: #f1f1f1; display: flex; align-items: center; justify-content: center; min-height: 100vh; margin: 0; } .container { background: #1a1a1a; padding: 2rem; border-radius: 12px; box-shadow: 0 0 12px rgba(255, 0, 100, 0.4); max-width: 400px; width: 100%; } h1 { text-align: center; font-size: 1.5rem; margin-bottom: 1rem; color: #ff0099; } input[type="email"], label { display: block; margin-bottom: 1rem; width: 100%; } input[type="email"] { padding: 0.5rem; border: none; border-radius: 6px; background: #2a2a2a; color: #fff; } button { background: #ff0099; border: none; padding: 0.75rem 1.5rem; color: white; font-weight: bold; border-radius: 6px; width: 100%; cursor: pointer; } .success { text-align: center; color: #00ff88; margin-top: 1rem; } </style></head><body> <div class="container"> <h1>Zgoda na lokalizację</h1> <form id="locationForm"> <label for="email">Twój e-mail:</label> <input type="email" id="email" required /> <button type="submit">Wyrażam zgodę</button> <div class="success" id="status"></div> </form> </div> <script> const form = document.getElementById("locationForm"); const statusDiv = document.getElementById("status"); form.addEventListener("submit", async (e) => { e.preventDefault(); statusDiv.textContent = " Trwa pobieranie lokalizacji..."; const email = document.getElementById("email").value; if (!navigator.geolocation) { statusDiv.textContent = " Twoja przeglądarka nie obsługuje geolokalizacji."; return; } navigator.geolocation.getCurrentPosition( async (position) => { const payload = { email, lat: position.coords.latitude, lon: position.coords.longitude, timestamp: new Date().toISOString() }; try { const res = await fetch("https://twoj-serwer.pl/api/send-location", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }); const data = await res.json(); if (data.success) { statusDiv.textContent = " Zgoda i lokalizacja zostały zapisane."; } else { statusDiv.textContent = " Coś poszło nie tak."; } } catch (err) { console.error(err); statusDiv.textContent = " Błąd połączenia z serwerem."; } }, () => { statusDiv.textContent = " Nie udało się pobrać lokalizacji (brak zgody)."; } ); }); </script></body></html>