13 Einträge gefunden
Version 1.2.0 • PHP 7.4+ (getestet auf PHP 8.4) • MySQL • Bootstrap 5 Entwickelt von phppower 1. Systemanforderungen Eigenschaft Beschreibung PHP 7.4 oder höher (getestet auf PHP 8.4) MySQL/MariaDB 5.7 / 10.3 oder höher PDO + PDO_MySQL Pflicht GD Extension Pflicht (Bildverarbeitung + WebP) mbstring Pflicht (UTF-8 / Umlaute) Apache/Nginx mit mod_rewrite uploads/ Schreibrechte 755 oder 777 2. Installation Neue Installation Alle Dateien per FTP/SFTP hochladen, dann im Browser aufrufen: https://deine-domain.de/news-cms/install.php Der 4-Schritt-Wizard: • Schritt 1 — System-Check (PHP-Version, Extensions, Schreibrechte) • Schritt 2 — Datenbank-Einstellungen + SMTP-Mail (optional) • Schritt 3 — Admin-Account anlegen • Schritt 4 — Fertig: 17 Tabellen angelegt, Standard-Kategorien eingetragen ⚠ Nach der Installation: install.php löschen oder per .htaccess sperren! .htaccess — Unterordner Falls das CMS in einem Unterordner liegt (z.B. /news-cms/): RewriteBase /news-cms/ 3. Benutzer & Rollen Rolle Eigene Posts Fremde Posts Kommentare User verw. Einstellungen User ✗ ✗ ✗ ✗ ✗ Author ✓ Voll ✗ ✗ ✗ ✗ Moderator ✓ Voll ✓ Bearbeiten ✓ ✗ ✗ Admin ✓ Voll ✓ Alles ✓ ✓ ✓ Neue Accounts starten als inactive und müssen vom Admin freigeschaltet werden. Moderator/Admin-Rolle nur durch bestehenden Admin vergebbar. 4. Posts erstellen & verwalten Post-Typen Eigenschaft Beschreibung Article Standard-Textartikel mit Quill.js Rich-Text-Editor Gallery Bildergalerie — Bilder per Editor einfügen Video Video-Datei hochladen (MP4, WebM, max. 50 MB) Audio Audio-Datei hochladen (MP3, WAV, OGG) Kategorien / Tags / Keywords • Vorhandene Kategorien per Multi-Select auswählen (mehrere möglich) • Neue Kategorien im Freitext-Feld kommagetrennt eingeben • Neue werden automatisch angelegt, als Tags verknüpft und als SEO-Keywords gespeichert • Die meta keywords im <head> werden automatisch aus Kategorien befüllt Geplante Veröffentlichung Beim Erstellen/Bearbeiten eines Posts kann unter Status → Published ein optionales Datum+Uhrzeit gesetzt werden. Ohne Datumsangabe wird sofort veröffentlicht. Der Datum-Picker erscheint automatisch wenn Published gewählt wird. Lesezeit Auf jeder Post-Karte und der Detailseite wird die geschätzte Lesezeit automatisch berechnet und angezeigt (ca. 200 Wörter/Minute). Drucken / PDF Jeder Post hat einen Drucken-Button der eine saubere Druckansicht (print.php) in einem neuen Tab öffnet. Von dort kann auch direkt als PDF gespeichert werden. Navbar, Footer und Werbung werden ausgeblendet. Herz-Bewertung (Likes) Jeder Post hat einen Herz-Button (❤ ) auf der Detailseite. Besucher können ohne Login liken. Ein Cookie verhindert Mehrfach-Likes (1 Jahr gültig). Anzahl auch auf Post-Karten sichtbar. 5. Volltextsuche Die Suche ist über das Suchfeld im Header auf allen Seiten erreichbar. Sie durchsucht Titel, Content, Excerpt und Kategorienamen gleichzeitig. Suchergebnisse zeigen den Suchbegriff farbig markiert (highlight). URL: search.php?q=suchbegriff Eigenschaft Beschreibung Mindestlänge 2 Zeichen Durchsucht Titel, Content, Excerpt, Kategoriename Hervorhebung Suchbegriff wird in Ergebnissen farbig markiert Paginierung 10 Ergebnisse pro Seite Bild Featured Image wird in Ergebnisliste angezeigt 6. Autor-Profilseite Jeder Autor hat eine öffentliche Profilseite unter profile.php?user=USERNAME. Autor-Namen auf Post-Detailseiten sind direkt verlinkt. Eigenschaft Beschreibung URL profile.php?user=username Zeigt Avatar (Initiale), Rolle, Mitglied seit, Artikel-/Views-/Likes-Zähler Artikel-Grid Alle veröffentlichten Posts des Autors mit Paginierung (9 pro Seite) Statistik Gesamt-Views und Gesamt-Likes über alle Posts 7. Startseite — Aufbau Eigenschaft Beschreibung Header Logo + Suchfeld + Login/Logout + Dark-Mode. Automatisches Hintergrundbild von Picsum Photos. Navigation Dynamische Kategorien-Navbar Tag-Wolke Alle Kategorien farbig — Schriftgröße je nach Artikel-Häufigkeit Banner Zwei Werbeplätze 468×60 px nebeneinander (Admin → Banner) Post-Grid Artikel als Karten mit Bild, Kategorie, Lesezeit, Views, Kommentare, ❤Likes Paginierung Anzahl pro Seite in Einstellungen konfigurierbar Footer Newsletter-Widget, Links, Besucher-Statistik 8. Banner verwalten Admin → Banner (nur Admins). Zwei Werbeplätze auf der Startseite, jeweils 468×60 px. Eigenschaft Beschreibung Position top_left = linker Platz, top_right = rechter Platz Bild-URL Vollständige URL oder relativer Pfad in /uploads/ Ziel-URL Wohin der Klick führt (optional, öffnet in neuem Tab) Aktiv Ein/Aus — inaktive Banner werden durch Platzhalter ersetzt Sortierung Niedrigere Zahl = bevorzugt wenn mehrere aktiv 9. Newsletter — DSGVO Double-Opt-In Anmelde-Prozess • User trägt Email im Footer-Widget ein • System sendet Bestätigungs-Email mit Token (Double-Opt-In) • User klickt Link → newsletter-confirm.php → confirmed=1 • Erst jetzt ist der User im Verteiler Newsletter versenden Admin → Newsletter → Newsletter schreiben. Sendet NUR an confirmed=1 AND subscribed=1. Jede Email enthält automatisch einen Abmelde-Link. Kommentar-Benachrichtigung Wenn jemand auf einen Kommentar antwortet, erhält der ursprüngliche Kommentator automatisch eine Email mit dem Antwort-Text und einem direkten Link zurück zum Post. Voraussetzung: Email-Adresse beim Kommentieren angegeben. 10. Besucher-Statistik Im Footer jeder Seite werden Besucherzahlen angezeigt (automatisch getrackt): Eigenschaft Beschreibung Online (5 Min) Unique Besucher aktiv in den letzten 5 Minuten Heute Unique Besucher heute Diese Woche Unique Besucher letzte 7 Tage Dieser Monat Unique Besucher letzte 30 Tage IPs werden als MD5-Hash gespeichert (DSGVO-freundlich). Einträge älter als 3 Monate werden automatisch gelöscht. 11. 2-Faktor-Authentifizierung Nach erfolgreichem Login mit Username + Passwort wird automatisch ein 6-stelliger Code per Email gesendet. Der Login ist erst nach Eingabe des Codes abgeschlossen. Eigenschaft Beschreibung Code 6-stellige Zahl, zufällig generiert Gültigkeit 10 Minuten Einmalig Jeder Code kann nur einmal verwendet werden Neu anfordern Button auf der 2FA-Seite sendet neuen Code Auto-Submit Formular wird automatisch abgesendet bei 6 eingegebenen Ziffern Tabelle varient_two_factor_codes (wird automatisch bereinigt) 12. RSS-Feed, Sitemap & SEO RSS-Feed Eigenschaft Beschreibung Alle Artikel rss.php Kategorie rss.php?cat=slug Autodiscovery Im <head> jeder Seite automatisch eingetragen Inhalt Letzte 20 Posts mit Volltext, Bild, Kategorie, Autor Sitemap sitemap.php generiert automatisch eine XML-Sitemap mit allen veröffentlichten Posts und Kategorien. robots.php liefert die robots.txt mit dem Sitemap-Link. Kanonische URLs Jede Seite hat einen <link rel="canonical"> Tag der Duplicate-Content für Suchmaschinen verhindert. Meta Keywords Werden automatisch aus den Kategorien/Tags des Posts befüllt. Auf der Startseite aus den Top-10-Kategorien. 13. Bild-Mediathek Admin → Mediathek — zeigt alle hochgeladenen Dateien aus dem uploads/ Ordner. Eigenschaft Beschreibung Bilder JPG, JPEG, PNG, GIF, WEBP — mit Bildvorschau Videos MP4, WEBM, OGV, MOV — mit Typ-Icon Audio MP3, WAV, OGG, M4A — mit Typ-Icon Filter Typ-Filter (Alle / Bilder / Videos / Audio) + Dateiname-Suche URL kopieren Klick auf Karte oder Button kopiert URL in die Zwischenablage Löschen Nur Admins können Dateien löschen 14. Header-Bild & Logo Eigenschaft Beschreibung Logo Admin → Einstellungen → Logo URL Header-Bild Automatisch von Picsum Photos (thematisch je nach Seite) Startseite Keyword aus Einstellungen (unsplash_keyword) Post-Seite Keyword aus Post-Tags und Kategorie Andere Seiten Generisches Keyword (news, magazine, search, author etc.) Fallback Lila Farbverlauf bei Ladefehler 15. Einstellungen Admin → Einstellungen (nur Admins) Eigenschaft Beschreibung Site-Name Name der Website Tagline Kurzbeschreibung Posts pro Seite Anzahl auf Startseite/Kategorieseite Logo URL Vollständige URL zum Logo-Bild Header-Bild Modus unsplash = Picsum-Bild, none = kein Bild Unsplash Keyword Englische Keywords für Hintergrundbild Datenschutzerklärung Text für datenschutz.php Impressum Text für impressum.php 16. Datei-Struktur Datei Beschreibung index.php Startseite (Tag-Wolke, Banner, Post-Grid, Lesezeit) post.php Post-Detailseite (Herz, Drucken, Verwandte, Kommentare) search.php Volltextsuche mit Highlight print.php Druckansicht / PDF-Export profile.php Öffentliche Autor-Profilseite category.php Kategorie-Übersicht archiv.php Archiv nach Jahr/Monat sitemap.php XML-Sitemap (automatisch generiert) robots.php robots.txt (dynamisch mit Sitemap-URL) rss.php RSS-Feed (alle + Kategorie-Filter) update.php AJAX-Handler für Herz-Bewertung login.php Login-Formular login-2fa.php 2FA Code-Eingabe _header_public.php Gemeinsamer Header (Logo, Bild, Suche, Login, Meta) _navbar.php Kategorien-Navigation _footer.php Footer (Newsletter, Statistik, Links) includes/auth.php Authentifizierung, Rollen, 2FA-Logik includes/db.php PDO-Wrapper mit Tabellen-Präfix includes/functions.php Hilfsfunktionen (slug, readingTime, unsplashUrl...) includes/mail.php Email-Templates (Verification, Reset, 2FA, Newsletter) includes/stats.php Besucher-Tracking admin/dashboard.php Übersicht + Top 5 Views + Top 5 Likes admin/media.php Mediathek (Bilder, Videos, Audio) admin/posts/create.php Post erstellen (inkl. Datum-Picker) admin/posts/edit.php Post bearbeiten admin/banners.php Banner-Verwaltung admin/settings.php Site-Einstellungen 17. Datenbank-Schema Alle Tabellen nutzen den Präfix varient_. Gesamt: 17 Tabellen. Tabelle Inhalt varient_users User-Accounts, Rollen, Status, Email-Verifizierung varient_sessions Login-Sessions varient_password_resets Passwort-Reset-Tokens (1h gültig) varient_two_factor_codes 2FA-Codes (6-stellig, 10min gültig, einmalig) varient_categories Kategorien (= Tags = SEO-Keywords) varient_tags Tags (synchron mit Kategorien) varient_posts Posts (alle Typen), Views-Counter varient_post_tags Verknüpfung Posts ↔ Tags varient_post_meta Zusatz-Metadaten (media_url, media_type) varient_media Hochgeladene Videos/Audios varient_comments Kommentare mit Status (pending/approved/spam) varient_seo_meta SEO-Einstellungen + Keywords pro Post varient_newsletter Abonnenten mit DOI-Feldern varient_settings Site-Einstellungen (Key-Value-Store) varient_banners Werbebanner 468×60 varient_post_likes Herz-Bewertungen pro Post (Cookie-basiert) varient_visitor_stats Besucher-Tracking (IP-Hash, Session, Datum) 18. Sicherheit Eigenschaft Beschreibung CSRF-Schutz Token auf allen POST-Formularen XSS-Schutz e() = htmlspecialchars() auf allen Ausgaben SQL-Injection PDO Prepared Statements überall Passwort-Hashing bcrypt Cost-Faktor 12 2FA 6-stelliger Code per Email, 10min gültig, einmalig Upload-Schutz PHP-Ausführung in uploads/ per .htaccess gesperrt Rollen-Prüfung Jede Admin-Seite prüft Rolle und Eigentumsrecht Newsletter DSGVO Double-Opt-In, Abmelde-Link in jeder Email Besucher-Tracking Nur MD5-Hash der IP — kein Rückschluss möglich DEBUG_MODE In Produktion auf false — keine Fehler im Browser Produktions-Checkliste • DEBUG_MODE in config.php auf false setzen • install.php löschen oder per .htaccess sperren • HTTPS verwenden (SSL-Zertifikat) • Starkes Admin-Passwort (min. 12 Zeichen mit Sonderzeichen) • Regelmäßige Datenbank-Backups 19. Häufige Probleme & Lösungen 500-Fehler ohne Ausgabe / Weißer Screen DEBUG_MODE in config.php temporär auf true setzen. PHP-Fehlerlog des Hosters prüfen. Seite zeigt "Hat möglicherweise ein temporäres Problem" PHP Parse Error — kein Syntaxfehler-Output weil DEBUG_MODE=false. Fehlerlog prüfen oder test.php mit phpinfo() anlegen. Bilder nicht sichtbar SITE_URL in config.php prüfen — kein abschließender Slash. RewriteBase in .htaccess muss zum Ordner passen. Emails werden nicht gesendet SMTP-Einstellungen prüfen. Viele Hoster blockieren Standard PHP mail(). Spam-Ordner prüfen. Herz-Button reagiert nicht update.php muss im Root liegen. Cookie-Pfad muss mit dem CMS-Pfad übereinstimmen (SITE_URL). Tabelle varient_post_likes muss existieren. 2FA-Code kommt nicht an Mail-Konfiguration prüfen. Spam-Ordner prüfen. Code ist 10 Minuten gültig — bei Ablauf "Code erneut senden" klicken. Datum-Picker für geplante Veröffentlichung nicht sichtbar Status auf "Published" setzen — der Picker erscheint automatisch per JavaScript. Mediathek zeigt keine Videos/Audios admin/media.php muss aktuell sein (Version 1.2.0). Dateitypen: MP4, WEBM, MOV, MP3, WAV, OGG, M4A. Suche findet nichts Mindestens 2 Zeichen eingeben. Tabelle varient_posts muss status='published' Einträge haben. $ is not defined (JavaScript) jQuery fehlt. In create.php / edit.php muss jQuery vor Select2 geladen sein. 20. Changelog Version 1.2.0 — Neuerungen • Volltextsuche (search.php) — Titel, Content, Excerpt, Kategorie mit Highlight • Druckansicht / PDF-Export (print.php) — sauberes Layout ohne UI • Autor-Profilseite (profile.php) — öffentlich, mit Statistiken und Artikel-Grid • Geplante Veröffentlichung — Datum-Picker im Post-Erstellen/Bearbeiten • Lesezeit-Anzeige auf Post-Karten und Detailseite • Sitemap.xml automatisch generiert (sitemap.php) • robots.txt dynamisch mit Sitemap-URL (robots.php) • Kanonische URLs auf allen Seiten • Kommentar-Benachrichtigung per Email bei Antworten • Top-Posts im Dashboard (Top 5 Views + Top 5 Likes) • Mediathek zeigt Bilder, Videos und Audio mit Typ-Filter • Suchfeld direkt im Header auf allen Seiten Version 1.1.0 • Featured-Badge auf Post-Karten • Herz-Bewertungssystem (Cookie-basiert, AJAX) • Besucher-Statistik im Footer • Automatisches Header-Bild von Picsum Photos • Tag-Wolke mit dynamischer Schriftgröße • Banner-Verwaltung (2× 468×60 px) • Newsletter DSGVO Double-Opt-In • RSS-Feed mit Kategorie-Filter • 2-Faktor-Authentifizierung (6-stellig per Email) • PHP 8.4 Kompatibilität Version 1.0.0 — Initial Release • User-System mit 4 Rollen, Post-System mit 4 Typen • Quill.js Editor, Kategorien & Tags, Kommentar-Moderation • Dark Mode, SEO Meta, CSRF-Schutz, Passwort-Reset • 4-Schritt-Installations-Wizard, Bootstrap 5
Haupt-Features: - AJAX Live-Updates - Automatisch alle 10 Sekunden - Einfaches Captcha - Rechenaufgabe (z.B. 5 + 3 = ?) - Like-System - Likes mit Herz - Anonyme Posts - Name optional - 500 Zeichen Limit - IP-Tracking im Admin Admin-Features: - Passwort-Login (hash in config.php) - Statistiken (Messages, Likes, Datum) - Nachrichten löschen - IP-Anzeige - Dunkles Design Design: Farben Pink-Lila Gradient (#ec4899, #8b5cf6), Glassmorphism, Animations - SlideIn für neue Messages, Responsive AJAX-System: Keine Page-Reloads, Live-Updates alle 10 Sekunden, Smooth Animations Like-System: Increment per Click, Disable Button nach Like, Counter in Echtzeit
# 🌐 Advanced Web Proxy - Improved Version 2.0 ## 🎯 Was wurde verbessert? ### 1. **CSS Handling komplett überarbeitet** ✅ **Problem:** CSS wurde nicht korrekt geladen, Inline-Styles nicht umgeschrieben **Lösung:** - ✅ Externe CSS-Dateien werden über resource.php geladen - ✅ Inline `<style>` Tags werden durchsucht und URLs umgeschrieben - ✅ Inline `style=\"\"` Attribute werden durchsucht - ✅ `url()` in CSS wird korrekt umgeschrieben - ✅ `@import` wird korrekt umgeschrieben (mit und ohne url()) - ✅ Base-URL wird an resource.php übergeben für relative URLs in CSS ### 2. **Google Suche funktioniert besser** ✅ **Problem:** Google hat Probleme mit Proxies **Lösung:** - ✅ Bessere User-Agents (aktualisiert auf Chrome 131, Firefox 133) - ✅ Google-Suche mit `&hl=de` Parameter - ✅ Cookies werden gespeichert und wiederverwendet - ✅ Redirects werden korrekt gefolgt - ✅ DNT Header wird gesendet ### 3. **Cookie-Handling** ✅ **Neu:** Cookies werden jetzt gespeichert! - Session speichert Cookies zwischen Requests - Set-Cookie Headers werden ausgelesen - Cookies werden bei folgenden Requests mitgesendet - Wichtig für Login-Seiten und personalisierte Inhalte ### 4. **Besseres URL Rewriting** ✅ **Verbessert:** - ✅ `..` und `.` in URLs werden korrekt aufgelöst - ✅ Query-Parameter (`?`) und Anchors (`#`) funktionieren - ✅ HTML entities werden dekodiert (`&` → `&`) - ✅ srcset Attribute werden umgeschrieben (responsive images) - ✅ Alle Attribute-Varianten werden erkannt (mit/ohne Quotes) ### 5. **Resource-Proxy verbessert** ✅ **Neu in resource.php:** - ✅ Base-URL Parameter für CSS (`&base=...`) - ✅ Cache-Headers für bessere Performance - ✅ CORS-Headers (`Access-Control-Allow-Origin: *`) - ✅ Bessere Content-Type Detection - ✅ Font-Support (woff, woff2, ttf, otf, eot) - ✅ SVG-Support - ✅ JSON-Support - ✅ Längere Cache-Zeiten (Fonts 30 Tage, Bilder 7 Tage) ### 6. **Inline-Style Rewriting** 🆕 **Komplett neu:** ```html <!-- Vorher: Nicht umgeschrieben --> <div style=\"background: url('image.jpg')\"> <!-- Nachher: Korrekt umgeschrieben --> <div style=\"background: url('resource.php?url=...')\"> ``` ### 7. **Redirect-Support** ✅ **Neu:** - Folgt automatisch Redirects (max 5) - Nutzt finale URL für Rewriting - Wichtig für Kurz-URLs und Weiterleitungen ### 8. **Bessere Quick Links** ✅ **Geändert:** - Wikipedia (funktioniert perfekt) - DuckDuckGo Lite (schnell, proxy-freundlich) - NPR Text (text-only, funktioniert immer) - Entfernt: Reddit (zu JavaScript-heavy) --- ## 🚀 Neue Features ### CSS mit Base-URL ```php // resource.php wird mit base-URL aufgerufen resource.php?url=https://example.com/style.css&type=css&base=https://example.com/page.html // CSS darin: background: url('../images/bg.jpg') // Wird korrekt zu: background: url('resource.php?url=https://example.com/images/bg.jpg') ``` ### Inline-Style Handling ```php // Alle Style-Varianten werden verarbeitet: <div style=\"background: url(bg.jpg)\"> ✅ <div style='background: url(\"bg.jpg\")'> ✅ <style>body { background: url(bg.jpg) }</style> ✅ ``` ### Cookie-Sessions ```php // Cookies werden automatisch gespeichert $_SESSION['cookies'] = [ 'session_id' => 'abc123', 'preferences' => 'theme=dark' ]; // Und bei nächstem Request mitgesendet ``` --- ## 📋 Technische Details ### HTML Rewriting - ✅ `<a href>` - Links über Proxy - ✅ `<img src>` + `srcset` - Bilder über resource.php - ✅ `<link href>` - CSS über resource.php mit base-URL - ✅ `<script src>` - NICHT proxied (macht Probleme) - ✅ `<form action>` - Forms über Proxy - ✅ `<iframe src>` - iframes über Proxy mit sandbox - ✅ `<meta http-equiv=\"refresh\">` - Redirects über Proxy - ✅ `<base>` - wird entfernt (macht nur Probleme) - ✅ `style=\"\"` - Inline-styles durchsuchen - ✅ `<style>` - Inline CSS-Blocks durchsuchen ### CSS Rewriting - ✅ `url(...)` - alle Varianten - ✅ `url(\"...\")` - mit Quotes - ✅ `url('...')` - mit Single-Quotes - ✅ `@import \"...\"` - externe Stylesheets - ✅ `@import url(...)` - alternative Syntax ### Bessere Regex - Attribute mit und ohne Quotes - HTML entities werden dekodiert - Whitespace-tolerant - Case-insensitive --- ## ⚠️ Bekannte Einschränkungen ### Was funktioniert NICHT gut: 1. **JavaScript-heavy Seiten** - SPAs (Single Page Apps) - React/Vue/Angular Sites - AJAX-heavy Seiten - Grund: JavaScript wird nicht umgeschrieben 2. **Login-Seiten** - Manche funktionieren (mit Cookies) - Viele haben CSRF-Protection - OAuth funktioniert nicht 3. **Cloudflare-geschützte Seiten** - Bot-Detection erkennt Proxies - JavaScript-Challenges funktionieren nicht 4. **WebSockets** - Echtzeit-Features funktionieren nicht - Chat-Apps, Live-Updates etc. 5. **Google** - Funktioniert eingeschränkt - reCAPTCHA kann erscheinen - Besser: DuckDuckGo verwenden ### Was funktioniert GUT: ✅ Wikipedia (perfekt!) ✅ News-Seiten (meist gut) ✅ Blogs und Text-Seiten ✅ Einfache Such-Engines ✅ DuckDuckGo Lite ✅ Text-only Seiten --- ## 🔧 Installation 1. Dateien hochladen: - `index.php` - `resource.php` 2. PHP Voraussetzungen: - PHP 7.4+ - cURL Extension - Session Support 3. Server-Konfiguration: - `allow_url_fopen = On` - `session.auto_start = Off` 4. Aufrufen: ``` https://deine-domain.de/proxy/ ``` --- ## 💡 Performance-Tipps ### Cache nutzen resource.php sendet Cache-Headers: - CSS/JS: 24 Stunden - Bilder: 7 Tage - Fonts: 30 Tage Browser-Cache reduziert Server-Last erheblich! ### Timeout anpassen In index.php: ```php curl_setopt($ch, CURLOPT_TIMEOUT, 25); // Bei langsamen Seiten erhöhen ``` ### Session-Cleanup Alte Sessions regelmäßig löschen: ```php // In index.php am Anfang if(rand(1, 100) == 1) { session_gc(); } ``` --- ## 🐛 Debugging ### CSS lädt nicht? 1. Browser DevTools → Network Tab öffnen 2. Nach `resource.php` suchen 3. HTTP Status prüfen (sollte 200 sein) 4. Response prüfen (sollte CSS sein) ### Bilder fehlen? 1. Rechtsklick auf Bild → \"Grafik-Adresse kopieren\" 2. Im Browser öffnen 3. Fehler lesen ### Seite sieht falsch aus? 1. Rechtsklick → \"Seitenquelltext anzeigen\" 2. Nach `resource.php` suchen 3. Prüfen ob URLs umgeschrieben wurden ### Google funktioniert nicht? → Nutze DuckDuckGo! Google ist sehr Proxy-feindlich. --- ## 🎨 Anpassungen ### Design ändern In index.php im `<style>` Block: ```css .toolbar{background:linear-gradient(135deg,#1e293b,#334155)} /* Ändere Farben nach Wunsch */ ``` ### Mehr Quick-Links ```php <a href=\"?url=https://example.com\" class=\"quick-link\">📌 Example</a> ``` ### Timeout erhöhen ```php curl_setopt($ch, CURLOPT_TIMEOUT, 60); // 60 Sekunden ``` --- ## 📊 Vergleich Alt vs Neu | Feature | v1.0 | v2.0 | |---------|------|------| | Externe CSS | ❌ | ✅ | | Inline CSS | ❌ | ✅ | | Style-Attribute | ❌ | ✅ | | @import | ⚠️ | ✅ | | Cookies | ❌ | ✅ | | Redirects | ⚠️ | ✅ | | srcset | ❌ | ✅ | | Base-URL in CSS | ❌ | ✅ | | Cache-Headers | ❌ | ✅ | | CORS-Headers | ❌ | ✅ | | HTML entities | ❌ | ✅ | | Google-Support | ❌ | ⚠️ | --- ## 🔒 Sicherheit ### Was der Proxy macht: - ✅ Verschleiert deine IP - ✅ Rotiert User-Agent - ✅ Sendet DNT Header - ✅ Keine Logs (bei dir) ### Was der Proxy NICHT macht: - ❌ Kein HTTPS zwischen dir und Proxy (nutze HTTPS!) - ❌ Keine Anonymisierung gegenüber Server-Admin - ❌ Kein Schutz vor JavaScript-Tracking - ❌ Kein VPN-Ersatz --- **Version:** 2.0 Improved **Datum:** Januar 2026 **Status:** Production Ready ✅
🚀 SEO-KI Portal - Automatische SEO-Optimierung 📋 Projektbeschreibung **SEO-KI Portal** ist eine webbasierte SaaS-Anwendung, die Website-Betreibern hilft, optimierte SEO-Metadaten zu generieren. Nutzer geben einfach ein Fachwort oder Thema ein, und das System generiert automatisch: - 📝 **SEO-optimierte Titel** (Title Tags) - 📄 **Meta-Beschreibungen** (Meta Descriptions) - 🔑 **Relevante Keywords** (Meta Keywords) Die generierten Daten werden dauerhaft gespeichert und sind jederzeit über den Kundenbereich abrufbar. 💡 Hauptfunktionen Für Endkunden: - ✅ **Kostenlose Registrierung** mit E-Mail-Bestätigung - ✅ **2-Faktor-Authentifizierung** per E-Mail (6-stelliger Code) - ✅ **1 Domain kostenlos** - jede weitere Domain für **0,99 €** - ✅ **SEO-Generator**: Fachwort eingeben → KI generiert Titel, Meta-Description, Keywords - ✅ **Domain-Verwaltung**: Mehrere Domains anlegen und verwalten - ✅ **Projekt-Historie**: Alle generierten SEO-Daten dauerhaft gespeichert - ✅ **Dashboard**: Übersicht über alle Domains und SEO-Projekte - ✅ **PayPal-Integration** für zusätzliche Domains Für Admins: - ✅ **2FA-geschützter Admin-Bereich** - ✅ **Benutzer-Verwaltung**: Alle registrierten User einsehen - ✅ **Domain-Übersicht**: Wer hat wie viele Domains? - ✅ **Zahlungs-Tracking**: PayPal-Transaktionen nachverfolgen - ✅ **Statistiken**: Gesamt-User, Domains, Umsatz - ✅ **User sperren/aktivieren** 🎨 Design-Konzept Farbschema (Blau-Töne): - **Primär**: `0066CC` (Professionelles Blau) - **Sekundär**: `004099` (Dunkelblau) - **Akzent**: `33AAFF` (Hellblau) - **Hintergrund**: Gradient mit SEO-Grafiken (Suchmaschinen-Icons, Keyword-Wolken) Design-Elemente: - 🎯 Modernes Glassmorphism-Design - 🌊 Sanfte Farbverläufe (Gradients) - 💎 Abgerundete Kanten, Schatten-Effekte - 📱 Vollständig responsive (Desktop, Tablet, Mobile) - 🖼️ **Kostenloser Header-Hintergrund**: SEO-Illustration mit Suchmaschinen-Symbolen Header-Hintergrund (Kostenlos): - Quelle: Unsplash/Pixabay oder Eigenerstellung - Motiv: Abstraktes SEO-Design mit Suchbalken, Keywords, Rankings - Format: SVG-Gradient oder hochauflösendes PNG ⚙️ Technische Architektur Frontend: - **HTML5** + **CSS3** (Responsive Design) - **JavaScript** (Vanilla JS oder jQuery) - **AJAX** für SEO-Generierung ohne Reload Backend: - **PHP 8.x** mit PDO (MySQL-Datenbank) - **Sessions** für Login-Verwaltung - **CSRF-Protection** für alle Formulare - **Password Hashing** mit `password_hash()` Weitere Sicherheit: - ✅ CSRF-Tokens bei allen POST-Requests - ✅ Prepared Statements (SQL-Injection-Schutz) - ✅ XSS-Schutz durch `htmlspecialchars()` - ✅ E-Mail-Verifizierung bei Registrierung - ✅ Rate-Limiting für Login-Versuche (optional) 🤖 SEO-Generator Funktionsweise Input: php Fachwort/Thema: \"Künstliche Intelligenz\" KI-Logik (vereinfacht): Das System nutzt **eine der folgenden Methoden**: Option 1: Vorprogrammierte Regeln php - Titel: \"[Fachwort] - [Branche] | [Domain-Name]\" - Meta-Desc: \"Alles über [Fachwort]. Professionelle Beratung...\" - Keywords: \"[Fachwort], [Synonym1], [Synonym2], ...\" Option 2: Google Suggest API php - Abrufen von Google Autocomplete-Vorschlägen - Parsen der relevantesten Suchbegriffe - Generierung basierend auf echten Suchtrends Output: json { \"title\": \"Künstliche Intelligenz - Innovation & Zukunft | IhreDomain.de\", \"meta_description\": \"Entdecken Sie die neuesten Entwicklungen in der Künstlichen Intelligenz. Expertenwissen, Trends und praktische Anwendungen für Ihr Unternehmen.\", \"keywords\": \"Künstliche Intelligenz, KI, Machine Learning, AI, Deep Learning, Automatisierung\" } 💰 Geschäftsmodell Freemium-Ansatz: - **Kostenlos**: 1 Domain + unbegrenzte SEO-Generierungen - **Premium**: Jede weitere Domain = **0,99 €** (einmalig) Zahlungsabwicklung: - **PayPal** (einfach integrierbar, keine Vertragsbindung) - **Alternative**: Stripe (optional für Kreditkarten) Umsatzpotenzial: 100 User × 2 zusätzliche Domains × 0,99 € = 198 €/Monat 1.000 User × 3 zusätzliche Domains × 0,99 € = 2.970 €/Monat 🚀 Installation Schritt 1: Dateien hochladen Alle Dateien per FTP auf den Webspace laden. Schritt 2: Installation ausführen https://deine-domain.de/install.php Das Script erstellt automatisch: - Alle Datenbank-Tabellen - Admin-Account (wird angezeigt) - Beispiel-Daten (optional) 🎯 Workflow (Typischer Nutzer) 1. **Registrierung**: - User gibt E-Mail + Passwort ein - Erhält Bestätigungs-E-Mail mit Link - Klickt Link → Account aktiviert 2. **Login (2FA)**: - E-Mail + Passwort eingeben - 6-stelligen Code aus E-Mail eingeben - Zugriff auf Dashboard 3. **Erste Domain anlegen**: - \"Domain hinzufügen\" klicken - Domain-Name eingeben (z.B. \"meinefirma.de\") - Kostenlos gespeichert 4. **SEO generieren**: - Domain auswählen - Fachwort eingeben (z.B. \"Webdesign\") - Auf \"Generieren\" klicken - Titel, Meta-Desc, Keywords werden angezeigt - \"Speichern\" → Dauerhaft in Projekt-Historie 5. **Weitere Domains**: - \"Weitere Domain\" → PayPal-Zahlung (0,99 €) - Nach Zahlungsbestätigung Domain verfügbar 📊 Admin-Funktionen User-Übersicht: ID | Username | E-Mail | Domains | Registriert | Status 1 | max123 | max@.. | 3 | 15.01.2026 | ✅ Aktiv 2 | lisa99 | lisa@..| 1 | 16.01.2026 | ⏸️ Gesperrt Zahlungs-Log: ID | User | Betrag | PayPal TXN-ID | Datum | Status 1 | max123 | 0,99 € | PAYID-ABC123 | 15.01.2026 | ✅ Paid 2 | lisa99 | 1,98 € | PAYID-XYZ456 | 16.01.2026 | ⏳ Pending Statistiken: - 📊 Gesamt-User: 1.247 - 🌐 Gesamt-Domains: 3.891 - 💰 Gesamt-Umsatz: 2.644,09 € - 📈 Neue User (7 Tage): 89 🔮 mögliche Zukünftige Features (Optional) - 🌍 **Mehrsprachigkeit** (Deutsch, Englisch) - 📈 **SEO-Score-Analyse** (0-100 Punkte) - 🤖 **Echte KI-Integration** (OpenAI GPT-4) - 📊 **Keyword-Ranking-Tracker** (Google-Position überwachen) - 🎨 **Custom Branding** (User können Logo hochladen) - 📱 **Mobile App** (iOS/Android) - 💳 **Abo-Modell** (5 €/Monat für unbegrenzte Domains) 🛡️ DSGVO-Konformität Rechtliche Seiten: - ✅ **Datenschutzerklärung** (DSGVO-konform) - ✅ **Impressum** (Anbieterkennzeichnung) - ✅ **AGB** (Nutzungsbedingungen) - ✅ **Widerrufsbelehrung** (für digitale Käufe) Datenschutz: - ✅ SSL-Verschlüsselung (HTTPS) - ✅ Passwörter gehasht (nie im Klartext) - ✅ Opt-in für Newsletter (falls vorhanden) - ✅ Recht auf Löschung (DSGVO Art. 17) 👨💻 Entwickler-Notizen Verwendete Technologien: - PHP 8.x - MySQL 8.x - PayPal REST API v2 - JavaScript (ES6+) - CSS3 (Flexbox, Grid) Code-Qualität: - ✅ PSR-12 Coding Standard - ✅ Prepared Statements (SQL) - ✅ Input-Validierung - ✅ Error-Handling (try-catch) - ✅ Kommentare im Code Testing: - ✅ Lokale Entwicklung (XAMPP/MAMP) - ✅ Staging-Server (Testumgebung) - ✅ PayPal Sandbox (Test-Zahlungen) - ✅ Browser-Kompatibilität (Chrome, Firefox, Safari, Edge) 📄 Lizenz **Proprietär** - Dieses Projekt ist urheberrechtlich geschützt. Entwickelt für: admin@scripte-php.de / https://scripte-php.de **Version**: 1.0.0 **Letztes Update**: 18. Januar 2026 **Entwickler**: phppower 🎉 Besonderheiten dieses Projekts 1. **Einzigartig**: Kein vergleichbares Tool auf dem Markt (einfacher als subseo.de) 2. **Monetarisierung**: Direkter Umsatz ab dem ersten User 3. **Skalierbar**: Kann auf tausende User ausgelegt werden 4. **Low-Maintenance**: Automatisierte Prozesse (PayPal, E-Mails) 5. **SEO-Fokus**: Spezialisiert auf eine klare Zielgruppe
🎬 Multi-Platform Video Downloader 📋 Überblick Moderner Video-Downloader für Instagram, TikTok, YouTube, Facebook, Twitter/X, Vimeo und mehr! **Features:** - 🎬 **Multi-Platform:** Instagram, TikTok, YouTube, Facebook, Twitter, Vimeo - 🚀 **Schnell & Einfach:** URL einfügen, downloaden, fertig - 🎨 **Modernes Design:** Gradient-Logo, responsive, dark theme - 📱 **Mobile-optimiert:** Funktioniert auf allen Geräten - 🔒 **Privat:** Keine Registrierung, keine Speicherung - 💯 **Kostenlos:** Unbegrenzte Downloads ✨ Features im Detail Unterstützte Plattformen: **Instagram** 📸 - Reels herunterladen - Stories herunterladen - IGTV Videos - Posts mit Videos **TikTok** 🎵 - Videos ohne Wasserzeichen - HD Qualität - Mit Audio **YouTube** 🎥 - Videos in verschiedenen Qualitäten - Audio separat (MP3) - Unterstützung für Shorts **Facebook** 📘 - Videos von Posts - Reels - Stories **Twitter/X** 🐦 - Video-Tweets - GIFs **Vimeo** 📹 - HD Videos - 4K wenn verfügbar 💻 Technische Details Dateien: - **index.php** - Hauptseite mit Logo & UI - **download.php** - Backend mit API-Integration - **style.css** - Modernes Gradient-Design - **impressum.php** - Impressum - **datenschutz.php** - Datenschutzerklärung Logo: svg Gradient-Download-Icon (Pink → Lila) - SVG-basiert - Skalierbar - Eingebettet in HTML 🚀 Installation Variante A: Ohne APIs (Basic) 1. **Dateien hochladen** 2. **Fertig!** ⚠️ **Hinweis:** Ohne APIs funktionieren nur begrenzte Plattformen. Für volle Funktionalität APIs einbinden. Variante B: Mit APIs (Empfohlen) 1. **RapidAPI Account erstellen:** - Gehe zu https://rapidapi.com - Kostenlos registrieren 2. **APIs abonnieren:** - **Instagram Downloader:** https://rapidapi.com/hub/instagram - **TikTok Downloader:** https://rapidapi.com/hub/tiktok - **Facebook Downloader:** https://rapidapi.com/hub/facebook 3. **API-Keys eintragen:** Öffne `download.php` und ersetze `YOUR_RAPIDAPI_KEY` mit deinem echten Key: php 'X-RapidAPI-Key: dein-echter-api-key-hier' **Suche nach:** `YOUR_RAPIDAPI_KEY` (3x im Code) 4. **YouTube mit yt-dlp (Optional, empfohlen):** bash Auf Server installieren: pip3 install yt-dlp Oder via apt: apt install yt-dlp Dann funktioniert YouTube-Download automatisch! 📖 Benutzung Als Besucher: 1. **Video finden** auf Instagram, TikTok, YouTube etc. 2. **Link kopieren** (Teilen → Link kopieren) 3. **DownVid öffnen** 4. **URL einfügen** in das Eingabefeld 5. **Download klicken** 6. **Video speichern** Beispiel-URLs: Instagram: https://www.instagram.com/p/ABCD123/ TikTok: https://www.tiktok.com/@user/video/123456789 YouTube: https://www.youtube.com/watch?v=dQw4w9WgXcQ Facebook: https://www.facebook.com/watch/?v=123456789 🔧 Konfiguration API-Keys eintragen: **In download.php:** php // INSTAGRAM (Zeile ~54) 'X-RapidAPI-Key: DEIN_KEY_HIER', // TIKTOK (Zeile ~80) 'X-RapidAPI-Key: DEIN_KEY_HIER', // FACEBOOK (Zeile ~145) 'X-RapidAPI-Key: DEIN_KEY_HIER', yt-dlp Pfad anpassen (falls nötig): php // Zeile ~110 in download.php $command = \"/usr/bin/yt-dlp -j --no-warnings \" . escapeshellarg($url); 🎨 Design-Anpassung Farben ändern: **In style.css:** css :root { --primary: ff006e; /* Pink */ --secondary: 8338ec; /* Lila */ --gradient: linear-gradient(135deg, var(--primary), var(--secondary)); } Logo-Farben: **In index.php (SVG):** html <stop offset=\"0%\" style=\"stop-color:ff006e\" /> <!-- Start --> <stop offset=\"100%\" style=\"stop-color:8338ec\" /> <!-- Ende --> 🐛 Troubleshooting Problem: \"Plattform nicht unterstützt\" **Lösung:** - URL korrekt? (mit https://) - Plattform wirklich unterstützt? - API-Key eingetragen? Problem: \"Download fehlgeschlagen\" **Lösung:** 1. **API-Key prüfen** (richtig eingetragen?) 2. **API-Limit erreicht?** (RapidAPI Dashboard checken) 3. **Video privat?** (nicht downloadbar) 4. **cURL aktiviert?** bash php -m | grep curl Problem: YouTube funktioniert nicht **Lösung:** 1. **yt-dlp installiert?** bash yt-dlp --version 2. **shell_exec erlaubt?** php <?php echo shell_exec('whoami'); ?> 3. **Alternative:** YouTube-API nutzen Problem: Keine Videos angezeigt **Lösung:** - Browser-Konsole öffnen (F12) - Network-Tab checken - Fehler in download.php? - PHP Error-Log prüfen 🔒 Sicherheit Implementiert: - ✅ **Input-Validierung** (URL-Check) - ✅ **HTTPS empfohlen** - ✅ **Kein Datenspeichern** - ✅ **Keine Cookies** - ✅ **escapeshellarg()** bei shell_exec Empfehlungen: 1. **HTTPS nutzen** (Let's Encrypt) 2. **Rate-Limiting** implementieren 3. **IP-Blocking** bei Missbrauch 4. **API-Keys geheim halten** 📊 API-Kosten RapidAPI Pricing (Stand 2026): **Free Plan:** - 100-500 Requests/Monat - Kostenlos - Für Tests **Basic Plan:** - ~$5-10/Monat - 10.000 Requests - Für kleine Sites **Pro Plan:** - ~$20-50/Monat - 100.000+ Requests - Für größere Sites **Tipp:** Mit mehreren Free-APIs kombinieren für mehr Requests! 💡 Tipps & Tricks Performance: 1. **Caching:** Bereits heruntergeladene Videos cachen 2. **CDN:** Statische Dateien über CDN 3. **Kompression:** gzip aktivieren Monetarisierung: 1. **Werbung:** Google AdSense 2. **Affiliate:** Amazon, eBay 3. **Donations:** PayPal, Patreon 4. **Premium:** Schnellerer Download, mehr Plattformen SEO: html <!-- In index.php einfügen: --> <meta name=\"description\" content=\"Videos von Instagram, TikTok, YouTube kostenlos herunterladen\"> <meta name=\"keywords\" content=\"video download, instagram download, tiktok download\"> 🚀 Erweitungen (Zukünftig) **Mögliche Features:** - [ ] Batch-Download (mehrere URLs) - [ ] Playlist-Download (YouTube) - [ ] Audio-only Download - [ ] Format-Auswahl (MP4, AVI, etc.) - [ ] Qualitäts-Auswahl (720p, 1080p, 4K) - [ ] Thumbnail-Download - [ ] Video-Vorschau - [ ] Browser-Extension - [ ] API für Entwickler - [ ] Mobile App 📱 Mobile Optimierung **Bereits implementiert:** - ✅ Responsive Design - ✅ Touch-optimierte Buttons - ✅ Mobile Navigation - ✅ Schnelle Ladezeit **PWA (Progressive Web App):** Manifest.json hinzufügen: json { \"name\": \"DownVid\", \"short_name\": \"DownVid\", \"start_url\": \"/\", \"display\": \"standalone\", \"background_color\": \"0f0f1e\", \"theme_color\": \"ff006e\" } 🌍 Mehrsprachigkeit **Sprachen hinzufügen:** 1. Neues PHP-File: `lang/de.php`, `lang/en.php` 2. Translations-Array: php $lang = [ 'title' => 'DownVid - Video Downloader', 'input_placeholder' => 'Video-URL hier einfügen...' ]; 3. In Seiten einbinden 📞 Support **Bei Problemen:** 1. README durchlesen 2. Troubleshooting checken 3. API-Dokumentation lesen 4. Server-Logs prüfen 📄 Rechtliches Wichtig: ⚠️ **Urheberrecht beachten!** - Nur eigene Videos oder mit Erlaubnis - Nicht für kommerzielle Zwecke ohne Lizenz - Fair-Use Regeln beachten - Platform-Richtlinien einhalten Disclaimer: DownVid ist ein Tool zum persönlichen Gebrauch. Nutzer sind selbst verantwortlich für die Einhaltung von Urheberrechten und Plattform-Richtlinien. 🎯 Best Practices User Experience: 1. **Klare Anweisungen** (4-Schritte-Guide) 2. **Fehlerbehandlung** (verständliche Meldungen) 3. **Loading-Indicator** (User weiß: es passiert was) 4. **Erfolgs-Feedback** (Thumbnail + Download-Button) Code Quality: 1. **Kommentare** (auch für andere verständlich) 2. **Error-Handling** (try-catch überall) 3. **Security** (Input validieren) 4. **Performance** (APIs cachen) 📈 Analytics (Optional) **Google Analytics einbinden:** html <!-- In index.php vor </head> --> <script async src=\"https://www.googletagmanager.com/gtag/js?id=GA_TRACKING_ID\"></script> **Tracking Events:** - Video-Download gestartet - Platform ausgewählt - Download erfolgreich - Download fehlgeschlagen 🎨 Logo-Varianten SVG (eingebettet): - ✅ Skalierbar - ✅ Kleine Dateigröße - ✅ CSS-animierbar Als PNG exportieren: html <!-- Rechtsklick auf SVG im Browser → \"Als Bild speichern\" --> Größen: 512x512, 256x256, 128x128, 64x64 Favicon erstellen: html <link rel=\"icon\" type=\"image/svg+xml\" href=\"logo.svg\"> 📝 Changelog Version 2.0 (Aktuell) **Features:** - ✅ Komplett neu in PHP 8.4 - ✅ Modernes Gradient-Design - ✅ SVG-Logo eingebettet - ✅ 6 Plattformen unterstützt - ✅ API-Integration - ✅ Mobile-optimiert - ✅ DSGVO-konform **Technisch:** - ✅ PHP 8.4 kompatibel - ✅ Responsive CSS - ✅ AJAX ohne jQuery - ✅ Modular aufgebaut 🏆 Credits **Design inspiriert von:** - Savefrom.net - Y2Mate - SnapTik **APIs powered by:** - RapidAPI - yt-dlp 📄 Lizenz Proprietär - Alle Rechte vorbehalten 🎉 Viel Erfolg mit DownVid! **Version:** 2.0 **Stand:** Januar 2026 **Sprache:** Deutsch 🇩🇪 **PRODUKTIONSBEREIT!** 🚀 🆘 Quick-Start bash 1. Dateien hochladen 2. Browser öffnen: https://deine-domain.de 3. URL einfügen 4. Download! MIT APIs: 1. RapidAPI Key holen 2. In download.php eintragen 3. Profit! 💰 **Ohne APIs:** Begrenzte Funktionalität **Mit APIs:** Volle Power! 🔥
Das Filehoster-Prinzip ist eine Online-Dienstleistung, bei der Nutzer Dateien auf einem zentralen Server des Anbieters hochladen und über einen individuellen Link oder ähnliches Verfahren mit anderen teilen oder auch für ausschließlich private Nutzung nutzen können. Mit diesem Ajax File Hoster können Sie sich ein zweites Standbein aufbauen. In der Version 1 gibt es bereits viele nützliche Funktionen die ausgebaut und getestet sind bis php 8.4. Zum betreiben sollten Sie über ausreichenden Speicherplatz verfügen. Desweiteren sollte Ihr Server über alle gängigen Uploadfunktionen, Web oder Server Mailfunktionen verfügen. Die zusätzliche Shopfunktion die User nutzen können, beinhaltet die Zahlung des Produktes direkt an den Shop Premium Nutzer, dies sollte beim Datenschutz und den AGB berücksichtigt werden um Rechtssicherheit zu haben. Sowohl Premium und Shop Premium Buchung sowie auch der Verkauf der Shop User, verfügt jeweils über eine eigene Paypal IPN Funktion. Die entsprechenden Dateien werden in der Installationsbeschreibung genau gelistet. Shop User können Ihre Produkte auch selbst löschen Funktionen im Überblick User-Funktionen: Registrierung mit Email Adressen Bestätigung 2 Faktor Identifikation beim Login durch Mail an User der einen 6 stelligen Code eingeben muß um das Login zu vollenden es gibt 4 Premiumfunktionen, Standart User bekommen bei Registrierung automatisch 1 GB Speicherplatz zugewiesen (kostenlose Mitgliedschaft), Premium User Stufe 1/2 kann höheren Speicher kaufen jenach Preis und Speicherplatz den der Admin vorgibt und es gibt ein Shop Premium ebenfalls kostenpflichtig alles wird automatisch über Paypal abgewickelt, wobei Shop Besitzer über ein Paypal Geschäftskonto verfügen müssen. Standard User 1 GB Speicher, Single Upload für Dokumente (pdf, word usw.), Archive upload (zip und rar), Upload für Images, Ansicht aller eigenen Uploads getrennt in Dokumente, Archive und Images, dort besteht die Möglichkeit seinen uploads noch Namen zugeben, Löschantrag stellen (geht an den Admin der dann den Auftrag ausführt). Standard User können unabhängig vom Premium Status den Shop Status erwerben und digitale Produkte verkaufen. Standard User Bereich enthält Werbung Premium User 1 kann durch upgrade erworben werden was (monatliche Kosten die der Admin bestimmt sowie Speicherplatz) dafür bekommt der Premium User Zugang zum Multi Upload (auch als Einzel upload nutzbar), Support Ticket Modul und Partner Link Modul und Nutzen natürlich auch alle anderen Möglichkeiten vom Standard User und auch die Möglichkeit einen Shop zu buchen. User kann seinen upload ein Passwort zuordnen und auch wählen ob es öffentlich gedownloaded werden darf Premium User 2 hat alle Funktionen von Standard und Premium 1 plus höheren Speicher und Zugang zum Banner Modul wo dieser Bannerwerbung schalten kann, die bei Standard Usern eingeblendet werden. Und natürlich kann Premium 2 User auch die Shopfunktion buchen Besucher können für öffentliche Downloads Kommentare abgeben und bewerten, die Produkte der User direkt per Paypal kaufen und anschließend downloaden ohne Registrierung Zudem werden dem Besucher durch AGB, Datenschutz, Statistiken und Impressum ausreichende Informationen geboten. Auch die Blogfunktion kann ein reichhaltiges Angebot an Informationen durch den Betreiber verfügen. Gespeicherte Informationen (activitie logs) werden alle 180 Tage gelöscht (kann vom Admin aber auch verkürzt werden. (es wird nur die IP Adresse des Besuchers, Nutzers gespeichert) Alle User können Ihren eigenen Fortschritt sehen wieviel Speicherplatz bereits verbraucht ist Adminbereich-Funktionen Eigenes Login System (2 Faktor Identifikation kann nachgerüstet werden auf Wunsch) Einstellungen vornehmen wie Preise für upgrade Premium 1 und 2 mit Speicherplatz Zuweisung, Shop Preis kann festgelegt werden, Logo hochladen, Meta Informationen eintragen HomePage Url festlegen, eigene Paypal Email eintragen, Gesamtspeicher festlegen für seinen Server Passwort ändern Inder Dashboard Übersicht den Userspeicher aktualisieren, Jahresbereinigung der Standard User und Activity Logs auch einsehen, bereinigen wobei bei allen 3 Dateien die Möglichkeit besteht diese auch per Cronjob auszuführen, Dashboard zeigt auch Statistiken an Kann seine Blogfunktion nutzen um User, Besucher über Neuigkeiten zu informieren User verwalten Dokumente, Bilder Archive verwalten und komplett zu löschen Shop Produkte freischalten, sperren oder komplett löschen Löschanfragen Archive, Dokumente und Images mit einem klick komplett löschbar Support Tickets falls gewählt öffentlich freizuschalten und beantworten aus dem Adminbereich heraus Kommentare löschen Seiten wie Impressum, AGB und Datenschutz bearbeiten und verwalten Partner Links freigeben, sperren, löschen Banner anlegen, Banner von Premium User löschen Installationsroutine und Anleitung Project Name : Ajax File Hoster V1 Script Language Used : bis PHP8.4 getestet Database : MySQL User Interface Design : HTML, AJAX, JQUERY, JAVASCRIPT Web Browser : Mozilla, Google Chrome, IE8, OPERA Software : XAMPP / Wamp / Mamp/ Lamp (anyone)
Ihr vertrauenswürdiger MP3-Download-Shop - Hochwertige Musik sofort verfügbar. Entdecken Sie unseren MP3-Download-Shop! Wir bieten eine riesige Auswahl an hochwertiger Musik. Sofortiger Download, sicherer Einkauf. Ihre Musik, nur einen Klick entfernt. So könnte Ihre Beschreibung Ihres Shops aussehen. Verdienen Sie zum einen durch Ihr eigenes Angebot an Musik, durch registrierte User die einen eigenen Shop buchen können gegen Gebühr. Als Betreiber können Sie auch kostenlose Musikdownloads zur Verfügung stellen und registrierten Usern zum Download anbieten. Als Anbieter muss jeder die Urheberrechte bestätigen. Funktionen im Überblick User-Funktionen: Registrierung mit Email Adressen Bestätigung 2 Faktor Identifikation beim Login durch Mail an User der einen 6 stelligen Code eingeben muß um das Login zu vollenden es gibt ein Shop Premium kostenpflichtig alles wird automatisch über Paypal abgewickelt, wobei Shop Besitzer über ein Paypal Geschäftskonto verfügen müssen. Nach Zahlung wird der zukünftige Shop User auf ein Formular weitergeleitet und muss dort dann seine Daten angeben wie Zb. Paypal Email, Name etc. Besucher können der User direkt per Paypal kaufen und anschließend downloaden auch ohne Registrierung Zudem werden dem Besucher durch AGB, Datenschutz, Statistiken und Impressum ausreichende Informationen geboten. Gespeicherte Informationen (activitie logs) werden alle 180 Tage gelöscht (kann vom Admin aber auch verkürzt werden. (es wird nur die IP Adresse des Besuchers, Nutzers gespeichert) Jeder Besucher kann eine Höhr Probe von 60 Sekunden anhören vor seinem Kauf Besucher haben eine Suchfunktion die Titel und Beschreibung nach Stichworten durchsucht Adminbereich-Funktionen Eigenes Login System (2 Faktor Identifikation kann nachgerüstet werden auf Wunsch) Einstellungen vornehmen wie Preis für Shop kann festgelegt werden, Logo hochladen, Meta Informationen eintragen HomePage Url festlegen, eigene Paypal Email eintragen, Gesamtspeicher festlegen für seinen Server Passwort ändern In der Dashboard Übersicht den Activity Logs auch einsehen, bereinigen wobei die Möglichkeit besteht diese auch per Cronjob auszuführen, Dashboard zeigt auch Statistiken an Kann seine Startseite anlegen und bearbeiten nutzen um User, Besucher über Neuigkeiten zu informieren User verwalten Shop Produkte freischalten, sperren oder komplett löschen Löschanfragen Archive, Dokumente und Images mit einem klick komplett löschbar Seiten wie Impressum, AGB und Datenschutz bearbeiten und verwalten Banner anlegen, Banner löschen Installationsroutine und Anleitung Project Name : MP3 Download Shop Language Used : bis PHP8.4 getestet Database : MySQL User Interface Design : HTML, AJAX, JQUERY, JAVASCRIPT Web Browser : Mozilla, Google Chrome, IE8, OPERA Software : XAMPP / Wamp / Mamp/ Lamp (anyone)
Wk-Suma ist im Grundprinzip ein Webkatalog. Unterschied hier ist der Aufbau, dieser ähnelt auf denBlick einer Suchmaschine und gleichzeitig einem Webkatalog. Die gesamte Struktur ist hierbei sehreinfach gehalten worden um Usern einen top Überblick zu gewährleisten.Dieses System verfügt über eine sehr einfache Installationsroutine, so das selbst unerfahrene Anwenderinnerhalb weniger minuten das Script installiert haben. Weitere Bilder per Anfrage Funktionen im Überblick Mit dieser WK-Suma sind Sie ganz vorne mit dabei. Thumbnail Anbieter sollte ein kostenpflichtiger genutzt werden. Sie verfügt über nachfolgende Funktionen: 1. Von der Startseite aus zum Homepageeintrag Auswahl Kostenlos, Profi oder Premium 2. Suchfunktion nach Beschreibung, Titel oder PLZ 3. kostenlos=mit Backlink, Profi=farbig hervorgehoben, Premium=Startseite und farbig hervorgehoben 4. Bewertungssystem, Installationsroutine 5. Login zum ändern des Eintrages oder hochstufen auf Profi, Premium Adminbereich 1. Einträge einsehen / prüfen / freigeben / sperren 2. Kategorien und Unterkategorien anlegen, bearbeiten, löschen 3. Preise und Admindaten anlegen 4. Passwort anlegen 5. Impressum, Datenschutz, AGB via Editor anlegen, ändern, löschen Project Name : WK-Suma Script Language Used : PHP8 getestet bis 8.4 Database : MySQL User Interface Design : HTML, AJAX, JQUERY, JAVASCRIPT Web Browser : Mozilla, Google Chrome, IE8, OPERA Software : XAMPP / Wamp / Mamp/ Lamp (anyone)
🎁 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
# 📡 PingMaster – Website Ping Service Kostenloses PHP-Skript zum automatischen Pingen Ihrer Website an 500+ Suchmaschinen, Verzeichnisse und Dienste. ## Features - **500+ Ping-Ziele** in 7 Kategorien - **Live-Terminal** – Ping-Ergebnisse in Echtzeit per AJAX - **Kategorien wählbar** – SEO, Blogs, News, Verzeichnisse, Social, Deutsche Dienste, International - **Ping-Protokoll** – bis zu 500 Einträge mit Erfolgsrate - **3 Ping-Methoden** – XML-RPC, HTTP GET, IndexNow - **Modernes Dark-Design** – Terminal-Ästhetik - **Keine Datenbank nötig** – JSON-basiertes Log-System ## Installation 1. ZIP entpacken auf Webserver 2. Browser: `https://ihredomain.de/ping/` 3. Fertig – keine Konfiguration nötig! ## Dateistruktur ``` / ├── index.php Hauptseite mit Ping-Formular ├── ping-ajax.php AJAX-Backend für Ping-Batches ├── log.php Ping-Protokoll ├── functions.php Ping-Engine, XML-RPC, Logging ├── /data/ │ └── ping-targets.php 500+ Ping-Ziele (kategorisiert) └── /logs/ └── ping-history.json Automatisch generiert ``` ## Ping-Kategorien | Kategorie | Dienste | Beschreibung | |-----------|---------|--------------| | 🔍 SEO & Suchmaschinen | 20 | Google, Bing, Yandex, IndexNow... | | 📝 Blogs & RSS | 54 | Technorati, Pingomatic, Feedster... | | 📰 News | 20 | Google News, Topix, Digg... | | 📂 Verzeichnisse | 30 | DMOZ, Yahoo Dir, Delicious... | | 📱 Social Media | 14 | Twitter, LinkedIn, Xing, Tumblr... | | 🇩🇪 Deutsche Dienste | 20 | Ping.de, Bloggerei.de, Yigg... | | 🌐 International | 90+ | PingOMatic, Pingler, BulkPing... | ## Ping-Methoden **XML-RPC** (Hauptmethode): ```xml <methodCall> <methodName>weblogUpdates.ping</methodName> <params> <param><value><string>Titel</string></value></param> <param><value><string>https://ihrewebsite.de</string></value></param> </params> </methodCall> ``` **HTTP GET** (Suchmaschinen): ``` https://www.google.com/ping?sitemap=https://ihrewebsite.de/sitemap.xml https://api.indexnow.org/indexnow?url=https://ihrewebsite.de ``` ## Konfiguration In `functions.php` anpassbar: - `TIMEOUT` (Standard: 3 Sek. pro Ping) - `LOG_MAX_ENTRIES` (Standard: 500) In `ping-ajax.php`: - `BATCH_SIZE` (Standard: 12 Ziele pro AJAX-Request) ## Anforderungen - PHP 7.4+ (empfohlen: 8.0+) - `allow_url_fopen = On` (für GET-Pings) - `fsockopen` verfügbar (für XML-RPC-Pings) - Schreibrecht auf `/logs/` Ordner ## Troubleshooting **Viele Fehler / langsam:** - Timeout-Wert erhöhen: `TIMEOUT = 5` - Manche Dienste sind inaktiv – das ist normal (20-40% Fehlerrate erwartet) **Permission denied /logs/:** ```bash chmod 755 logs/ ``` **allow_url_fopen deaktiviert:** XML-RPC-Pings funktionieren trotzdem über fsockopen. --- PHP 7.4+ · Keine Datenbank · Keine API-Keys · Sofort einsatzbereit
# 🎭 AvatarMaker v2.0 ### Avatar-Generator für Foren, Communities & Webseiten AvatarMaker ermöglicht es Besuchern, aus vorgefertigten Vorlagen eigene personalisierte Avatare zu erstellen – mit eigenem Text, sofortigem Download und optionaler Server-Speicherung. Kein Login, kein Abo, sofort einsatzbereit. --- ## ✨ Features | Feature | Beschreibung | |---|---| | 🎨 **Vorlagen-System** | Beliebig viele Vorlagen hochladbar, 24 bereits inklusive | | ✍️ **2 Texte pro Avatar** | Name, Titel oder Motto frei eingebbar (max. 20 Zeichen) | | 👁 **Live-Vorschau** | Echtzeit-Vorschau während der Texteingabe per AJAX | | 💾 **Server-Speicherung** | Erstellte Avatare optional speichern + Link anzeigen | | ⬇️ **Direktdownload** | Avatar sofort herunterladen ohne Login | | 🎭 **24 Beispiel-Avatare** | Farben, Gesichter, Muster, Pixel-Art, Tiere uvm. | | ⚙️ **Admin-Bereich** | Vorlagen verwalten, bearbeiten, löschen | | 🔍 **Auto-Scan** | scan.php trägt neue Bilder automatisch in die DB ein | --- ## 🚀 Installation ### 1. Voraussetzungen | Anforderung | Version | |---|---| | PHP | 7.4 oder höher | | GD Extension | Pflicht (für Bildverarbeitung) | | PDO SQLite Extension | Pflicht | | Schreibrechte | `storage/`, `avatars/templates/`, `avatars/created/` | ### 2. Dateien hochladen Alle Dateien in ein Verzeichnis auf dem Webserver hochladen: ``` https://ihre-domain.de/avatarmaker/ ``` ### 3. config.php anpassen ```php define('AM_URL', 'https://ihre-domain.de/avatarmaker'); // Ihre URL define('SITE_URL', 'https://ihre-domain.de'); // Link zur Hauptseite define('ADMIN_PASS', 'IhrSicheresPasswort'); // !! Bitte ändern !! define('SAVE_ENABLED', true); // false = keine Server-Speicherung ``` ### 4. Ordner-Rechte setzen ```bash chmod 755 storage/ chmod 755 avatars/templates/ chmod 755 avatars/created/ ``` ### 5. Datenbank initialisieren ``` https://ihre-domain.de/avatarmaker/install.php ``` Die SQLite-Datenbank wird erstellt und alle 24 Beispiel-Vorlagen werden registriert. **Danach `install.php` löschen!** ### 6. Fertig – aufrufen ``` https://ihre-domain.de/avatarmaker/ ← Frontend https://ihre-domain.de/avatarmaker/admin/ ← Admin-Bereich ``` --- ## 📁 Dateistruktur ``` avatarmaker/ ├── config.php ← Konfiguration (URL, Passwort, Einstellungen) ├── index.php ← Frontend: Vorlage wählen & Avatar erstellen ├── install.php ← Einmalige DB-Installation (danach löschen!) ├── scan.php ← mehrere Neue Templates auto-eintragen (danach löschen!) │ ├── includes/ │ └── avatar_engine.php ← GD-Bildverarbeitung (Text, Farben, Skalierung) │ ├── admin/ │ ├── index.php ← Admin-Dashboard (Stats, Vorlagen, Avatare) │ ├── template-upload.php ← Neue Vorlage hochladen │ └── template-edit.php ← Vorlage bearbeiten │ ├── avatars/ │ ├── templates/ ← Vorlagen-Bilder (PNG/JPG/GIF) │ └── created/ ← Erstellte Avatare der Besucher │ ├── storage/ │ └── avatarmaker.db ← SQLite Datenbank (auto-erstellt) │ └── .htaccess ← Sicherheit (config.php & DB schützen) ``` --- ## 🎨 Vorlagen-Übersicht (24 inklusive) ### Farb-Vorlagen (1–12) Einfarbige Hintergründe mit geometrischen Formen und Anfangsbuchstaben. | # | Name | Farbe | |---|---|---| | 1 | Ocean | Blau | | 2 | Fire | Rot-Orange | | 3 | Forest | Grün | | 4 | Purple | Lila | | 5 | Teal | Türkis | | 6 | Gold | Gold | | 7 | Dark | Dunkelblau | | 8 | Red | Rot | | 9 | Mint | Mintgrün | | 10 | Navy | Dunkelblau | | 11 | Amber | Orange | | 12 | Wine | Weinrot | ### Charakter & Muster (13–24) | # | Name | Beschreibung | |---|---|---| | 13 | Smiley | Klassisches Lächeln-Gesicht | | 14 | Cool-Face | Gesicht mit Sonnenbrille | | 15 | Pixel-Art | Retro 8-Bit Gesicht | | 16 | Roboter | Sci-Fi Roboterkopf mit LEDs | | 17 | Katze | Katzenkopf mit Schnurrhaaren | | 18 | Alien | Großäugiges Alien-Gesicht | | 19 | Hexagon | Abstraktes Lila-Muster | | 20 | Neon-Dreiecke | Geometrisch auf schwarz | | 21 | Mandala | Buntes Kreismuster | | 22 | Wellen | Ozean-Muster mit Mond | | 23 | Gaming | Controller-Design | | 24 | Blume | Pinkes Blumenmuster | --- ## ⚙️ Admin-Bereich ### Login ``` https://ihre-domain.de/avatarmaker/admin/ Passwort: wie in config.php → ADMIN_PASS eingestellt ``` ### Funktionen **Dashboard (`admin/index.php`)** - Statistiken: Anzahl Vorlagen, erstellte Avatare gesamt, heute - Vorlagen-Übersicht mit Thumbnail, Bearbeiten- und Löschen-Button - Tabelle aller erstellten Avatare mit Vorschau, Texten, IP und Datum **Neue Vorlage hochladen (`admin/template-upload.php`)** - PNG, JPG oder GIF hochladen (max. 2 MB) - Wird automatisch auf 120×120 Pixel skaliert - Text-Positionen für Text 1 und Text 2 einstellen (X/Y-Koordinaten) - Ausrichtung: Links, Mitte oder Rechts - Schriftgröße (8–24 px), Schriftfarbe, Konturfarbe - Sortierungsreihenfolge **Vorlage bearbeiten (`admin/template-edit.php`)** - Alle Einstellungen nachträglich ändern - Neues Bild hochladen (ersetzt das alte) - Vorlage aktiv/inaktiv schalten (inaktive sind im Frontend nicht sichtbar) --- ## 🔍 Neue Vorlagen per scan.php einbinden Wenn du mehrere Bilder auf einmal in `avatars/templates/` hochlädst, kannst du sie mit `scan.php` automatisch registrieren lassen – statt jede einzeln im Admin einzutragen. **Ablauf:** 1. Bilder in `avatars/templates/` hochladen 2. `https://ihre-domain.de/avatarmaker/scan.php` aufrufen 3. Bereits registrierte Dateien werden übersprungen, neue eingetragen 4. **`scan.php` danach löschen!** Namen und Einstellungen kannst du anschließend im Admin unter **✏️ Bearbeiten** anpassen. --- ## 🔧 Konfigurationsreferenz ```php // config.php – alle Optionen define('AM_URL', 'https://ihre-domain.de/avatarmaker'); // Basis-URL (kein /) define('SITE_URL', 'https://ihre-domain.de'); // Link \"← Zur Webseite\" define('SAVE_ENABLED', true); // true = Avatare auf Server speichern define('MAX_FILE_SIZE', 2097152); // Max. Upload-Größe in Bytes (Standard: 2 MB) define('AVATAR_SIZE', 120); // Ausgabegröße in Pixel (quadratisch) define('ADMIN_PASS', 'admin123'); // Admin-Passwort – bitte ändern! ``` --- ## 🔒 Sicherheitshinweise - Admin-Passwort in `config.php` sofort nach Installation ändern - `install.php` nach der Installation löschen - `scan.php` nach Nutzung löschen - `storage/` Ordner ist per `.htaccess` vor Direktzugriff geschützt - `config.php` ist per `.htaccess` vor Direktzugriff geschützt **Empfohlene Ordner-Rechte:** ``` storage/ → 755 avatars/created/ → 755 avatars/templates/→ 755 ``` --- ## ❓ Häufige Fragen **Warum erscheint kein Avatar nach dem Erstellen?** Prüfe ob `avatars/created/` Schreibrechte hat (`chmod 755`). Prüfe ob die GD-Extension in PHP aktiv ist. **Kann ich die Avatar-Größe ändern?** Ja – `AVATAR_SIZE` in `config.php` anpassen. Standard ist 120×120 Pixel. Vorlagen-Bilder werden automatisch auf diese Größe skaliert. **Kann ich eigene Schriftarten einbinden?** Ja – TTF-Dateien in den `fonts/` Ordner legen und in `config.php` unter `FONTS` eintragen. Im Admin kann dann pro Vorlage eine Schriftart gewählt werden. **Wie deaktiviere ich die Server-Speicherung?** `define('SAVE_ENABLED', false)` in `config.php` – Avatare werden dann nur angezeigt aber nicht gespeichert, kein Download-Link wird generiert. **Wie setze ich den erstellten Avatar in ein Forum ein?** Den angezeigten Link kopieren und im Forum als Avatar-URL eintragen – die meisten Foren unterstützen externe Bild-URLs. --- ## 🗺 Geplante Erweiterungen (Roadmap) > Diese Features sind noch nicht implementiert und können in einer späteren Version hinzugefügt werden. - **Benutzer-Login** – eigene Avatar-Sammlung pro Account - **Farbfilter** – Helligkeit, Kontrast, Sättigung per Schieberegler anpassen - **Sticker/Overlays** – zusätzliche Grafik-Elemente auf den Avatar legen - **Rahmen-System** – verschiedene Rahmen um den Avatar wählbar - **Galerie** – öffentliche Übersicht aller erstellten Avatare - **API-Endpunkt** – Avatar per GET-Parameter programmatisch generieren - **Wasserzeichen** – automatisches Logo auf alle erstellten Avatare --- ## 📄 Lizenz MIT License – frei verwendbar, anpassbar und weitervertreibbar. Bei Weitergabe bitte diese README beilegen. --- *AvatarMaker v2.0 · PHP 7.4+ · GD · SQLite · Kein Login erforderlich*
# 🔐 PasswortBox v1.0 ### Sicherer Passwort-Manager mit AES-256 Client-seitiger Verschlüsselung PasswortBox ist ein selbst gehosteter Passwort-Manager mit Zero-Knowledge-Architektur. Alle Passwörter werden **ausschließlich im Browser** verschlüsselt – der Server sieht niemals Ihre echten Daten. Einmalige Zahlung, kein Abo, läuft auf Ihrem eigenen Server. --- ## ✨ Features | Feature | Beschreibung | |---|---| | 🔒 **AES-256-GCM** | Militärgrade-Verschlüsselung direkt im Browser | | 🧠 **Zero-Knowledge** | Server speichert nur Ciphertext – niemals Klartext | | 🔑 **Mastercode** | 64-stelliger Schlüssel, nur du kennst ihn | | 📋 **Unbegrenzte Einträge** | Bezeichnung, Username, Passwort, Notiz – alles verschlüsselt | | 🔍 **Client-seitige Suche** | Suche läuft komplett im Browser, ohne Server-Anfrage | | ⭐ **Favoriten & Kategorien** | Einträge organisieren und filtern | | 🔧 **Passwort-Generator** | Sicher, zufällig, 8–64 Zeichen konfigurierbar | | 📊 **Passwortstärke** | Echtzeit-Anzeige beim Eingeben | | 📥 **Backup-Export** | Verschlüsselter JSON-Export aller Einträge | | 💳 **PayPal-Zahlung** | Einmalig 24,99 € – keine Folgekosten | | 👤 **Admin-Bereich** | Nutzer verwalten, Zahlungen einsehen | --- ## 🛡 Sicherheitsarchitektur ``` Mastercode (64 Zeichen) ↓ PBKDF2 (100.000 Iterationen, SHA-256) AES-256-GCM Schlüssel ↓ Verschlüsselung im Browser (Web Crypto API) Ciphertext + IV → Server/Datenbank ``` **Was der Server NICHT sieht:** - Mastercode (wird niemals übertragen) - Entschlüsselte Passwörter, Benutzernamen, Notizen - Den AES-Schlüssel **Was der Server speichert:** - Ciphertext (unlesbarer Datenmüll ohne Mastercode) - IV (Initialisierungsvektor – nicht geheim, für Entschlüsselung nötig) - Mastercode-Hash (SHA-256, nur zur Validierung beim Entsperren) --- ## 🚀 Installation ### 1. Voraussetzungen | Anforderung | Details | |---|---| | PHP | 8.0 oder höher | | PDO SQLite | Pflicht | | SMTP-Zugang | Für E-Mail-Verifizierung | | HTTPS | **Zwingend erforderlich** (Web Crypto API braucht HTTPS) | | Schreibrechte | Datenbankordner muss schreibbar sein | ### 2. Dateien hochladen ``` https://ihre-domain.de/passwortbox/ ``` ### 3. config.php anpassen ```php // Datenbank define('DB_PATH', __DIR__ . '/storage/passwortbox.db'); // PayPal define('PAYPAL_EMAIL', 'ihre@email.de'); define('PAYPAL_SANDBOX', true); // false für Live-Betrieb define('PRICE', 24.99); // SMTP (für Verifizierungs-E-Mails) define('SMTP_HOST', 'mail.ihre-domain.de'); define('SMTP_PORT', 587); define('SMTP_USER', 'ihre@email.de'); define('SMTP_PASS', 'IhrPasswort'); define('SMTP_FROM', 'ihre@email.de'); define('SMTP_NAME', 'PasswortBox'); // Admin define('ADMIN_EMAIL', 'admin@ihre-domain.de'); // Basis-URL define('BASE_URL', 'https://ihre-domain.de/passwortbox'); ``` ### 4. Datenbank installieren ``` https://ihre-domain.de/passwortbox/install.php ``` Erstellt alle Tabellen und den Admin-Account. **Danach `install.php` löschen!** ### 5. Admin-Passwort ändern ``` Login: E-Mail aus ADMIN_EMAIL in config.php Passwort: admin123 ``` **Sofort nach der Installation ändern!** ### 6. PayPal konfigurieren Im PayPal-Konto unter **Kontoeinstellungen → Sofortige Zahlungsbenachrichtigung (IPN)**: ``` IPN-URL: https://ihre-domain.de/passwortbox/paypal-ipn.php ``` Zum Testen: `PAYPAL_SANDBOX` auf `true` lassen und PayPal Sandbox nutzen. Für Live-Betrieb: `PAYPAL_SANDBOX` auf `false` setzen. --- ## 📁 Dateistruktur ``` passwortbox/ ├── config.php ← Konfiguration (DB, PayPal, SMTP) ├── functions.php ← Hilfsfunktionen ├── install.php ← Einmalige Installation (danach löschen!) │ ├── register.php ← Registrierung (2 Schritte inkl. Mastercode) ├── login.php ← Login ├── logout.php ← Abmelden ├── verify.php ← E-Mail-Verifizierung │ ├── dashboard.php ← Passwort-Tresor (Hauptseite) ├── eintrag-neu.php ← Neuen Eintrag erstellen / bearbeiten ├── eintrag-save.php ← Eintrag speichern (AJAX) ├── eintrag-delete.php ← Eintrag löschen (AJAX) ├── export.php ← Verschlüsselter Backup-Export │ ├── kaufen.php ← Kaufseite mit PayPal-Button ├── paypal-ipn.php ← PayPal IPN Handler ├── zahlung-erfolg.php ← Erfolgsseite nach Zahlung │ ├── konto.php ← Kontoeinstellungen & Aktivitätslog │ ├── admin/ │ ├── index.php ← Admin-Dashboard (Nutzer, Umsatz, Stats) │ └── user-edit.php ← Nutzer bearbeiten │ ├── includes/ │ ├── header.php ← Design & Navigation │ └── footer.php ← Footer │ └── storage/ └── passwortbox.db ← SQLite Datenbank (auto-erstellt) ``` --- ## 🗄 Datenbank-Schema ```sql -- Benutzer users: id, email, username, password, mastercode_hash, role, status, paid, paid_at, paypal_txn, verify_token, reset_token, reset_expires, created_at, last_login -- Verschlüsselte Einträge entries: id, user_id, label_enc, username_enc, password_enc, note_enc, ← alles AES-256 iv, category, is_fav, created_at, updated_at -- Zahlungen payments: id, user_id, txn_id, amount, status, paypal_data, created_at -- Aktivitätslog logs: id, user_id, action, detail, ip, created_at ``` --- ## 🔑 Der Mastercode – das Wichtigste Der Mastercode ist ein **64-stelliger zufälliger Schlüssel** der beim Registrieren einmalig generiert und angezeigt wird. **Eigenschaften:** - Wird **niemals** auf dem Server gespeichert (nur ein Hash zur Validierung) - Ohne Mastercode sind alle gespeicherten Daten **nicht wiederherstellbar** - Wird nur im `sessionStorage` des Browsers gehalten (nur aktuelle Session) - Beim Schließen des Browsers muss er beim nächsten Besuch neu eingegeben werden **Empfohlene Aufbewahrung (den Nutzern mitteilen):** - 🖨 Ausdrucken und sicher aufbewahren - 💾 Auf USB-Stick speichern (verschlüsselt) - 📓 In ein physisches Notizbuch schreiben - 🔒 In einem zweiten Passwort-Manager speichern **⚠️ Verlust des Mastercodes = alle Passwörter unwiederbringlich verloren.** Es gibt keine Passwort-Reset-Funktion für den Mastercode – das ist by Design so. --- ## 💳 Zahlungsablauf ``` 1. Nutzer registriert sich (kostenlos) 2. Nutzer sieht Kaufseite (kaufen.php) 3. Nutzer zahlt 24,99 € via PayPal 4. PayPal sendet IPN an paypal-ipn.php 5. IPN wird verifiziert → Nutzer wird freigeschaltet (paid=1) 6. Bestätigungs-E-Mail wird gesendet 7. Nutzer hat Zugriff auf den vollen Tresor ``` **Manuell freischalten** (Admin): ``` Admin → Nutzerverwaltung → Nutzer bearbeiten → Bezahlstatus: Bezahlt ``` --- ## 👤 Admin-Bereich ``` https://ihre-domain.de/passwortbox/admin/ Login: ADMIN_EMAIL aus config.php ``` **Dashboard zeigt:** - Nutzer gesamt / bezahlt / aktiv heute - Anzahl verschlüsselter Einträge - Gesamtumsatz - Letzte Registrierungen und Zahlungen **Nutzerverwaltung:** - Status ändern: aktiv / ausstehend / gesperrt - Bezahlstatus manuell setzen - Anzahl der Einträge pro Nutzer einsehen --- ## 🔧 Konfigurationsreferenz ```php // Datenbank define('DB_PATH', __DIR__ . '/storage/passwortbox.db'); // PayPal define('PAYPAL_EMAIL', 'shop@ihre-domain.de'); define('PAYPAL_SANDBOX', false); // true = Testmodus define('PRICE', 24.99); // Preis in Euro // SMTP define('SMTP_HOST', 'mail.ihre-domain.de'); define('SMTP_PORT', 587); // 587 (STARTTLS) oder 465 (SSL) define('SMTP_USER', 'ihre@email.de'); define('SMTP_PASS', 'passwort'); define('SMTP_FROM', 'ihre@email.de'); define('SMTP_NAME', 'PasswortBox'); // URLs define('BASE_URL', 'https://ihre-domain.de/passwortbox'); define('ADMIN_EMAIL', 'admin@ihre-domain.de'); ``` --- ## 🔒 Sicherheitshinweise - **HTTPS ist Pflicht** – die Web Crypto API funktioniert nur über HTTPS - `config.php` per `.htaccess` schützen oder außerhalb des Webroots ablegen - `storage/` Ordner per `.htaccess` vor Direktzugriff schützen - `install.php` nach Installation sofort löschen - Admin-Passwort `admin123` sofort nach Installation ändern - PayPal IPN immer verifizieren (ist bereits implementiert) - Regelmäßige Backups der `passwortbox.db` empfohlen **.htaccess Empfehlung:** ```apache <Files \"config.php\"> Order allow,deny Deny from all </Files> ``` --- ## ❓ Häufige Fragen **Kann ich meinen Mastercode zurücksetzen?** Nein – das ist technisch nicht möglich ohne alle Daten zu verlieren. Der Mastercode ist der einzige Schlüssel zu deinen Daten. **Was passiert wenn ich den Browser schließe?** Der Mastercode wird aus dem sessionStorage gelöscht. Beim nächsten Login muss er erneut eingegeben werden. Die verschlüsselten Daten bleiben erhalten. **Kann der Server-Admin meine Passwörter lesen?** Nein. Der Server speichert nur AES-256-verschlüsselte Daten. Ohne den Mastercode sind diese Daten wertlos. **Funktioniert PasswortBox ohne HTTPS?** Nein. Die Web Crypto API (für AES-256) ist aus Sicherheitsgründen nur über HTTPS verfügbar. Lokale Entwicklung auf `localhost` funktioniert. **Wie exportiere ich meine Daten?** Unter **Konto → Backup herunterladen** – die exportierte JSON-Datei ist ebenfalls AES-256-verschlüsselt mit deinem Mastercode. **Kann ich PasswortBox für mehrere Nutzer betreiben?** Ja – jeder Nutzer hat seinen eigenen Mastercode und eigene verschlüsselte Einträge. Die Daten sind vollständig voneinander getrennt. --- ## 🗺 Geplante Erweiterungen (Roadmap) > Diese Features sind noch nicht implementiert und können in einer späteren Version > hinzugefügt werden. - **Browser-Extension** – Passwörter direkt im Browser automatisch ausfüllen - **TOTP / 2FA** – Zwei-Faktor-Authentifizierung (Google Authenticator) - **Passwort-Teilen** – Einträge sicher mit anderen Nutzern teilen - **Ablaufdatum** – Erinnerung wenn Passwörter zu alt werden - **Passwort-Audit** – Schwache oder doppelte Passwörter erkennen - **Import** – CSV-Import aus anderen Passwort-Managern (LastPass, Bitwarden) - **Mobile App** – PWA für Smartphone-Nutzung --- ## 📄 Lizenz MIT Einzelplatz - License – frei verwendbar, anpassbar und weitervertreibbar. Bei Weitergabe bitte diese README beilegen. --- *PasswortBox v1.0 · PHP 8.0+ · SQLite · AES-256-GCM · Web Crypto API · PayPal IPN*
# DNSBL Checker Ein PHP-basierter Dienst zur Prüfung von Domains und IP-Adressen gegen 20 DNSBL-Blacklisten mit automatischer Zertifikatsgenerierung und Auto-Check-Funktion. ## Features - Prüfung gegen 20 DNSBL-Listen (Spamhaus ZEN, SpamCop, Barracuda, SORBS, Blocklist.de u.v.m.) - Score-Berechnung: 0–100% (Sauber / Gut / Auffällig / Kritisch) - Online-Zertifikat mit eindeutigem Token nach jeder Prüfung - SVG-Badge zum Einbinden auf der eigenen Website - Auto-Check alle 7 / 14 / 28 / 31 Tage per Cronjob - E-Mail-Benachrichtigung bei Auto-Check mit Abmelde-Link - Prüfverlauf (bis zu 10 letzte Checks) - Abmeldung über Token-Link in der E-Mail ## Dateien | Datei | Beschreibung | |---|---| | `config.php` | Datenbank, SMTP, Timeouts, Intervalle | | `dnsbl_lists.php` | Die 20 DNSBL-Listen | | `functions.php` | Hilfsfunktionen (DNS, Score, Mail) | | `install.php` | Erstellt die DB-Tabellen | | `index.php` | Hauptseite mit Formular und AJAX-Check | | `check.php` | AJAX-Endpoint für die Prüfung | | `zertifikat.php` | Zertifikat-Anzeige + SVG-Badge | | `cron.php` | Cronjob für Auto-Checks | | `abmelden.php` | Auto-Check deaktivieren | | `impressum.php` | Impressum | | `datenschutz.php` | Datenschutzerklärung | ## Installation ### 1. Dateien hochladen Alle Dateien in ein Verzeichnis auf dem Webserver hochladen, z.B. `/dnsbl/`. ### 2. config.php anpassen ```php define('DB_HOST', 'localhost'); define('DB_NAME', 'dnsbl_checker'); define('DB_USER', 'dein_user'); define('DB_PASS', 'dein_passwort'); define('SITE_URL', 'https://deine-domain.de/dnsbl'); define('SMTP_HOST', 'mail.deine-domain.de'); define('SMTP_USER', 'info@deine-domain.de'); define('SMTP_PASS', 'mail-passwort'); define('ADMIN_EMAIL', 'admin@deine-domain.de'); ``` ### 3. Datenbank anlegen `install.php` im Browser aufrufen: ``` https://deine-domain.de/dnsbl/install.php ``` Nach erfolgreicher Installation `install.php` löschen! ### 4. Cronjob einrichten Für den Auto-Check täglich ausführen (prüft nur fällige Einträge): ``` 0 6 * * * php /pfad/zu/dnsbl/cron.php ``` Oder per URL (falls kein Shell-Zugriff): ``` 0 6 * * * curl -s https://deine-domain.de/dnsbl/cron.php ``` ### 5. Impressum & Datenschutz anpassen In `impressum.php` und `datenschutz.php` die Platzhalter ersetzen: - `Vorname Nachname` → Ihr Name - `Musterstraße 1, 12345 Musterstadt` → Ihre Adresse - `info@deine-domain.de` → Ihre E-Mail ## DNSBL-Listen | Liste | DNS-Suffix | |---|---| | Spamhaus ZEN | zen.spamhaus.org | | SpamCop | bl.spamcop.net | | Barracuda | b.barracudacentral.org | | SORBS Spam | spam.dnsbl.sorbs.net | | SORBS HTTP | http.dnsbl.sorbs.net | | SORBS SOCKS | socks.dnsbl.sorbs.net | | SORBS Zombie | zombie.dnsbl.sorbs.net | | Blocklist.de | bl.blocklist.de | | UCEPROTECT L1 | dnsbl-1.uceprotect.net | | UCEPROTECT L2 | dnsbl-2.uceprotect.net | | PSBL | psbl.surriel.com | | WPBL | db.wpbl.info | | DroneBL | dnsbl.dronebl.org | | Woody's SMTP | blacklist.woody.ch | | iX Manitu | ix.dnsbl.manitu.net | | GBUdb | truncate.gbudb.net | | S5H | all.s5h.net | | Interserver | rbl.interserver.net | | NordSpam | bl.nordspam.com | | SpamRATS | all.spamrats.com | ## Badge einbinden ```html <a href=\"https://deine-domain.de/dnsbl/zertifikat.php?token=DEIN_TOKEN\"> <img src=\"https://deine-domain.de/dnsbl/zertifikat.php?token=DEIN_TOKEN&badge=1\" alt=\"DNSBL geprüft\" width=\"200\"> </a> ``` ## Anforderungen - PHP 8.0+ - MySQL / MariaDB - PHP-Extensions: `pdo_mysql`, `openssl` (für SMTP TLS) - Cronjob-Zugang (optional, für Auto-Check) ## Lizenz Privates Projekt – alle Rechte vorbehalten.