🐦 EuroChat - ähnlich Twitter
📋 Inhaltsverzeichnis
1. [Überblick](überblick)
2. [Features](features)
3. [Systemanforderungen](systemanforderungen)
4. [Installation](installation)
5. [Datenbank-Struktur](datenbank-struktur)
6. [Werbung-System](werbung-system)
7. [Dateistruktur](dateistruktur)
8. [Konfiguration](konfiguration)
9. [Benutzung](benutzung)
10. [Admin-Panel](admin-panel)
11. [Troubleshooting](troubleshooting)
📖 Überblick
EuroChat ist ein vollständiges Twitter/X Clone mit integriertem Werbung-System. Benutzer können Posts erstellen, anderen folgen, Likes vergeben und kostenpflichtige Werbebanner schalten.
**Hauptmerkmale:**
- 🔓 Öffentliche Startseite (Posts ohne Login sichtbar)
- 📢 Duales Werbung-System (Admin + User)
- 👤 Vollständiges User-Management
- ⚙️ Umfangreiches Admin-Panel
- 📱 Responsive Design
- 🔒 Sichere Session-Verwaltung
- 🖼️ Avatar & Banner Upload
✨ Features
Für Benutzer:
- ✅ Registrierung & Login
- ✅ Posts erstellen (max 280 Zeichen)
- ✅ Bilder hochladen
- ✅ Hashtags & Mentions
- ✅ Likes & Retweets
- ✅ Follower-System
- ✅ Benachrichtigungen
- ✅ Profilbearbeitung (Avatar, Banner, Bio)
- ✅ Werbung schalten (€9.99 via PayPal)
- ✅ Suche & Explore
Für Admins:
- ✅ Posts löschen (alle oder eigene)
- ✅ User verifizieren
- ✅ User-Werbung freigeben/ablehnen
- ✅ Admin-Werbung verwalten (3 Positionen)
- ✅ Statistiken ansehen
Werbung-System:
- ✅ **Admin-Werbung:** 3 feste Positionen (Sidebar rechts)
- ✅ **User-Werbung:** 2 Slots unter Posts (234x60 Banner)
- ✅ PayPal-Zahlung (€0.99 pro Banner)
- ✅ Views & Clicks Tracking
- ✅ HTML/JavaScript Code-Support
💻 Systemanforderungen
- **PHP:** 8.0 oder höher
- **MySQL:** 5.7 oder höher
- **Apache/Nginx** mit mod_rewrite
- **SSL-Zertifikat** (für PayPal Live-Modus)
- **Schreibrechte:** für /uploads Ordner
**PHP Extensions:**
- PDO
- PDO_MySQL
- GD (für Bildverarbeitung)
📥 Installation
Schritt 1: Dateien hochladen
bash
Via FTP alle Dateien in Ihr Webverzeichnis hochladen
Beispiel: /public_html/eurochat/
Schritt 2: Ordner-Berechtigungen
bash
chmod 755 uploads/
Schritt 3: Installation starten
1. **Browser öffnen:** `https://ihre-domain.de/install.php`
2. **Datenbank-Informationen eingeben:**
- DB Host: `localhost` (meist)
- DB Name: `eurochat_db`
- DB User: `ihr_db_user`
- DB Password: `ihr_db_passwort`
3. **Admin-Account erstellen:**
- Admin Username: `admin`
- Admin Email: `admin@ihre-domain.de`
- Admin Password: `sicheres-passwort`
4. **PayPal konfigurieren** (siehe unten)
5. **Installieren klicken**
6. **install.php wird automatisch gelöscht**
Schritt 4: Fertig!
Die Installation erstellt automatisch:
- ✅ 6 Datenbank-Tabellen
- ✅ 3 Admin-Werbepositionen
- ✅ Admin-Account
- ✅ config.php Datei
📢 Werbung-System
Admin-Werbung (Sidebar rechts)
**Position 1 (Oben):**
- Immer sichtbar
- Nur Admin kann bearbeiten
- HTML/JS Code-Support
**Position 2 (Mitte):**
- Zwischen Position 1 und 3
- Ideal für wichtige Ankündigungen
**Position 3 (Unten):**
- Am Ende der Sidebar
- Perfekt für zusätzliche Infos
**Verwaltung:**
- Admin-Panel → Admin-Werbung verwalten
- Titel + Code eingeben
- Status: active/inactive
User-Werbung (Unter Posts)
**Layout:**
[Post 1]
[Post 2]
[Post 3]
...
[User-Ad Slot 1] [User-Ad Slot 2]
234x60 234x60
[Post 4]
[Post 5]
...
**Ablauf:**
1. **User:** My Ads → Neue Werbung
2. **Slot wählen:** 1 (links) oder 2 (rechts)
3. **Daten eingeben:**
- Titel
- HTML/JS Code
4. **"Weiter zur Zahlung"**
5. **PayPal Mail erscheint** (€0.99)
6. **Zahlung durchführen**
7. **Status:** pending → Admin gibt frei → active
8. **Werbung erscheint** unter den Posts
**Tracking:**
- Views: Automatisch gezählt
- Clicks: Via onclick Event
- Statistiken in "My Ads"
⚙️ Konfiguration
config.php bearbeiten
Nach Installation befindet sich in `config.php`:
Anpassungen
**Site Name ändern:**
php
define("SITE_NAME", "Meine Community");
**Post-Länge ändern:**
php
define("MAX_POST_LENGTH", 500); // Standard: 280
**Werbung-Preis ändern:**
php
define("USER_AD_PRICE", 19.99); // Standard: 9.99
👤 Benutzung
Als Gast (nicht eingeloggt):
1. **Startseite besuchen** → Alle Posts sehen
2. **Pagination nutzen** → Durch Posts blättern
3. **Registrieren** → Account erstellen
4. **Login** → Einloggen
Als User (eingeloggt):
1. **Post erstellen:**
- Startseite → Textfeld
- Bild hochladen (optional)
- Posten klicken
2. **Profil bearbeiten:**
- Navigation → Profile
- Avatar hochladen (max 2 MB)
- Banner hochladen (max 3 MB)
- Bio, Website, Location eingeben
- Speichern
3. **Werbung schalten:**
- Navigation → My Ads
- "Neue Werbung erstellen"
- Slot wählen (1 oder 2)
- Titel + Code eingeben
- Weiter zur Zahlung
- PayPal-Zahlung (€0.99)
- Warten auf Admin-Freigabe
4. **Interagieren:**
- Posts liken ❤️
- Retweets 🔁
- Kommentare 💬
- Hashtags verwenden example
- User erwähnen @username
Als Admin:
1. **Admin-Panel öffnen:**
- Navigation → Admin
- Statistiken ansehen
2. **Admin-Werbung verwalten:**
- Position 1, 2, 3 bearbeiten
- Code einfügen
- Status setzen (active/inactive)
3. **User-Werbung freigeben:**
- Pending Ads ansehen
- Code prüfen
- Freigeben oder Ablehnen
- Bei Ablehnung: User kann neu einreichen
4. **Posts moderieren:**
- Alle Posts sehen
- Unangemessene Posts löschen 🗑️
- User verifizieren ✓
5. **User verwalten:**
- User-Liste ansehen
- Verifizierungs-Status ändern
- Stats sehen (Posts, Follower)
🛡️ Admin-Panel
Zugriff:
- Nur Admins (is_admin = 1)
- Navigation → Admin
Funktionen:
📊 Dashboard
[Statistiken]
- Anzahl Benutzer
- Anzahl Posts
- Wartende User-Ads
📍 Admin-Werbung
Position 1 (Oben)
├─ Titel bearbeiten
├─ Code bearbeiten
└─ Status ändern
Position 2 (Mitte)
└─ ...
Position 3 (Unten)
└─ ...
📢 User-Werbung
Für jede User-Ad:
├─ Vorschau
├─ Status (pending/active/rejected)
├─ Views & Clicks
├─ Bezahlt-Status
└─ Aktionen:
├─ ✓ Freigeben (wenn pending)
├─ ✗ Ablehnen
└─ 🗑️ Löschen
👥 Benutzer-Verwaltung
User-Tabelle:
├─ ID
├─ Username
├─ Email
├─ Verifiziert (✓/✗)
├─ Admin (✓/✗)
├─ Posts Count
└─ Aktion: Verifizieren/Entverifizieren
📝 Post-Moderation
Alle Posts:
├─ Username
├─ Content
├─ Bild (falls vorhanden)
├─ Stats (Likes, Retweets)
└─ 🗑️ Löschen (mit Bestätigung)
🐛 Troubleshooting
Problem: "DB Error" bei Installation
**Lösung:**
1. Datenbank-Credentials prüfen
2. Datenbank existiert?
3. User hat CREATE TABLE Rechte?
4. PHP PDO Extension aktiviert?
Problem: Bilder werden nicht hochgeladen
**Lösung:**
1. `/uploads` Ordner existiert?
2. Schreibrechte: `chmod 755 uploads/`
3. PHP upload_max_filesize erhöhen
4. PHP post_max_size erhöhen
ini
; In php.ini
upload_max_filesize = 10M
post_max_size = 10M
Problem: Session-Fehler "Headers already sent"
**Lösung:**
1. Keine Ausgabe vor `session_start()`
2. UTF-8 ohne BOM speichern
3. Leerzeilen am Anfang/Ende entfernen
4. PHP-Datei mit `<?php` beginnen
Problem: User-Werbung erscheint nicht
**Checklist:**
- ✅ Admin hat freigegeben? (status = active)
- ✅ Browser-Cache geleert?
- ✅ Mindestens 2 User-Ads aktiv für Anzeige
🔐 Sicherheit
Beste Praktiken:
1. **HTTPS verwenden** (Let's Encrypt kostenlos)
2. **Starkes Admin-Passwort** (min. 12 Zeichen)
3. **PHP aktuell halten** (min. PHP 8.0)
4. **Regelmäßige Backups** (Datenbank + Dateien)
5. **File Upload begrenzen** (max 5 MB)
6. **SQL Injection geschützt** (PDO Prepared Statements)
7. **XSS geschützt** (htmlspecialchars)
8. **CSRF Schutz** (Session-basiert)
config.php schützen:
**.htaccess erstellen:**
apache
<Files "config.php">
Order Allow,Deny
Deny from all
</Files>
📜 Lizenz
Proprietär - Alle Rechte vorbehalten
💡 Tipps & Tricks
Performance:
1. **Caching aktivieren:**
php
// In config.php
opcache_enable();
2. **Datenbank-Indizes nutzen** (bereits vorhanden)
3. **Bilder optimieren** vor Upload
SEO:
1. **Sitemap erstellen** für Posts
2. **Meta-Tags** hinzufügen
3. **Open Graph** für Social Sharing
Werbung optimieren:
1. **A/B Testing** verschiedene Positionen
2. **Analytics einbauen** (Google Analytics)
3. **Click-Through-Rate** tracken
**🎉 Viel Erfolg mit EuroChat!**