Geschenke-Portal
🎁 Geschenke-Portal
Ein innovatives Portal, auf dem User Wunschprodukte einstellen und Händler Aufgaben vergeben können. User erledigen Aufgaben (z.B. Social-Media-Posts) und sammeln Punkte, um ihre Wunschprodukte zu erhalten.
📋 Features
User
- Wunschprodukte mit Bild und Beschreibung einstellen
- Aufgaben von Händlern erledigen
- Punkte sammeln (4:1 Ratio - 50€ Produkt = 200 Punkte)
- Tracking-Link: `projekt.de?u=@username`
- Punkte bei Händlern einlösen
- Chat mit Händlern
Händler
- Auf Wunschprodukte bewerben
- Aufgaben erstellen (Social Media, Foren, etc.)
- Screenshot-Beweise prüfen
- Punkte vergeben
- Produktkatalog verwalten
- **Pflicht:** Impressum mit Steuernummer
- **Pflicht:** Gewerbeanmeldung hochladen
Admin
- User/Händler verwalten
- Gewerbeanmeldungen prüfen & freischalten
- Impressum, Datenschutz, AGB bearbeiten
- FAQ für User/Händler editieren
- Statistiken einsehen
🚀 Installation
Voraussetzungen
- PHP 8.0 oder höher
- MySQL/MariaDB
- Apache/Nginx Webserver
- GD Library (für Bildkonvertierung)
Schritt 1: Dateien hochladen
bash
Projekt-Dateien auf Server hochladen
Berechtigungen setzen
chmod 755 -R /pfad/zum/projekt
chmod 777 -R uploads/
Schritt 2: Installation ausführen
1. Browser öffnen: `https://deine-domain.de/install.php`
2. Datenbank-Zugangsdaten eingeben
3. Admin-Account erstellen
4. `install.php` wird automatisch gelöscht
Schritt 3: Erste Schritte
1. Mit Admin-Account anmelden
2. Impressum, Datenschutz, AGB unter Admin → Einstellungen erstellen
3. FAQ für User/Händler anpassen
📂 Projektstruktur
geschenke-portal/
├── install.php Installation (löscht sich selbst)
├── config.php Datenbank-Konfiguration (erstellt von install.php)
├── functions.php Helper-Funktionen
├── index.php Marktplatz
├── register.php Registrierung (User/Händler)
├── login.php Login mit 2FA
├── 2fa_verify.php 2FA Code-Eingabe
├── logout.php Logout
│
├── user/ User-Bereich
│ ├── dashboard.php Dashboard
│ ├── wishlist.php Wunschliste verwalten
│ ├── tasks.php Verfügbare Aufgaben
│ ├── submit_task.php Aufgabe einreichen
│ ├── points.php Punkteübersicht
│ ├── profile.php Profil bearbeiten
│ └── faq.php FAQ
│
├── haendler/ Händler-Bereich
│ ├── dashboard.php Dashboard
│ ├── gewerbe_upload.php Gewerbeanmeldung hochladen
│ ├── profile.php Firmenprofil + Impressum
│ ├── browse.php Wunschprodukte durchsuchen
│ ├── apply.php Auf Produkt bewerben
│ ├── tasks.php Aufgaben verwalten
│ ├── review.php Aufgaben-Freigaben
│ └── faq.php FAQ
│
├── admin/ Admin-Bereich
│ ├── dashboard.php Dashboard + Statistiken
│ ├── users.php User-Verwaltung
│ ├── verify_gewerbe.php Gewerbeanmeldungen prüfen
│ └── settings.php Impressum, Datenschutz, AGB, FAQ
│
├── chat/ Chat-System
│ ├── index.php Chat-Übersicht
│ ├── conversation.php Chat-Fenster
│ └── send.php Nachricht senden (AJAX)
│
├── uploads/ Upload-Verzeichnisse
│ ├── profiles/ Profilbilder
│ ├── products/ Produktbilder
│ ├── tasks/ Screenshot-Beweise
│ └── gewerbe/ Gewerbeanmeldungen
│
└── README.md Diese Datei
🔒 Sicherheit
- ✅ PDO Prepared Statements (SQL Injection Protection)
- ✅ htmlspecialchars() für alle Ausgaben (XSS Protection)
- ✅ Password Hashing (PHP password_hash)
- ✅ IP-Adressen gehasht (SHA-256)
- ✅ 2FA per Email
- ✅ Upload-Protection (index.php in Upload-Ordnern)
- ✅ Session-Management
🎨 Design
- Farbschema: Grün/Gelb (Marktplatz-Feeling)
- Moderne Glassmorphism-Effekte
- Responsive Design
- Font Awesome Icons
⚙️ Konfiguration
Datenbank (config.php)
php
define('DB_HOST', 'localhost');
define('DB_NAME', 'geschenke_portal');
define('DB_USER', 'root');
define('DB_PASS', '');
Punkte-Ratio (config.php)
php
define('POINTS_RATIO', 4); // 50€ Produkt = 200 Punkte
💡 Workflow
1. **User erstellt Wunschprodukt**
- Produktbild, Name, Beschreibung, Preis
- Punktepreis wird automatisch berechnet (4:1)
2. **Händler bewirbt sich**
- Sieht Wunschprodukt im Marktplatz
- Bewirbt sich mit Angebot
3. **User akzeptiert Händler**
- Händler wird zugewiesen
- Händler kann Aufgaben erstellen
4. **Händler erstellt Aufgaben**
- "Poste auf Instagram" = 50 Punkte
- User bekommt Tracking-Link: `projekt.de?u=@username`
5. **User erledigt Aufgabe**
- Verwendet Tracking-Link
- Lädt Screenshot hoch
6. **Händler prüft Aufgabe**
- Genehmigt → User erhält Punkte
- Ablehnt → User muss nachbessern
7. **User löst Punkte ein**
- Hat genug Punkte gesammelt
- Händler liefert Produkt
📧 Email-Konfiguration
Das System verwendet die PHP `mail()` Funktion für:
- 2FA Codes
- Benachrichtigungen
Für Produktivumgebung SMTP konfigurieren (z.B. PHPMailer).
🛠️ Troubleshooting
Problem: Bilder werden nicht hochgeladen
bash
Prüfe Berechtigungen
chmod 777 -R uploads/
Problem: Datenbank-Verbindungsfehler
- Prüfe `config.php` Zugangsdaten
- Prüfe MySQL-Service: `service mysql status`
Problem: 2FA Emails kommen nicht an
- Prüfe PHP `mail()` Konfiguration
- Teste mit: `php -r "mail('test@example.com', 'Test', 'Test');"`
Problem: Gewerbeanmeldung kann nicht hochgeladen werden
- Prüfe PHP `upload_max_filesize` und `post_max_size`
- Erhöhe in `php.ini`:
upload_max_filesize = 10M
post_max_size = 10M
📝 Lizenz
Dieses Projekt wurde für phppower entwickelt.
🤝 Support
Bei Fragen oder Problemen:
1. Prüfe diese README
2. Prüfe PHP Error Logs
3. Aktiviere Error Reporting in allen Dateien
🔄 Updates
Aktuelle Version: 1.0
Changelog
- v1.0 (Januar 2025)
- Initiales Release
- User/Händler/Admin-System
- 2FA Authentication
- Aufgaben-System
- Chat-Funktion
- Gewerbeanmeldung-Prüfung
---
Entwickelt mit ❤️ phppower
