Файловый менеджер - Редактировать - /home/gqdcvggs/.trash/index.html.3
Назад
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Imators - Vérification d'Identité</title> <script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" /> <script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script> </head> <body class="min-h-screen bg-black text-white"> <div class="max-w-4xl mx-auto p-6"> <h1 class="text-3xl font-bold mb-8 text-center">Imators - Vérification d'Identité</h1> <form id="verificationForm" class="space-y-6"> <div class="space-y-4"> <div class="grid grid-cols-2 gap-4"> <div> <label class="block text-sm mb-2">Nom</label> <input type="text" name="nom" required class="w-full bg-gray-900 border border-gray-700 rounded p-2"> </div> <div> <label class="block text-sm mb-2">Prénom</label> <input type="text" name="prenom" required class="w-full bg-gray-900 border border-gray-700 rounded p-2"> </div> </div> <div class="space-y-4"> <div> <label class="block text-sm mb-2">Rue</label> <input type="text" name="rue" id="rue" required class="w-full bg-gray-900 border border-gray-700 rounded p-2"> </div> <div class="grid grid-cols-2 gap-4"> <div> <label class="block text-sm mb-2">Numéro</label> <input type="text" name="numero" id="numero" required class="w-full bg-gray-900 border border-gray-700 rounded p-2"> </div> <div> <label class="block text-sm mb-2">Pays</label> <input type="text" name="pays" id="pays" required class="w-full bg-gray-900 border border-gray-700 rounded p-2"> </div> </div> </div> <div id="map" class="h-64 bg-gray-900 border border-gray-700 rounded mb-6"></div> <div class="grid grid-cols-2 gap-4"> <div> <label class="block text-sm mb-2">Carte d'identité (Recto)</label> <div class="relative border-2 border-dashed border-gray-700 rounded p-4 text-center"> <svg class="mx-auto h-8 w-8 mb-2" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12" /> </svg> <input type="file" name="cardFront" required accept="image/*" class="absolute inset-0 w-full h-full opacity-0 cursor-pointer"> <p class="text-sm text-gray-400" id="cardFrontName">Cliquez ou glissez le fichier ici</p> </div> </div> <div> <label class="block text-sm mb-2">Carte d'identité (Verso)</label> <div class="relative border-2 border-dashed border-gray-700 rounded p-4 text-center"> <svg class="mx-auto h-8 w-8 mb-2" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12" /> </svg> <input type="file" name="cardBack" required accept="image/*" class="absolute inset-0 w-full h-full opacity-0 cursor-pointer"> <p class="text-sm text-gray-400" id="cardBackName">Cliquez ou glissez le fichier ici</p> </div> </div> </div> </div> <div class="bg-yellow-900/50 border border-yellow-600 rounded-lg p-4 mb-6"> <div class="flex items-center"> <svg class="h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /> </svg> <p class="text-sm"> Assurez-vous que vos documents sont bien lisibles et non endommagés. Les fichiers doivent être au format JPG ou PNG. </p> </div> </div> <div class="text-sm text-gray-400 mb-6"> <p>En soumettant ce formulaire, vous acceptez que vos données soient traitées conformément à notre politique de confidentialité.</p> <p class="mt-2">Imators LLC s'engage à protéger vos données personnelles conformément au RGPD.</p> </div> <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-medium py-2 px-4 rounded transition"> Soumettre la vérification </button> </form> <div id="success" class="hidden bg-green-900 border border-green-500 rounded-lg p-4 mt-6"> <div class="flex items-center"> <svg class="h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /> </svg> <p>Vérification soumise avec succès!</p> </div> </div> </div> <script> // Initialisation de la carte const map = L.map('map').setView([48.8566, 2.3522], 13); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap contributors' }).addTo(map); let marker = L.marker([48.8566, 2.3522]).addTo(map); // Mise à jour des noms de fichiers document.querySelector('input[name="cardFront"]').addEventListener('change', function(e) { document.getElementById('cardFrontName').textContent = e.target.files[0].name; }); document.querySelector('input[name="cardBack"]').addEventListener('change', function(e) { document.getElementById('cardBackName').textContent = e.target.files[0].name; }); // Mise à jour de la carte async function updateMap() { const rue = document.getElementById('rue').value; const numero = document.getElementById('numero').value; const pays = document.getElementById('pays').value; const address = `${numero} ${rue}, ${pays}`; try { const response = await fetch(`https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(address)}`); const data = await response.json(); if (data.length > 0) { const lat = parseFloat(data[0].lat); const lon = parseFloat(data[0].lon); map.setView([lat, lon], 16); marker.setLatLng([lat, lon]); } } catch (error) { console.error('Erreur de géocodage:', error); } } // Écouteurs d'événements pour la carte document.getElementById('rue').addEventListener('change', updateMap); document.getElementById('numero').addEventListener('change', updateMap); document.getElementById('pays').addEventListener('change', updateMap); // Gestion du formulaire document.getElementById('verificationForm').addEventListener('submit', async (e) => { e.preventDefault(); const formData = new FormData(e.target); try { const response = await fetch('upload.php', { method: 'POST', body: formData }); const result = await response.json(); if (result.success) { document.getElementById('success').classList.remove('hidden'); e.target.classList.add('hidden'); } else { throw new Error(result.error); } } catch (error) { alert('Erreur: ' + error.message); } }); </script> </body> </html>
| ver. 1.6 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка