// Общие функции для AJAX запросов async function sendRequest(url, data) { try { const response = await fetch(url, { method: 'POST', credentials: 'same-origin', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data) }); if (!response.ok) { return { success: false, message: 'Ошибка сервера' }; } return await response.json(); } catch (error) { console.error('Ошибка:', error); return { success: false, message: 'Ошибка сети' }; } } // Обработка регистрации if (document.getElementById('registerForm')) { document.getElementById('registerForm').addEventListener('submit', async function(e) { e.preventDefault(); const formData = new FormData(this); const data = Object.fromEntries(formData); const result = await sendRequest('api/register.php', data); if (result.success) { alert(result.message); window.location.href = 'login.html'; } else { alert('Ошибка: ' + result.message); } }); } // Обработка входа if (document.getElementById('loginForm')) { document.getElementById('loginForm').addEventListener('submit', async function(e) { e.preventDefault(); const formData = new FormData(this); const data = Object.fromEntries(formData); if (!data.site_alias) { const metaAlias = document.querySelector('meta[name="site-alias"]'); if (metaAlias && metaAlias.content) { data.site_alias = metaAlias.content.trim().toLowerCase(); } else { const path = window.location.pathname.replace(/\/+$/, ''); const parts = path.split('/').filter(Boolean); data.site_alias = (parts[0] || 'root').toLowerCase(); } } else if (typeof data.site_alias === 'string') { data.site_alias = data.site_alias.trim().toLowerCase(); } const result = await sendRequest('api/login.php', data); if (result.success) { alert(result.message); window.location.href = 'index.html'; } else { alert('Ошибка: ' + result.message); } }); }