# 📡 RSS-Verzeichnis – PHP-Skript
Kostenloses RSS-Feed-Verzeichnis in PHP 8.0+ mit Live-Feed-Vorschau, RSS-Button-Generator, OPML-Export und Admin-Panel.
## Features
- **Feed-Verzeichnis** – Kategorien mit Zähler, Suche & Filter, Sortierung
- **Feed-Eintragen** – Gäste UND registrierte Nutzer (konfigurierbar)
- **Live Feed-Vorschau** – Integrierter Feed-Reader mit bis zu 20 Beiträgen
- **RSS-Button Generator** – HTML-Code in 4 Farben + 3 Größen
- **OPML-Export** – Alle Feeds oder nach Kategorie gefiltert
- **RSS-Feed des Verzeichnisses** – /rss.php
- **2FA per E-Mail** – 6-stelliger Code, 10 Min. gültig
- **Admin-Panel** – Feeds freischalten/ablehnen, Nutzerverwaltung, Einstellungen
## Installation
1. ZIP entpacken auf Webserver
2. Datenbank anlegen (MySQL/MariaDB, UTF-8)
3. Browser: `https://ihredomain.de/install.php`
4. Schritt 1: Datenbankverbindung eingeben
5. Schritt 2: Admin-Konto + SMTP konfigurieren
6. `install.php` löscht sich automatisch
## Standard-Kategorien (18)
Auto & Motorrad, Bildung & Beruf, Business, Computer & Technik, Finanzen, Freizeit & Hobby, Gesellschaft, Gesundheit, Internet, Kostenlos & Gratis, Kunst & Kultur, Medien, Nachrichten, Reisen, Sport, Versicherungen, Wirtschaft, Sonstiges
## Dateistruktur
```
/
├── install.php Installationsassistent (löscht sich selbst)
├── config.php Konfiguration (auto-generiert)
├── functions.php Alle Hilfsfunktionen
├── index.php Startseite
├── verzeichnis.php Feed-Verzeichnis mit Suche & Filter
├── feed-eintragen.php Feed einreichen (Gäste + Login)
├── feed-vorschau.php Live Feed-Reader + Feed-Details
├── rss-button.php RSS-Button Generator
├── opml-export.php OPML Download
├── rss.php RSS-Feed des Verzeichnisses
├── click.php Klick-Tracker + Redirect
├── login.php Login mit 2FA
├── register.php Registrierung
├── logout.php Abmelden
├── konto.php Konto-Verwaltung + 2FA-Toggle
├── /admin/
│ ├── index.php Admin Dashboard
│ ├── websites.php Feed-Verwaltung
│ ├── users.php Nutzerverwaltung
│ └── settings.php System-Einstellungen
├── /includes/
│ ├── header.php Navigation + CSS
│ └── footer.php Footer
├── /emails/ E-Mail-Templates
├── /uploads/logos/ Feed-Logos (WebP)
└── /logs/ Server-Logs
```
## Admin-Panel
URL: `/admin/index.php`
- **Dashboard** – Statistiken, ausstehende Feeds
- **Feed-Verwaltung** – Freischalten/Ablehnen mit E-Mail, Featured markieren
- **Nutzerverwaltung** – Aktivieren/Sperren/Löschen, 2FA-Reset
- **Einstellungen** – Website-Name/URL, SMTP, Gäste erlauben, Auto-Approve
## Sicherheit
- PDO Prepared Statements überall
- CSRF-Token-Schutz auf allen Formularen
- bcrypt Passwort-Hashing (Cost 12)
- HttpOnly Session-Cookies
- XSS-Schutz via htmlspecialchars()
- Upload-Schutz (index.php in Upload-Ordnern)
- WebP-Konvertierung für alle Bild-Uploads
## E-Mail-Templates
| Datei | Zweck |
|-------|-------|
| twofa.php | 2FA-Code bei Login |
| welcome.php | Willkommen nach Registrierung |
| feed_submitted.php | Bestätigung nach Einreichen |
| feed_approved.php | Feed wurde freigeschaltet |
| feed_rejected.php | Feed abgelehnt + Grund |
| admin_new_feed.php | Admin: Neuer Feed eingereicht |
## Anforderungen
- PHP 8.0+ (empfohlen: 8.2+)
- MySQL 5.7+ / MariaDB 10.3+
- PHP-Extensions: PDO, GD, finfo, SimpleXML
- Webserver: Apache / Nginx
## Troubleshooting
**WebP-Konvertierung schlägt fehl:**
```
php -m | grep gd
```
GD-Extension aktivieren in php.ini: `extension=gd`
**Feed-Vorschau lädt nicht:**
- `allow_url_fopen = On` in php.ini prüfen
- Oder cURL aktiviert?
**E-Mails kommen nicht an:**
- SMTP-Einstellungen in Admin → Einstellungen prüfen
- Port 587 (STARTTLS) oder 465 (SSL)
- Leer lassen → PHP mail() als Fallback
**Gäste können nicht eintragen:**
- Admin → Einstellungen → "Gäste dürfen eintragen" auf Ja
---
PHP 8.0+ · MySQL · Kostenlos · Keine Abhängigkeiten