2.8 KiB
2.8 KiB
Krok 18 - Kontakt a Formuláre (SMTP & Lokálny mód)
Kontext projektu
Exportovaný web musí obsahovať funkčný kontaktný formulár. Podľa konfigurácie buď odosiela maily cez SMTP, alebo ukladá správy lokálne.
Pred implementáciou si preštuduj
docs/mvp.md- Sekcia 9 (Kontaktny formular).docs/architecture.md- Sekcia 11 (Kontaktny formular).
Cieľ
Implementovať backendové skripty pre formuláre, ktoré budú súčasťou exportu.
Požadované zmeny
- Vytvorenie šablóny
src/Templates/emailer.php:- PHP skript, ktorý prijme POST dáta z formulára.
- Odoslanie emailu cez SMTP (použitie PHP
mail()alebo jednoduchá SMTP implementácia bez externých knižníc). - Ochrana proti spamu (honeypot, rate limit).
- Vytvorenie šablóny
src/Templates/form-viewer.php:- PHP skript pre lokálny mód.
- Prihlasovacia obrazovka (overenie voči hashu z
config.json). - Výpis prijatých správ zo zložky
messages/. - Detail správy.
- Úprava
Renderer.php:- Ak je formulár zapnutý, skopíruj príslušný PHP skript do exportu.
- Vygeneruj
config.jsonv exporte s nastaveniami (SMTP údaje alebo hash hesla). - Zabezpeč vytvorenie prázdneho priečinka
messages/a.htaccessna jeho ochranu.
Implementačné pravidlá
emailer.phpnesmie obsahovať SMTP heslo priamo v kóde (načíta ho zconfig.json).form-viewer.phpmusí používať session pre prihlásenie.- Zabezpeč ochranu proti XSS pri výpise správ v lokálnom móde.
Súbory ktoré je potrebné vytvoriť
src/Templates/emailer.phpsrc/Templates/form-viewer.php
Súbory ktoré je potrebné upraviť
src/Services/Renderer.php
API a dátové štruktúry
Štruktúra správy v lokálnom móde:
{
"id": "...",
"timestamp": "...",
"sender_name": "...",
"sender_email": "...",
"subject": "...",
"message": "..."
}
Frontend požiadavky
- AJAX odosielanie formulára na webe s feedbackom (Úspech/Chyba).
Backend požiadavky
- PHP 8.2 na cieľovom hostingu.
Testovací scenár
- Vygeneruj web s lokálnym módom formulára.
- Odošli správu cez formulár na webe.
- Over, či vznikol súbor v
exports/<id>/messages/. - Prihlás sa do
form-viewer.phpso zadaným heslom a over, či vidíš správu. - Zopakuj pre SMTP mód (over odoslanie mailu).
Definition of Done
- Kontaktný formulár je plne funkčný v oboch módoch.
- Bezpečnosť dát a ochrana proti spamu je implementovaná.
- Prehliadač správ funguje správne.
Obmedzenia
- Žiadne externé knižnice ako PHPMailer (ak je to možné, použiť natívne PHP riešenie pre MVP).
Výstup
- zoznam vytvorených súborov
- zoznam upravených súborov
- stručné zhrnutie vykonaných zmien
- prípadné otvorené problémy