Unser Coder-Labor von scripte-php.de als eigenes Script. In jede Homepage zu integrieren.
Ein eigenständiges PHP-Script für Code-Analyse-Anfragen mit Email-Verifikation ohne Login-System.
## ✨ Features
### Kern-Funktionalität
- ✅ **Formular ohne Captcha** - Sicherheit durch Auth-Code
- ✅ **6-stelliger Auth-Code** - Email-Verifikation statt Login
- ✅ **Automatische Installation** - install.php löscht sich selbst
- ✅ **Keine externen Dependencies** - Reines PHP mit `mail()`
- ✅ **File-Upload** - Bis 2MB für Code-Dateien
- ✅ **Admin-Benachrichtigung** - Nur nach Verifizierung
- ✅ **Modernes Design** - Responsive & Clean
### Sicherheit
- 🔒 Auth-Code mit 24h Gültigkeit
- 🔒 Max. 3 Versuche pro Code
- 🔒 Status "pending" bis zur Verifizierung
- 🔒 Upload-Ordner geschützt (.htaccess)
- 🔒 Prepared Statements (SQL-Injection-Schutz)
### Email-System
- 📧 **User:** Verifikations-Email mit 6-stelligem Code
- 📧 **Admin:** Benachrichtigung nur bei verifizierten Anfragen
- 📧 **Updates:** Optional bei Status-Änderungen
## 📋 System-Anforderungen
- **PHP:** 7.4 oder höher
- **MySQL:** 5.7 oder höher
- **PHP Extensions:** mysqli, fileinfo
- **PHP Funktionen:** `mail()` muss funktionieren
- **Speicherplatz:** Min. 50MB für Uploads
## 🚀 Installation
### 1. Dateien hochladen
Lade alle Dateien in dein Webverzeichnis hoch:
```
/dein-verzeichnis/
├── install.php
├── index.php
├── verify.php
├── view.php
├── admin.php
├── download.php
├── config.php (wird erstellt)
├── functions.php
├── uploads/ (wird erstellt)
```
### 2. Installation starten
Öffne im Browser:
```
https://deine-domain.de/pfad-zum-script/install.php
```
### 3. Installations-Schritte
**Schritt 1: Datenbank-Konfiguration**
- Datenbank-Host (meist `localhost`)
- Datenbank-Name
- Datenbank-Benutzer
- Datenbank-Passwort
- Admin-Email (für Benachrichtigungen)
**Schritt 2: Tabellen erstellen**
- Automatisch! Erstellt 4 Tabellen:
- `coderlab_requests` - Haupt-Tabelle
- `coderlab_auth_codes` - Verifikations-Codes
- `coderlab_messages` - Nachrichten/Antworten
- `coderlab_notifications` - Email-Log
**Schritt 3: Config erstellen**
- Automatisch! Erstellt `config.php`
**Schritt 4: Fertig!**
- `install.php` wird automatisch gelöscht
- Upload-Ordner wird erstellt & geschützt
## 📖 Verwendung
### Für Benutzer
1. **Formular ausfüllen** auf `index.php`
- Name, Email, Titel, Beschreibung
- Optional: Code-Snippet oder Datei-Upload
- Programmiersprache wählen
2. **Email erhalten**
- 6-stelliger Code wird gesendet
- Gültigkeit: 24 Stunden
- Max. 3 Eingabeversuche
3. **Code eingeben** auf `verify.php`
- Code aus Email eingeben
- Bei Erfolg: Anfrage wird aktiviert
- Admin wird benachrichtigt
4. **Status verfolgen** auf `view.php`
- Anfrage ansehen
- Nachrichten lesen
- Dateien herunterladen
### Für Admins
1. **Admin-Panel** öffnen: `admin.php`
- Standard-Passwort: `admin123` (**BITTE ÄNDERN!**)
2. **Anfragen verwalten**
- Filter: Alle, Ausstehend, Aktiv, In Bearbeitung, Gelöst
- Status ändern
- Antworten senden mit Code-Snippets
- Dateien ansehen
3. **Passwort ändern**
Öffne `admin.php` und ändere Zeile 11:
```php
$admin_password = 'dein-sicheres-passwort';
```
**WICHTIG:** Schütze `admin.php` zusätzlich mit `.htaccess`!
## ⚙️ Konfiguration
### config.php anpassen
Nach der Installation kannst du `config.php` manuell anpassen:
```php
// Email-Einstellungen
define('EMAIL_FROM', 'noreply@deine-domain.de');
define('EMAIL_FROM_NAME', 'Dein Coder-Lab');
// Auth-Code Settings
define('AUTH_CODE_LENGTH', 6); // Code-Länge
define('AUTH_CODE_EXPIRY_HOURS', 24); // Gültigkeit
define('AUTH_CODE_MAX_ATTEMPTS', 3); // Max. Versuche
// Upload Settings
define('MAX_FILE_SIZE', 2097152); // 2MB
```
### Email-Versand konfigurieren
Das Script verwendet PHPs `mail()` Funktion. Wenn diese nicht funktioniert:
**Option 1:** SMTP konfigurieren (php.ini)
```ini
[mail function]
SMTP = smtp.dein-provider.de
smtp_port = 587
sendmail_from = noreply@deine-domain.de
```
**Option 2:** PHPMailer einbinden (optional)
- Download: https://github.com/PHPMailer/PHPMailer
- Anleitung in `functions.php` anpassen
## 🗂️ Datenbankstruktur
### coderlab_requests
Haupt-Tabelle für Code-Anfragen
- `id` - Primärschlüssel
- `name`, `email`, `titel`, `beschreibung`
- `code` - Code-Snippet (optional)
- `sprache` - Programmiersprache
- `datei_*` - Upload-Informationen
- `status` - pending, aktiv, in_bearbeitung, geloest, geschlossen
- `prioritaet` - niedrig, normal, hoch, kritisch
- `erstellt_am`, `verifiziert_am`, `aktualisiert_am`
### coderlab_auth_codes
Verifikations-Codes
- `id`, `request_id`, `auth_code`
- `verified`, `attempts`
- `created_at`, `expires_at`, `verified_at`
### coderlab_messages
Nachrichten zwischen User & Admin
- `id`, `request_id`
- `von_admin` (0=User, 1=Admin)
- `absender_name`, `nachricht`
- `code_snippet` (optional)
- `gesendet_am`
### coderlab_notifications
Email-Benachrichtigungs-Log
- `id`, `request_id`, `typ`
- `email_gesendet`, `gesendet_am`
## 🔒 Sicherheit
### Empfohlene Maßnahmen
**1. Admin-Panel schützen**
Erstelle `.htaccess` im Script-Verzeichnis:
```apache
<Files "admin.php">
AuthType Basic
AuthName "Admin-Bereich"
AuthUserFile /absoluter/pfad/.htpasswd
Require valid-user
</Files>
```
`.htpasswd` erstellen:
```bash
htpasswd -c .htpasswd admin
```
**2. Upload-Ordner schützen**
Wird automatisch erstellt, aber prüfe:
```apache
# uploads/.htaccess
Options -Indexes
Deny from all
```
**3. Config-Datei schützen**
```apache
# .htaccess
<Files "config.php">
Deny from all
</Files>
```
**4. Admin-Passwort ändern**
In `admin.php` Zeile 11 ändern!
**5. Email-Versand prüfen**
Teste nach Installation:
```php
mail('deine@email.de', 'Test', 'Test-Email');
```
## 🎨 Anpassung
### Design ändern
CSS ist direkt in den PHP-Dateien eingebettet:
- `index.php` - Formular-Design
- `verify.php` - Verifikations-Seite
- `view.php` - Anfrage-Ansicht
- `admin.php` - Admin-Panel
### Email-Templates anpassen
In `functions.php`:
- Funktion `sendVerificationEmail()` - User-Email
- Funktion `sendAdminNotification()` - Admin-Email
### Neue Status/Prioritäten
In `functions.php` und Datenbank-Schema anpassen:
```sql
ALTER TABLE coderlab_requests
MODIFY status ENUM('pending','aktiv','...');
```
## 🐛 Troubleshooting
### Problem: Email kommt nicht an
**Lösung:**
1. Prüfe Spam-Ordner
2. Teste `mail()` Funktion
3. Prüfe Server-Logs
4. Alternative: PHPMailer einbinden
### Problem: Upload funktioniert nicht
**Lösung:**
1. Prüfe `upload_max_filesize` in php.ini
2. Prüfe `post_max_size` in php.ini
3. Prüfe Schreibrechte auf `uploads/`
### Problem: SQL-Fehler bei Installation
**Lösung:**
1. Prüfe MySQL-Version (min. 5.7)
2. Prüfe Datenbank-Benutzer-Rechte
3. Prüfe Zeichensatz (utf8mb4)
### Problem: install.php löscht sich nicht
**Lösung:**
Lösche manuell per FTP/SSH:
```bash
rm install.php
```
## 📊 Statistiken
Das Script loggt automatisch:
- ✅ Anzahl Anfragen pro Status
- ✅ Email-Versand (Erfolg/Fehler)
- ✅ Verifikations-Versuche
Abrufbar über Admin-Panel (zukünftige Erweiterung).
## 🔄 Updates
1. Backup erstellen:
```bash
mysqldump -u user -p database > backup.sql
cp -r uploads/ uploads_backup/
```
2. Neue Dateien hochladen (außer config.php!)
3. SQL-Updates ausführen (falls vorhanden)
## 📝 Lizenz
Dieses Script ist **frei verwendbar** für private und kommerzielle Projekte.
**Bedingungen:**
- ✅ Kostenlos nutzen
- ✅ Anpassen und erweitern
- ✅ In eigene Projekte einbinden
- ✅ Weitergeben (auch modifiziert)
- ℹ️ Copyright-Hinweis darf entfernt werden
- ℹ️ Keine Garantie oder Haftung
## 💡 Support & Feedback
- **Bugs melden:** Issue auf GitHub erstellen
- **Feature-Wünsche:** Pull Request willkommen
- **Fragen:** admin@scripte-php.de
## 🎯 Changelog
### Version 1.0.0 (2026-02-08)
- ✨ Initial Release
- ✅ Komplette Funktionalität
- ✅ Auto-Installer
- ✅ Auth-Code System
- ✅ Admin-Panel
- ✅ Email-Benachrichtigungen
---
**Viel Erfolg mit deinem Coder-Lab!** 🚀