16 Einträge gefunden
PayPal Shop - E-Commerce System Projektbeschreibung Einfaches aber leistungsstarkes Shop-System mit PayPal-Integration. Produkte verkaufen, Warenkorb-Verwaltung und sichere Zahlungsabwicklung. Ideal für kleine bis mittlere Online-Shops. Hauptfunktionen - Produkt-Katalog - Übersichtliche Produktdarstellung - Warenkorb - Session-basierter Shopping-Cart - PayPal-Zahlung - Sichere Zahlungsabwicklung - Bestell-Verwaltung - Admin-Panel für Bestellungen - Produkt-Management - Produkte hinzufügen/bearbeiten/löschen - Responsive Design - Mobile Shopping-Erlebnis - Download - automatisch nach Zahlung Technische Details - PHP: 8.4+ - Datenbank: MySQL - Sicherheit: PDO, CSRF, Bcrypt - Zahlung: PayPal API - Design: Teal/Türkis Theme - Tabellen-Präfix: Anpassbar Lizenz Einzelplatz-Lizenz - Verwendung für private und kommerzielle Zwecke.
Features - Datei-Upload mit Fortschrittsbalken - Download-System - Speicher-Limit (100 MB) - User-System (Login/Register) - PDO + Präfix-Funktion p() - Auto-Install Design Waldgrün-Palette: - Dunkelgrün: #2d5016 - Waldgrün: #228B22 - Hellgrün: #90EE90 Dateien (nur 5!) 1. config.php - Zentrale Config mit PDO 2. install.php - Installation (Waldgrün Design) 3. login.php - Login & Registrierung 4. index.php - Upload & Verwaltung 5. download.php - Sicherer Download Installation 1. Alle Dateien hochladen 2. install.php aufrufen 3. Datenbank eingeben 4. Fertig! Technisch - PHP 8.4 kompatibel - PDO Prepared Statements - CSRF-Schutz - Bcrypt Passwords - Session-Security
Features Musik hochladen & verwalten - MP3-Upload (Full Track) - 30-Sek Hörproben - Cover-Bilder Integrierter Player - 30-Sekunden Hörproben - Auto-Stop nach 30s - Play-Counter Bewertungssystem - 5-Sterne-Rating - Vote-Counting - IP-basierte Einmalabstimmung PayPal-Integration - Direkter Kaufbutton - PayPal IPN - Auto-Download-Link per E-Mail Suche & Filter - Genre-Filter - Text-Suche - Sortierung (Neueste/Beliebt/Bewertet) Installation 1. Alle Dateien hochladen 2. install.php aufrufen 3. Datenbank konfigurieren 4. Admin-Account erstellen 5. PayPal E-Mail eingeben 6. Fertig! Technisch - PHP 8.4 konform - PDO Prepared Statements - CSRF Protection - Bcrypt Passwords - Präfix-Funktion p() Design: Kaffeebraun/Orange (#6F4E37, #A0522D, #FF8C00) Lizenz: Einzelplatz-Lizenz
Projektbeschreibung Ein schlankes und benutzerfreundliches Download-Portal für das einfache Teilen und Verwalten von Dateien. Ideal für Software-Entwickler, Content Creator, Unternehmen oder Communities. Hauptfunktionen Öffentlicher Bereich - Download-Übersicht - Alle verfügbaren Dateien auf einen Blick - Detailinformationen - Titel, Beschreibung, Dateigröße - Download-Counter - Anzahl der Downloads wird angezeigt - Ein-Klick-Download - Direkter Download ohne Umwege - Pagination - Übersichtliche Darstellung bei vielen Dateien - Responsive Design - Funktioniert auf allen Geräten Admin-Panel - Datei-Upload - Einfaches Hochladen über Web-Interface - Metadaten - Titel und Beschreibung für jede Datei - Datei-Verwaltung - Übersicht aller Uploads - Status-Kontrolle - Dateien aktivieren/deaktivieren - Download-Statistik - Anzahl der Downloads einsehen - Lösch-Funktion - Dateien entfernen Technische Details: PHP 8.4, MySQL, CSRF, PDO, Bcrypt, Blau-Design Datenbankstruktur: downloads, admin Lizenz: Freie Verwendung für private und kommerzielle Zwecke.
Installation 1. Alle Dateien auf Server hochladen 2. install.php im Browser aufrufen 3. Datenbank-Zugangsdaten eingeben 4. PayPal E-Mail für Zahlungen angeben 5. Installation abschließen Dateien - install.php - Installation - index.php - Öffentliche Startseite - login.php - Login & Registrierung - dashboard.php - Datei-Upload & Verwaltung - download.php - Sicherer Datei-Download - upgrade.php - Plan-Upgrades mit PayPal Features - Datei-Upload mit Fortschrittsanzeige - Sicherer Download - Speicherplatz-Verwaltung - 3 Pläne (Free, Pro, Business) - PayPal-Integration (klassisch) - Responsive Design - File-Type Icons Pläne - Free: 5 GB, 100 MB max. Datei - Pro: 100 GB, 5 GB max. Datei, 9€/Monat - Business: 1 TB, unbegrenzt, 29€/Monat Technisch: PHP 7.4+, MySQL/MariaDB, PDO, Session-basierte Auth, CSRF-Schutz
ALLE FEATURES SECURITY & AUTH: - User Registration mit DSGVO-Checkbox - Login System mit Session Management - 2FA (Two-Factor Authentication) via E-Mail - AES-256 Verschlüsselung für Credentials - password_hash() für User-Passwörter - PDO Prepared Statements (SQL Injection Schutz) E-MAIL SYSTEM (PHP mail()): - Registrierungsbestätigung - Backup erfolgreich erstellt - Backup fehlgeschlagen - 2FA Code (6-stellig, 10 Min gültig) - Inaktivitätswarnung (nach 12 Monaten) - Keine externe Library nötig! BACKUP ENGINE: - FTP Backup (rekursiv, alle Dateien) - MySQL Datenbank Export (komplett) - ZIP-Archiv Erstellung - Automatische Prozessierung - 3 GB Speicher pro User - Download-Funktion - Löschen-Funktion PAYMENT: - PayPal Integration - 0,99€ pro Backup - IPN Handler (Instant Payment Notification) - Automatische Backup-Erstellung nach Zahlung - Transaktions-Tracking LEGAL: - Datenschutzerklärung (DSGVO-konform) - AGB (Allgemeine Geschäftsbedingungen) - Impressum (TMG-konform) DESIGN: Blau/Orange Gradient Theme, Responsive, Glassmorphism ADMIN: Dashboard, User-Übersicht, Backup-Statistiken, Einnahmen-Tracking, Speicher-Monitoring BUSINESS MODEL: 0,99€ pro Backup, 3 GB Speicher pro User, kein Abo PHP 8.0+, MySQL/MariaDB, PDO, OpenSSL, FTP, ZipArchive EINZIGARTIGES SAAS-SYSTEM - READY TO LAUNCH!
# 🗺️ Sitemap Generator - Mit automatischem Website-Crawler Kostenloser Online-XML-Sitemap-Generator mit **automatischem Crawler**, Benutzerkonten, Werbeverwaltung und professionellem 2-Spalten-Design. ## ⚡ Features ### 🕷️ **NEU: Automatischer Website-Crawler** - ✅ **URL eingeben → System crawlt automatisch** - ✅ Findet alle internen Links - ✅ Rekursiver Crawl (einstellbare Tiefe) - ✅ Ignoriert externe Links - ✅ Überspringt Medien-Dateien (Bilder, PDFs, etc.) - ✅ Einstellbare max. URL-Anzahl - ✅ Live-Fortschritt anzeigen ### 🎯 Benutzer-Features - ✅ **Automatische Sitemap-Generierung** - ✅ Manuelle URLs hinzufügen/entfernen - ✅ Registrierung zum Speichern von Sitemaps - ✅ Mehrere Sitemaps verwalten - ✅ XML-Dateien herunterladen - ✅ Changefreq & Priorität pro URL - ✅ Benutzer-Dashboard ### 💰 Monetarisierung - ✅ 5 Werbepositionen (Sidebar + Content) - ✅ Banner-Bilder - ✅ Google AdSense - ✅ Custom HTML Werbung - ✅ Klick & Impression Tracking ### 👨💼 Admin-Features - ✅ Werbung erstellen & verwalten - ✅ Benutzer sperren/entsperren - ✅ Alle Sitemaps anzeigen - ✅ Statistik-Dashboard ## 🕷️ Crawler-Funktionsweise ``` 1. User gibt Domain ein: https://beispiel.de 2. System startet Crawler 3. Crawler findet alle <a href> Links 4. Nur interne Links (gleiche Domain) 5. Rekursiv bis Max-Tiefe 6. Ignoriert Medien & externe Links 7. Zeigt gefundene URLs 8. User kann bearbeiten 9. Sitemap generieren ``` ### **Crawler-Einstellungen:** - **Maximale Tiefe:** 1-4 Ebenen - **Max. URLs:** 25, 50, 100, 200 - **Timeout:** 5 Sekunden pro Seite - **User-Agent:** Mozilla/5.0 (Sitemap Generator Bot) ## 🎨 Design 2-Spalten-Layout: - **Sidebar**: Navigation + Werbeflächen (250x250) - **Hauptbereich**: Generator + Werbeflächen (728x90) - Responsive & Mobile-optimiert ## 📊 Werbepositionen ``` sidebar_top - Kleiner Banner (Sidebar) sidebar_bottom - Kleiner Banner (Sidebar) content_top - Großer Banner (über Crawler) content_middle - Großer Banner (Mitte) content_bottom - Großer Banner (Footer) ``` ## 🚀 Installation ```bash 1. Dateien hochladen 2. install.php aufrufen 3. DB-Zugangsdaten eingeben 4. Fertig! ``` ## 💻 Dateien ``` install.php - Installation config.php - Datenbank-Config functions.php - Hilfsfunktionen & Werbesystem crawler.php - ⭐ Auto-Crawler System login.php - Login register.php - Registrierung index.php - Generator mit Crawler generator.php - Backend (XML-Generierung) dashboard.php - Benutzer-Sitemaps download.php - XML Download admin.php - Admin-Panel ad_click.php - Werbe-Klick-Tracking style.css - 2-Spalten-Design ``` ## 🗺️ Funktionsweise ### Für Benutzer: 1. Website-URL eingeben 2. \"Website durchsuchen\" klicken 3. System crawlt automatisch 4. Gefundene URLs prüfen/bearbeiten 5. Optional: Manuelle URLs hinzufügen 6. \"Sitemap generieren\" klicken 7. XML herunterladen 8. (Optional) Registrieren zum Speichern ### Crawler-Features: - ✅ Automatische Link-Erkennung - ✅ Nur interne Links - ✅ Duplikate werden entfernt - ✅ Fragment-URLs (#) ignoriert - ✅ JavaScript/Mailto Links überspringen - ✅ Relative URLs → Absolute URLs - ✅ Query-Parameter erhalten ## 🔧 Technische Details ### Crawler-Algorithmus: ```php 1. Start bei Homepage 2. HTML laden (file_get_contents) 3. Regex: <a href=\"...\"> finden 4. Links normalisieren 5. Domain-Check (nur intern) 6. Zu Queue hinzufügen 7. Rekursiv bis Max-Tiefe 8. Ergebnis zurückgeben ``` ### Sicherheit: - ✅ URL-Validierung - ✅ Timeout (5 Sek/Seite) - ✅ Max-Redirects (3) - ✅ File-Extension Filter - ✅ XSS-Schutz ## 📈 Performance - **Crawl-Speed:** ~1-2 Sekunden pro Seite - **Max. URLs:** 200 (konfigurierbar) - **Max. Tiefe:** 4 Ebenen - **Timeout:** 5 Sekunden - **Memory:** ~50MB für 100 URLs ## 💡 Geschäftsmodell **100% Kostenlos für Benutzer** - Keine Limits - Automatischer Crawler - Keine Wasserzeichen **Umsatz durch Werbung** - 5 strategische Ad-Positionen - Google AdSense Integration - Performance Tracking ## 🚧 Zukünftige Erweiterungen - [ ] Sitemap.xml Import - [ ] Robots.txt beachten - [ ] JavaScript-Rendering (für SPAs) - [ ] Crawl-Scheduling - [ ] Broken-Link-Check - [ ] HTML-Sitemap - [ ] Multi-Domain Support ## ⚠️ Wichtig ### Crawler-Limits: - Respektiert robots.txt (TODO) - Max. 200 URLs pro Crawl - 5 Sekunden Timeout - Nur HTTP/HTTPS ### Best Practices: - Kleine Websites (<100 Seiten) perfekt - Große Websites: Manuelle URLs - XML-Import nutzen (falls vorhanden) --- **Status:** ✅ Production Ready **Version:** 2.0 (mit Auto-Crawler) **DB-Struktur:** Unverändert ✅
🎨 InkVault - Tattoo Portal 📋 Inhaltsverzeichnis 1. [Überblick](überblick) 2. [Features](features) 3. [Systemanforderungen](systemanforderungen) 4. [Installation](installation) 5. [Datenbank-Struktur](datenbank-struktur) 6. [Account-Typen](account-typen) 7. [Funktionen](funktionen) 8. [Werbung-System](werbung-system) 9. [Dateistruktur](dateistruktur) 10. [Konfiguration](konfiguration) 11. [Troubleshooting](troubleshooting) 12. [Sicherheit](sicherheit) 📖 Überblick InkVault ist ein professionelles Tattoo-Portal, das Tätowierer und Tattoo-Enthusiasten zusammenbringt. Benutzer können ihre fertigen Tattoos und Vorlagen hochladen, während Tätowierer vollständige Studio-Profile mit Kontaktmöglichkeiten erstellen können. **Hauptmerkmale:** - 🎨 Separate Bereiche für Tattoos & Vorlagen - 👨🎨 Vollständige Tätowierer-Profile mit Studio-Infos - 🖼️ Automatische WebP-Konvertierung aller Uploads - 💬 Kommentar-System mit Admin-Freigabe - ❤️ Like-System - 🔍 Erweiterte Suche & Filter - 📧 Kontaktformular für Tätowierer - 💬 WhatsApp-Integration - 📢 Flexibles Werbung-System - 🔒 Benutzer-Verwaltung mit Sperr-Funktion ✨ Features Für alle Besucher: - ✅ Tattoo-Galerie durchsuchen (24 pro Seite) - ✅ Vorlagen-Galerie durchsuchen (24 pro Seite) - ✅ Tätowierer finden (nach Stadt/PLZ) - ✅ Lightbox für Bilder - ✅ Filter nach Tags - ✅ Tätowierer kontaktieren Für registrierte User: - ✅ Tattoos hochladen - ✅ Vorlagen hochladen - ✅ Bilder liken ❤️ - ✅ Kommentare schreiben - ✅ Eigene Uploads verwalten Für Tätowierer (Artist-Account): - ✅ Vollständiges Studio-Profil - ✅ Geschäftsadresse & Kontaktdaten - ✅ Öffnungszeiten & Preise - ✅ WhatsApp-Button - ✅ Portfolio (Tattoos & Vorlagen) - ✅ Kontaktanfragen empfangen - ✅ Nachrichtenverwaltung Für Admins: - ✅ Benutzer sperren/löschen - ✅ Kommentare freigeben/ablehnen - ✅ Werbung an 4 Positionen schalten - ✅ Statistiken ansehen - ✅ Vollständige Moderation 💻 Systemanforderungen - **PHP:** 8.0 oder höher - **MySQL:** 5.7 oder höher - **Apache/Nginx** mit mod_rewrite - **Schreibrechte** für /uploads Ordner **PHP Extensions:** - PDO - PDO_MySQL - **GD** (für WebP-Konvertierung - WICHTIG!) - mbstring 📥 Installation Schritt 1: Dateien hochladen bash Alle Dateien in Ihr Webverzeichnis hochladen Beispiel: /public_html/tattoo-portal/ Schritt 2: Ordner-Berechtigungen bash chmod 755 uploads/ chmod 755 uploads/tattoos/ chmod 755 uploads/templates/ chmod 755 uploads/profiles/ Schritt 3: Installation starten 1. **Browser öffnen:** `https://ihre-domain.de/install.php` 2. **Datenbank-Informationen:** - DB Host: `localhost` - DB Name: `tattoo_db` - DB User: `ihr_db_user` - DB Password: `ihr_db_passwort` 3. **Admin-Account erstellen:** - Username: `admin` - Email: `admin@ihre-domain.de` - Password: `sicheres-passwort` 4. **PayPal Email (Optional):** - Leer lassen (Portal ist kostenlos) - Nur für spätere Monetarisierung 5. **Installieren klicken** 6. **install.php wird automatisch gelöscht** Schritt 4: Fertig! Die Installation erstellt automatisch: - ✅ 9 Datenbank-Tabellen - ✅ 4 Werbeplätze (Header, Sidebar, Between, Footer) - ✅ Admin-Account - ✅ config.php mit allen Einstellungen 🗄️ Datenbank-Struktur Tabelle: tp_users sql - id (Primary Key) - username (UNIQUE) - email (UNIQUE) - password_hash - account_type (ENUM: 'user', 'artist') - is_admin (0/1) - is_blocked (0/1) - avatar (WebP) - created_at Tabelle: tp_artist_profiles sql - id (Primary Key) - user_id (Foreign Key → users) - studio_name - bio - address - city - postal_code - phone - whatsapp - email - website - instagram - facebook - opening_hours (TEXT) - price_info (TEXT) - banner (WebP) Tabelle: tp_tattoos sql - id (Primary Key) - user_id (Foreign Key → users) - title - image_path (WebP) - tag (automatisch aus erstem Wort) - views - likes - created_at Tabelle: tp_templates sql - id (Primary Key) - user_id (Foreign Key → users) - title - image_path (WebP) - tag (automatisch aus erstem Wort) - views - likes - created_at Tabelle: tp_likes sql - id (Primary Key) - user_id (Foreign Key → users) - item_id - item_type (ENUM: 'tattoo', 'template') - created_at - UNIQUE: (user_id, item_id, item_type) Tabelle: tp_comments sql - id (Primary Key) - user_id (Foreign Key → users) - item_id - item_type (ENUM: 'tattoo', 'template') - comment (TEXT) - approved (0/1) - created_at Tabelle: tp_ads sql - id (Primary Key) - position (ENUM: 'header', 'sidebar', 'between', 'footer') - title - code (TEXT - HTML/JavaScript) - status (ENUM: 'active', 'inactive') - created_at Tabelle: tp_messages sql - id (Primary Key) - artist_id (Foreign Key → users) - sender_name - sender_email - subject - message (TEXT) - is_read (0/1) - created_at 👤 Account-Typen Bei Registrierung wählbar: **1. Privat (User):** - Tattoos hochladen - Vorlagen hochladen - Liken & Kommentieren - Tätowierer kontaktieren **2. Tätowierer (Artist):** - Alles was User kann PLUS: - Studio-Profil erstellen - Kontaktanfragen empfangen - Portfolio aufbauen - Geschäftsinformationen hinterlegen **3. Admin:** - Wird in Datenbank gesetzt (is_admin = 1) - Volle Kontrolle über Portal 🛠️ Funktionen Upload-System: **1. Tattoos hochladen:** 1. Login 2. Navigation → Upload 3. Typ: \"Tattoo\" wählen 4. Titel eingeben (z.B. \"Tribal Oberarm\") 5. Bild hochladen (JPG/PNG/GIF/WebP) 6. Upload → Automatisch zu WebP konvertiert 7. Tag automatisch generiert (\"tribal\") **2. Vorlagen hochladen:** Gleicher Ablauf, nur Typ: \"Vorlage\" wählen **Tag-System:** - Erstes Wort vom Titel = automatischer Tag - \"Tribal Oberarm\" → Tag: \"tribal\" - \"Drache Rücken\" → Tag: \"drache\" - Suchbar über Filter Tätowierer-Profil einrichten: 1. Als \"Tätowierer\" registrieren 2. Navigation → \"Mein Studio\" 3. Alle Felder ausfüllen: ├─ Profilbild & Banner ├─ Studio-Name ├─ Bio ├─ Adresse (Straße, PLZ, Stadt) ├─ Telefon ├─ WhatsApp (mit Ländercode: +49...) ├─ E-Mail ├─ Website ├─ Instagram & Facebook ├─ Öffnungszeiten └─ Preis-Informationen 4. Speichern 5. Profil ist öffentlich sichtbar Kontaktaufnahme: **Besucher → Tätowierer:** 1. **E-Mail-Formular:** - Auf Artist-Profil - Nachricht senden - Tätowierer erhält Nachricht in \"Nachrichten\" 2. **WhatsApp:** - Click auf WhatsApp-Button - Öffnet WhatsApp Web/App 3. **Telefon:** - Click auf Telefonnummer - Click-to-Call Galerie & Suche: **Tattoos durchsuchen:** 1. Navigation → Tattoos 2. Filter verwenden: ├─ Suche nach Titel └─ Suche nach Tag 3. 24 Bilder pro Seite 4. Click auf Bild → Detail-Ansicht 5. Liken & Kommentieren **Tätowierer finden:** 1. Navigation → Tätowierer 2. Filter: ├─ Nach Stadt └─ Nach PLZ 3. Click auf Profil → Vollständige Infos 📢 Werbung-System 4 Werbeplätze (nur Admin): **1. Header Banner (728x90)** - Position: Unter Navigation - Dateien: index.php - Ideal für: Hauptwerbung **2. Sidebar (300x250)** - Position: Rechte Spalte - Dateien: index.php - Ideal für: Produkte, Dienstleistungen **3. Between Gallery (468x60)** - Position: Zwischen Galerien in Artist-Profil - Dateien: artist.php - Ideal für: Contextual Ads **4. Footer (728x90)** - Position: Vor </body> - Dateien: tattoos.php, templates.php, artists.php, artist.php - Ideal für: Zusätzliche Werbung Werbung verwalten: 1. Als Admin einloggen 2. Navigation → Admin 3. Sektion \"Werbeplätze\" 4. Position wählen 5. Titel eingeben 6. HTML/JavaScript Code einfügen 7. Status: Aktiv/Inaktiv 8. Speichern **Beispiel-Code:** html <div style=\"text-align:center;padding:20px;background:f0f0f0\"> <img src=\"banner.jpg\" alt=\"Werbung\" style=\"max-width:100%\"> </div> oder html <script async src=\"https://pagead2.googlesyndication.com/...\"></script> 📁 Dateistruktur tattoo-portal/ │ ├── config.php Konfiguration (von install.php erstellt) ├── functions.php Hilfsfunktionen ├── install.php Installation │ ├── style.css Design (Lila/Pink Tattoo-Theme) ├── header.php Header mit Logo ├── nav.php Navigation │ ├── index.php Startseite ├── tattoos.php Tattoo-Galerie (24 pro Seite) ├── templates.php Vorlagen-Galerie (24 pro Seite) ├── artists.php Tätowierer-Übersicht ├── artist.php Einzelnes Tätowierer-Profil ├── view.php Detail-Ansicht (Likes, Kommentare) ├── upload.php Upload-Formular │ ├── login.php Login ├── logout.php Logout ├── register.php Registrierung (User/Artist) │ ├── my-studio.php Studio-Verwaltung (nur Artist) ├── messages.php Kontaktanfragen (nur Artist) │ ├── admin.php Admin-Panel │ └── uploads/ ├── tattoos/ Tattoo-Bilder (WebP) │ └── index.php Schutz ├── templates/ Vorlagen-Bilder (WebP) │ └── index.php Schutz └── profiles/ Profilbilder (WebP) └── index.php Schutz ⚙️ Konfiguration config.php (wird von install.php erstellt) php <?php // Datenbank define(\"DB_HOST\", \"localhost\"); define(\"DB_NAME\", \"tattoo_db\"); define(\"DB_USER\", \"db_user\"); define(\"DB_PASS\", \"db_password\"); define(\"DB_PREFIX\", \"tp_\"); // Site define(\"SITE_NAME\", \"InkVault\"); define(\"ITEMS_PER_PAGE\", 24); Anpassungen: **Site-Name ändern:** php define(\"SITE_NAME\", \"Tattoo Gallery\"); **Bilder pro Seite ändern:** php define(\"ITEMS_PER_PAGE\", 48); // Standard: 24 📸 Bildverarbeitung Automatische WebP-Konvertierung: **Alle hochgeladenen Bilder werden automatisch zu WebP konvertiert:** - ✅ JPG → WebP - ✅ JPEG → WebP - ✅ PNG → WebP (mit Transparenz) - ✅ GIF → WebP - ✅ WebP → WebP (kopiert) **Qualität:** 85% **Vorteile:** - Kleinere Dateigröße - Schnellere Ladezeiten - Moderne Browser-Unterstützung **Funktion in functions.php:** php convertToWebP($source, $destination, $quality = 85) uploadImage($file, $folder, $maxSize = 10000000) 👥 Benutzung Als Besucher (nicht eingeloggt): 1. **Startseite besuchen** 2. **Galerien durchsuchen:** - Tattoos anschauen - Vorlagen anschauen - Tätowierer finden 3. **Tätowierer kontaktieren** (via Formular) Als User (Privat-Account): 1. **Registrieren:** Account-Typ \"Privat\" wählen 2. **Tattoos hochladen:** - Upload → Typ \"Tattoo\" - Titel: \"Tribal Oberarm\" - Bild hochladen - Automatisch Tag: \"tribal\" 3. **Vorlagen hochladen:** - Upload → Typ \"Vorlage\" - Titel: \"Drache Rücken\" - Automatisch Tag: \"drache\" 4. **Interagieren:** - Bilder liken ❤️ - Kommentare schreiben - Tätowierer kontaktieren Als Tätowierer (Artist-Account): 1. **Registrieren:** Account-Typ \"Tätowierer\" wählen 2. **Studio-Profil erstellen:** - Navigation → \"Mein Studio\" - Alle Informationen eingeben: - Studio-Name: \"Ink & Art Studio\" - Bio: Beschreibung des Studios - Adresse: Straße, PLZ, Stadt - Telefon: 0123456789 - WhatsApp: +49123456789 - E-Mail: studio@example.de - Website: https://studio-website.de - Instagram: username (ohne @) - Facebook: Seitenname - Öffnungszeiten: Mo-Fr: 10-18 Uhr Sa: 10-16 Uhr So: Geschlossen - Preise: Beratung: Kostenlos Ab 80€ pro Stunde Mindestsatz: 60€ - Profilbild & Banner hochladen - Speichern 3. **Portfolio aufbauen:** - Tattoos hochladen - Vorlagen hochladen - Alles erscheint im Profil 4. **Kontaktanfragen verwalten:** - Navigation → \"Nachrichten\" - Neue Nachrichten sehen - Per E-Mail antworten - Als gelesen markieren - Löschen Als Admin: 1. **Admin-Panel öffnen:** - Navigation → Admin - Dashboard mit Statistiken 2. **Benutzer verwalten:** - User sperren (🚫) - User löschen (🗑️) - Account-Typ sehen - Registrierungsdatum 3. **Kommentare moderieren:** - Wartende Kommentare anzeigen - Freigeben (✓) - Ablehnen/Löschen (🗑️) - Zum Bild springen 4. **Werbung schalten:** - 4 Positionen verfügbar - Code einfügen (HTML/JS) - Status setzen (Aktiv/Inaktiv) - Titel bearbeiten 🎯 Tag-System Automatische Tag-Generierung: **Wie es funktioniert:** Titel: \"Tribal Oberarm Schwarz\" → Tag: \"tribal\" Titel: \"Drache Rücken Bunt\" → Tag: \"drache\" Titel: \"Rose Klein Handgelenk\" → Tag: \"rose\" **Erstes Wort wird kleingeschrieben und als Tag gespeichert.** Suche nach Tags: 1. Tattoos/Vorlagen-Seite 2. Filter: Tag eingeben 3. Nur Bilder mit diesem Tag anzeigen **Beliebte Tags:** - tribal - drache - rose - skull - mandala - blackwork - realistisch - oldschool 🔍 Suche & Filter Tattoos/Vorlagen: **Filter-Optionen:** - 🔤 **Titel:** Freitext-Suche - 🏷️ **Tag:** Nach Kategorie filtern **Beispiel:** Titel: \"Drache\" Tag: \"tribal\" → Zeigt alle Tribal-Tattoos mit \"Drache\" im Titel Tätowierer: **Filter-Optionen:** - 🏙️ **Stadt:** z.B. \"Berlin\" - 📮 **PLZ:** z.B. \"10115\" oder \"101\" (Teilsuche) **Beispiel:** Stadt: \"München\" → Zeigt alle Tätowierer in München 💬 Kommentar-System Ablauf: 1. **User schreibt Kommentar:** - Auf Tattoo/Vorlage Detail-Seite - Kommentar eingeben - Abschicken - Status: **Pending** (approved = 0) 2. **Admin prüft Kommentar:** - Admin-Panel → Wartende Kommentare - Kommentar lesen - Freigeben oder Löschen 3. **Kommentar wird sichtbar:** - Nach Freigabe - Unter dem Bild angezeigt - Chronologisch sortiert **Schutz vor Spam/Hate:** - Alle Kommentare müssen genehmigt werden - Admin kann unangemessene Kommentare löschen 📧 Kontakt-System Kontaktformular: **Besucher kontaktiert Tätowierer:** 1. **Artist-Profil öffnen** 2. **Kontakt-Bereich:** - Name eingeben - E-Mail eingeben - Betreff (optional) - Nachricht schreiben - Senden 3. **Tätowierer erhält Nachricht:** - Navigation → Nachrichten - Benachrichtigung \"NEU\" - Kann per E-Mail antworten WhatsApp-Integration: **WhatsApp-Button auf Artist-Profil:** Telefon: +49123456789 → WhatsApp-Button erscheint → Click öffnet wa.me/49123456789 **Format:** Ländercode ohne + in URL 🖼️ Lightbox Funktion: - Click auf Bild in Galerie - Bild öffnet sich groß - Dunkler Hintergrund - Click außerhalb → Schließen - X-Button → Schließen **JavaScript:** javascript function openLightbox(src, title) { document.getElementById('lightbox').classList.add('active'); document.getElementById('lightbox-img').src = src; document.getElementById('lightbox-img').alt = title; } function closeLightbox() { document.getElementById('lightbox').classList.remove('active'); } 🐛 Troubleshooting Problem: WebP-Konvertierung funktioniert nicht **Lösung:** 1. PHP GD Extension installiert? bash php -m | grep -i gd 2. WebP-Support in GD aktiviert? php <?php phpinfo(); ?> // Suche nach \"WebP Support\" 3. Falls nicht installiert: bash Ubuntu/Debian sudo apt-get install php-gd sudo systemctl restart apache2 Problem: \"DB Error\" bei Installation **Lösung:** 1. Datenbank existiert? 2. User hat CREATE TABLE Rechte? 3. Credentials korrekt? 4. MySQL-Server läuft? Problem: Bilder werden nicht angezeigt **Lösung:** 1. Ordner-Berechtigungen: bash chmod 755 uploads/ chmod 755 uploads/tattoos/ chmod 755 uploads/templates/ chmod 755 uploads/profiles/ 2. PHP upload_max_filesize erhöhen 3. Pfad in Datenbank prüfen (sollte OHNE \"uploads/\" sein) Problem: \"Headers already sent\" **Lösung:** 1. Keine Ausgabe vor session_start() 2. UTF-8 ohne BOM speichern 3. Keine Leerzeilen am Anfang Problem: Kommentare werden nicht angezeigt **Checklist:** - ✅ Kommentar geschrieben? - ✅ Admin hat freigegeben? (approved = 1) - ✅ Browser-Cache geleert? Problem: WhatsApp-Button funktioniert nicht **Lösung:** 1. Telefonnummer mit Ländercode: +49123456789 2. Keine Leerzeichen oder Sonderzeichen 3. Format wird automatisch bereinigt in Link Problem: Upload schlägt fehl **Lösung:** 1. Datei zu groß? (max 10 MB) 2. Richtiges Format? (JPG, PNG, GIF, WebP) 3. GD Extension aktiv? 4. Schreibrechte auf uploads/? 🔐 Sicherheit Implementierte Schutzmaßnahmen: 1. **SQL Injection geschützt:** - PDO Prepared Statements - Keine direkte String-Konkatenation 2. **XSS geschützt:** - htmlspecialchars() für alle Ausgaben - e() Helper-Funktion 3. **CSRF Schutz:** - Session-basierte Authentifizierung - Regeneration nach Login 4. **File Upload Sicherheit:** - Whitelist für Dateitypen - Größenbeschränkung (10 MB) - Eindeutige Dateinamen (uniqid()) - Directory Listing deaktiviert (index.php) 5. **Session-Sicherheit:** - session_regenerate_id() - Sichere Logout-Funktion - HTTPOnly Cookies Beste Praktiken: 1. **SSL/HTTPS verwenden** (Let's Encrypt kostenlos) 2. **Starkes Admin-Passwort** 3. **Regelmäßige Backups** 4. **PHP aktuell halten** 5. **Mod_Security aktivieren** .htaccess für uploads/: apache <FilesMatch \"\.(php|php3|php4|php5|phtml)$\"> Order Allow,Deny Deny from all </FilesMatch> 💡 Tipps & Tricks Performance optimieren: 1. **Bilder vor Upload optimieren** - Auflösung max 1920x1920 - WebP spart Speicher 2. **Datenbank-Indizes nutzen** - Bereits vorhanden für: - Tags - Städte - PLZ - created_at 3. **Caching aktivieren:** php // In .htaccess <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/webp \"access plus 1 year\" </IfModule> SEO optimieren: 1. **Alt-Tags:** - Titel wird automatisch als alt= verwendet - Gut für Suchmaschinen 2. **Sitemap erstellen:** - Für Tattoos/Vorlagen - Für Artist-Profile 3. **Meta-Tags hinzufügen:** - Open Graph für Social Sharing - Description Tags Werbung optimieren: 1. **A/B Testing:** - Verschiedene Positionen testen - Click-Through-Rate messen 2. **Responsive Ads:** - Mobile-freundliche Banner - Flexible Größen 3. **Google AdSense:** - Code in Admin einfügen - Auto-Ads aktivieren 📊 Admin-Panel Dashboard: **Statistiken:** - Anzahl Benutzer - Anzahl Tattoos - Anzahl Vorlagen - Wartende Kommentare Funktionen: **1. Werbeplätze verwalten:** Header Banner → 728x90 → Unter Navigation Sidebar → 300x250 → Rechts Between Gallery → 468x60 → In Artist-Profil Footer → 728x90 → Am Ende **2. Kommentare moderieren:** Für jeden Kommentar: ├─ Username sehen ├─ Kommentar lesen ├─ ✓ Freigeben ├─ 🗑️ Löschen └─ 👁️ Zum Bild springen **3. Benutzer verwalten:** User-Tabelle: ├─ ID ├─ Username ├─ Email ├─ Typ (User/Artist/Admin) ├─ Status (Aktiv/Gesperrt) ├─ Registrierungsdatum └─ Aktionen: ├─ 🚫 Sperren/Entsperren └─ 🗑️ Löschen 🎨 Design-Anpassungen Farben ändern (style.css): css :root { --primary: 667eea; /* Lila */ --secondary: 764ba2; /* Dunkellila */ --accent: e94560; /* Pink/Rot */ --dark: 1a1a2e; /* Dunkelblau */ --darker: 0f0f1e; /* Fast Schwarz */ } Header-Bild ändern: **In style.css:** css .header { background: linear-gradient(...), url('IHR-BILD.jpg') center/cover; } **Kostenlose Tattoo-Bilder:** - Pixabay: https://pixabay.com/de/images/search/tattoo/ - Unsplash: https://unsplash.com/s/photos/tattoo - Pexels: https://www.pexels.com/search/tattoo/ Layout anpassen: **Bilder pro Zeile ändern (style.css):** css .gallery { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); /* Kleinerer Wert = mehr Bilder pro Zeile */ } 📱 Responsive Design **Breakpoints:** - Desktop: > 768px (volle Navigation) - Mobile: ≤ 768px (Icons only) **Mobile Optimierungen:** - Navigation klappt zu Icons - Sidebar verschwindet - Grid passt sich an - Touch-optimiert 🔄 Backup & Wartung Regelmäßige Backups: **1. Datenbank:** bash mysqldump -u user -p tattoo_db > backup_$(date +%Y%m%d).sql **2. Uploads:** bash tar -czf uploads_backup_$(date +%Y%m%d).tar.gz uploads/ Updates: 1. Backup erstellen 2. Neue Dateien hochladen 3. config.php NICHT überschreiben 4. Testen 📞 Support Bei Problemen: 1. **README durchlesen** (diese Datei) 2. **Troubleshooting-Sektion** checken 3. **PHP Error Logs** prüfen 4. **Browser Console** (F12) prüfen Häufige Fehler: **500 Error:** - PHP Syntaxfehler - Fehlende Extension (GD) - Dateiberechtigungen **404 Error:** - mod_rewrite nicht aktiviert - .htaccess fehlt **Blank Page:** - PHP Error Reporting aktivieren - error_log prüfen 📜 Changelog Version 1.0 (Aktuell) **Features:** - ✅ Dual Account-System (User/Artist) - ✅ Automatische WebP-Konvertierung - ✅ Tag-Generierung aus Titel - ✅ Kommentar-System mit Moderation - ✅ Like-System - ✅ Studio-Profile für Tätowierer - ✅ Kontaktformular - ✅ WhatsApp-Integration - ✅ 4 Werbeplätze - ✅ Admin-Panel - ✅ Suche & Filter - ✅ Lightbox - ✅ Responsive Design 🎯 Roadmap (Zukünftige Features) Mögliche Erweiterungen: - [ ] **Bewertungs-System** (1-5 Sterne für Tätowierer) - [ ] **Buchungs-System** (Termine online buchen) - [ ] **Portfolio-Downloads** (ZIP mit allen Bildern) - [ ] **Social Sharing** (Teilen auf Instagram/Facebook) - [ ] **Newsletter-System** - [ ] **Favoriten-Liste** für User - [ ] **Erweiterte Analytics** (Google Analytics) - [ ] **Multi-Sprache** (EN/DE) - [ ] **Push-Benachrichtigungen** - [ ] **API für Mobile Apps** 🏆 Best Practices Für Tätowierer: 1. **Qualitativ hochwertige Fotos verwenden** 2. **Profil vollständig ausfüllen** 3. **Regelmäßig Portfolio aktualisieren** 4. **Auf Kontaktanfragen schnell antworten** 5. **Öffnungszeiten aktuell halten** Für User: 1. **Aussagekräftige Titel wählen** - ✅ \"Tribal Oberarm Schwarz\" - ❌ \"Mein Tattoo\" 2. **Gute Fotos hochladen** - Heller Hintergrund - Gute Auflösung - Tattoo im Fokus 3. **Tags nutzen** - Erste Wort = wichtig - Beschreibende Begriffe Für Admins: 1. **Kommentare zeitnah freigeben** 2. **Spam/Hate konsequent löschen** 3. **User nur bei Verstößen sperren** 4. **Werbung dezent platzieren** 5. **Regelmäßig Statistiken prüfen** 🌟 Highlights Was macht InkVault besonders? 1. **🎨 Dual-System:** - Tattoos UND Vorlagen getrennt - Verschiedene Zielgruppen 2. **👨🎨 Tätowierer-freundlich:** - Vollständige Studio-Profile - WhatsApp-Integration - Kontaktformular - Portfolio-Präsentation 3. **⚡ Performance:** - WebP = schnelle Ladezeiten - Optimierte Datenbank - Responsive Images 4. **🛡️ Sicherheit:** - Kommentar-Moderation - User-Sperre möglich - Upload-Schutz 5. **🔍 Benutzerfreundlich:** - Automatische Tags - Intuitive Suche - Lightbox - Mobile-optimiert 📄 Lizenz Proprietär - Alle Rechte vorbehalten 🎉 Viel Erfolg mit InkVault! **Entwickelt mit ❤️ für die Tattoo-Community** Bei Fragen oder Problemen: README durchlesen oder Admin kontaktieren. **Version:** 1.0 **Letzte Aktualisierung:** Januar 2025 **Sprache:** Deutsch 🇩🇪
🖼️ Bildschutz - Wasserzeichen auf Bilder 📋 Überblick Professioneller Bildschutz-Service zum Hinzufügen von Wasserzeichen auf Bilder. **Features:** - 🖼️ **Alle Formate:** JPG, PNG, WEBP, GIF, BMP - 📝 **Text oder Logo:** Flexible Wasserzeichen-Typen - ⚡ **Batch-Processing:** Mehrere Bilder gleichzeitig - 🎨 **Anpassbar:** Position, Größe, Farbe, Transparenz - 📱 **Responsive:** Mobile-optimiert - 🚀 **Schnell:** Sofortige Verarbeitung ✨ Features im Detail Unterstützte Formate: | Format | Lesen | Schreiben | Transparenz | |--|-|--|-| | JPG | ✅ | ✅ | ❌ | | PNG | ✅ | ✅ | ✅ | | WEBP | ✅ | ✅ | ✅ | | GIF | ✅ | ✅ | ✅ | | BMP | ✅ | ✅ | ❌ | Wasserzeichen-Typen: **Text-Wasserzeichen:** - Eigener Text (z.B. \"© 2026 Ihr Name\") - Schriftgröße: 10-100px - Farbe: Frei wählbar - Transparenz: 0-100% **Logo-Wasserzeichen:** - Eigenes Logo hochladen - Größe: 50-500px - Position frei wählbar - Transparenz: 0-100% Positionen: - ✅ Unten Rechts (Default) - ✅ Unten Links - ✅ Oben Rechts - ✅ Oben Links - ✅ Mitte Ausgabeformate: - Original beibehalten - Konvertierung zu JPG - Konvertierung zu PNG - Konvertierung zu WEBP 💻 Technische Details Dateien: - **index.php** - Upload & Einstellungen - **process.php** - Verarbeitung (ALLE FORMATE!) - **style.css** - Cyan/Blue Gradient-Design - **protected_images/** - Output-Verzeichnis Logo: svg Cyan→Blue Gradient mit Bild-Icon und ©-Symbol - Skalierbar - Eingebettet PHP-Funktionen: php loadImage() // JPG, PNG, WEBP, GIF, BMP saveImage() // Alle Formate mit Qualität addTextWatermark() // Text mit TrueType addLogoWatermark() // Logo mit Transparenz calculatePosition() // 5 Positionen 🚀 Installation Schritt 1: Dateien hochladen bash Alle Dateien in Webverzeichnis hochladen Schritt 2: Verzeichnisse prüfen bash chmod 755 protected_images/ Schritt 3: PHP-Extensions prüfen bash php -m | grep -E \"gd|imagick\" **Benötigt:** - ✅ GD Library (für Bildverarbeitung) - ✅ PHP 8.0+ empfohlen Schritt 4: TrueType-Font (Optional) bash Für bessere Text-Qualität: Lade arial.ttf herunter und lege es im Root ab **Ohne TTF:** System-Font wird verwendet (funktioniert, aber kleiner) 📖 Benutzung Text-Wasserzeichen: 1. **Bilder hochladen** (Drag & Drop oder Klick) 2. **\"Text\" auswählen** 3. **Text eingeben** (z.B. \"© 2026 Mein Name\") 4. **Schriftgröße einstellen** (10-100px) 5. **Farbe wählen** (Farbwähler) 6. **Position wählen** (z.B. \"Unten Rechts\") 7. **Transparenz einstellen** (0-100%) 8. **\"Wasserzeichen hinzufügen\" klicken** 9. **Geschützte Bilder herunterladen** Logo-Wasserzeichen: 1. **Bilder hochladen** 2. **\"Logo\" auswählen** 3. **Logo hochladen** (PNG mit Transparenz empfohlen) 4. **Logo-Größe einstellen** (50-500px) 5. **Position wählen** 6. **Transparenz einstellen** 7. **\"Wasserzeichen hinzufügen\" klicken** 8. **Geschützte Bilder herunterladen** Batch-Processing: 1. Mehrere Bilder auswählen (Strg/Cmd + Klick) 2. Einstellungen vornehmen 3. Alle Bilder werden mit gleichen Einstellungen verarbeitet 4. Einzeln herunterladen 🎨 Design-Anpassung Farben ändern: **In style.css:** css :root { --primary: 06b6d4; /* Cyan */ --secondary: 3b82f6; /* Blue */ --gradient: linear-gradient(135deg, var(--primary), var(--secondary)); } Logo-Farben: **In index.php (SVG):** html <stop offset=\"0%\" style=\"stop-color:06b6d4\" /> <stop offset=\"100%\" style=\"stop-color:3b82f6\" /> 🐛 Troubleshooting Problem: \"Konnte Bild nicht laden\" **Lösung:** 1. **GD Library installiert?** bash apt install php-gd oder yum install php-gd 2. **PHP neu starten:** bash systemctl restart php-fpm 3. **Format unterstützt?** php <?php print_r(gd_info()); ?> Problem: WEBP nicht unterstützt **Lösung:** bash PHP mit WEBP-Support kompilieren oder apt install php-gd libwebp-dev Problem: Text zu klein **Lösung:** 1. **TTF-Font verwenden:** - arial.ttf herunterladen - In Root-Verzeichnis legen - Automatisch erkannt! 2. **Schriftgröße erhöhen** (im Frontend) Problem: Transparenz geht verloren **Lösung:** - ✅ PNG verwenden (behält Transparenz) - ✅ WEBP verwenden (behält Transparenz) - ❌ JPG verwendet (keine Transparenz möglich) Problem: Zu langsam bei vielen Bildern **Lösung:** 1. **PHP Memory erhöhen:** ini memory_limit = 512M 2. **Max Upload Size erhöhen:** ini upload_max_filesize = 50M post_max_size = 50M 3. **Bilder vorher verkleinern** 🔒 Sicherheit Implementiert: - ✅ **File-Type Validierung** - ✅ **Directory Protection** (.htaccess) - ✅ **XSS-Schutz** (htmlspecialchars) - ✅ **Upload-Limits** Empfehlungen: 1. **HTTPS verwenden** (Let's Encrypt) 2. **Upload-Limit setzen** (max 10MB pro Bild) 3. **Rate-Limiting** (max X Uploads/Stunde) 4. **Temp-Files löschen** (automatisch nach 24h) .htaccess für protected_images/: apache <Files *.php> deny from all </Files> Order Deny,Allow Deny from all Allow from all 📊 Performance Benchmarks (PHP 8.2, 4GB RAM): | Bildgröße | Format | Verarbeitung | |--|--|--| | 1 MB | JPG | ~0.3s | | 2 MB | PNG | ~0.5s | | 3 MB | WEBP | ~0.4s | | 5 MB | GIF | ~1.2s | **Batch (10 Bilder à 2MB):** ~5-8 Sekunden Optimierung: php // In process.php anpassen: imagejpeg($image, $path, 85); // Qualität: 95→85 (schneller) imagepng($image, $path, 6); // Kompression: 9→6 (schneller) 💡 Tipps & Tricks Beste Ergebnisse: 1. **PNG für Logos** (Transparenz!) 2. **Weiße Schrift mit 80% Opacity** (gut sichtbar) 3. **Logo-Größe ~10-15% der Bildgröße** 4. **Position \"Unten Rechts\"** (Standard) Logo vorbereiten: bash Empfohlene Logo-Eigenschaften: Format: PNG Größe: 500x500px (quadratisch) Hintergrund: Transparent Farbe: Weiß oder Hell Batch-Workflow: 1. Alle Bilder in Ordner sammeln 2. Alle hochladen 3. Einstellungen einmal vornehmen 4. Alle verarbeiten 5. ZIP-Download (TODO: Feature) 🚀 Erweiterungen (Zukünftig) **Mögliche Features:** - [ ] ZIP-Download (alle geschützten Bilder) - [ ] Vorschau vor Verarbeitung - [ ] Wasserzeichen-Templates speichern - [ ] Mehrere Wasserzeichen pro Bild - [ ] Gekachelte Wasserzeichen - [ ] Metadata entfernen (EXIF) - [ ] Automatische Größenanpassung - [ ] Cloud-Upload (Dropbox, Google Drive) - [ ] API für Entwickler 🎨 Logo als separate Datei **logo.svg erstellen:** svg <svg width=\"200\" height=\"200\" xmlns=\"http://www.w3.org/2000/svg\"> <defs> <linearGradient id=\"grad\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\"> <stop offset=\"0%\" style=\"stop-color:06b6d4\" /> <stop offset=\"100%\" style=\"stop-color:3b82f6\" /> </linearGradient> </defs> <rect x=\"40\" y=\"60\" width=\"120\" height=\"90\" rx=\"8\" fill=\"url(grad)\"/> <circle cx=\"70\" cy=\"95\" r=\"12\" fill=\"white\" opacity=\"0.8\"/> <path d=\"M 50 130 L 75 105 L 105 130 L 135 105 L 135 145 L 50 145 Z\" fill=\"white\" opacity=\"0.8\"/> <text x=\"100\" y=\"180\" font-family=\"Arial\" font-size=\"24\" fill=\"white\" text-anchor=\"middle\" font-weight=\"bold\">©</text> </svg> **Einbinden:** html <img src=\"logo.svg\" alt=\"Bildschutz\" width=\"60\" height=\"60\"> 📝 Beispiel-Workflows Fotograf: 1. Shooting-Fotos hochladen 2. Logo mit Firmenname hochladen 3. Position: Unten Rechts 4. Transparenz: 70% 5. Verarbeiten 6. An Kunden senden Designer: 1. Portfolio-Bilder schützen 2. Text: \"© 2026 Designer Name\" 3. Schriftgröße: 24px 4. Position: Unten Links 5. Transparenz: 60% 6. Auf Website hochladen E-Commerce: 1. Produktfotos hochladen 2. Text: \"Nur bei Shop.de\" 3. Position: Mitte 4. Transparenz: 40% (gut sichtbar) 5. In Shop einbinden 📞 Support **Bei Problemen:** 1. README durchlesen 2. Troubleshooting checken 3. GD Library prüfen 4. PHP Error Log checken 📄 Rechtliches Wichtig: - ✅ Nur eigene Bilder schützen - ✅ Oder mit Erlaubnis des Fotografen - ⚠️ Wasserzeichen sind **kein 100% Schutz** - ⚠️ Technisch versierte können sie entfernen Best Practice: 1. Wasserzeichen + niedrige Auflösung (Web) 2. Originale nur nach Kauf/Bezahlung 3. Wasserzeichen über wichtige Bildbereiche 4. Kombination: Text + Logo 🎯 Best Practices User Experience: 1. **Einfacher Upload** (Drag & Drop) 2. **Live-Vorschau** (TODO) 3. **Schnelle Verarbeitung** 4. **Klare Download-Buttons** Code Quality: 1. **Alle Formate unterstützt** 2. **Error-Handling** 3. **Memory-Limits beachten** 4. **Sauberer Code** 📈 Format-Support-Matrix | Format | PHP GD | ImageMagick | Empfohlen für | |--|--|-|| | JPG | ✅ | ✅ | Fotos | | PNG | ✅ | ✅ | Grafiken | | WEBP | ✅* | ✅ | Web | | GIF | ✅ | ✅ | Animationen** | | BMP | ✅ | ✅ | Legacy | \* Benötigt libwebp ** Nur erstes Frame wird verarbeitet 📝 Changelog Version 2.0 (Aktuell) **Features:** - ✅ Komplett neu in PHP 8.4 - ✅ Alle Formate: JPG, PNG, WEBP, GIF, BMP - ✅ Text & Logo-Wasserzeichen - ✅ Batch-Processing - ✅ Anpassbare Positionen - ✅ Transparenz-Kontrolle - ✅ Format-Konvertierung - ✅ Modernes Design (Cyan/Blue) - ✅ Mobile-optimiert **Technisch:** - ✅ GD Library - ✅ TrueType Font Support - ✅ Alpha-Channel Handling - ✅ Memory-effizient 🏆 Credits **Design inspiriert von:** - Watermarkly - uMark - iWatermark **Powered by:** - PHP GD Library - TrueType Fonts 📄 Lizenz Proprietär - Alle Rechte vorbehalten 🎉 Viel Erfolg mit Bildschutz! **Version:** 2.0 **Stand:** Januar 2026 **Sprache:** Deutsch 🇩🇪 **PRODUKTIONSBEREIT!** 🚀 🆘 Quick-Start bash 1. Dateien hochladen 2. Browser öffnen 3. Bild hochladen 4. Einstellungen vornehmen 5. Verarbeiten 6. Herunterladen! Für bessere Qualität: - arial.ttf herunterladen - Im Root ablegen - Fertig! **Text-Wasserzeichen:** Schnell & einfach **Logo-Wasserzeichen:** Professionell **Batch-Processing:** Effizient! 💪
🎬 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! 🔥
📱 QR Portal - Professionelle QR-Codes 📋 Überblick Komplettes QR-Code-Portal mit User-Management, vielfältigen QR-Typen, individueller Gestaltung und EU-Zahlungs-QR-Codes. **Features:** - 👤 **User-System:** Registrierung & Login - 📱 **12 QR-Typen:** URL, Text, Zahlungen, Produkte, Downloads, Bücher, WiFi, vCard, etc. - 💶 **EU-Zahlungen:** SEPA QR (IBAN) & PayPal - 🎨 **Individuell:** Eigene Farben & Logo - 💾 **Speichern:** Alle QR-Codes in Datenbank - 📊 **Statistiken:** Scans tracken - ⬇️ **Download:** PNG-Format ✨ QR-Code Typen 1. **URL / Link** 🌐 - Webseiten - Social Media Profile - Online-Shops 2. **Text / Info** 📄 - Produktinfos - Anleitungen - Beschreibungen 3. **SEPA Zahlung** 💶 - **EU-konform!** - IBAN eingeben - Empfängername - Betrag (optional) - Verwendungszweck - **Funktioniert mit jeder Banking-App!** 4. **PayPal Zahlung** 💳 - PayPal Username/Email - Betrag (optional) - Erstellt paypal.me Link 5. **Produkt** 📦 - Produktseiten - Zusatzinfos - Support-Links 6. **Download** ⬇️ - PDFs - Software - Dateien 7. **Buch** 📚 - Zusatzinfos - Leseproben - Autor-Website 8. **E-Mail** 📧 - Mailto-Link - Öffnet E-Mail-App 9. **Telefon** 📱 - Tel-Link - Direktanruf 10. **SMS** 💬 - SMS-Link - Vorbefüllte Nummer 11. **WiFi** 📶 - WLAN-Zugang - SSID + Passwort - Verschlüsselung (WPA/WEP) - **Ein Scan = Verbunden!** 12. **vCard (Visitenkarte)** 👤 - Name - Telefon - E-Mail - Direkt in Kontakte speichern 💻 Technische Details Dateien: - **config.php** - Konfiguration (von install.php) - **functions.php** - Hilfsfunktionen - **install.php** - Installation - **style.css** - Design (Lila/Pink Gradient) - **login.php** - Login & Registrierung - **logout.php** - Logout - **index.php** - Startseite - **create.php** - QR-Code Generator (HERZSTÜCK!) - **dashboard.php** - User-Dashboard - **qr_codes/** - Generierte QR-Codes - **logos/** - Hochgeladene Logos Datenbank (2 Tabellen): **qr_users:** - id, username, email, password_hash - created_at **qr_codes:** - id, user_id, title, type - data (QR-Inhalt) - qr_color, qr_bgcolor, qr_size - logo_filename, filename - short_code (für Tracking) - scan_count - created_at, updated_at 🚀 Installation Schritt 1: Dateien hochladen bash Alle Dateien auf Webserver hochladen Schritt 2: Verzeichnisse prüfen bash chmod 755 qr_codes/ chmod 755 logos/ Schritt 3: install.php aufrufen https://deine-domain.de/install.php Schritt 4: Daten eingeben - DB Host: `localhost` - DB Name: `qr_portal` - DB User: `db_user` - DB Password: `db_password` - Portal-Name: `QR Portal` (oder eigener Name) Schritt 5: Installation abschließen - 2 Tabellen werden erstellt - install.php löscht sich selbst - **Fertig!** 📖 Benutzung Als User: 1. **Registrieren** auf der Startseite 2. **Login** mit E-Mail & Passwort 3. **\"+ QR erstellen\" klicken** 4. **Typ auswählen** (z.B. \"SEPA Zahlung\") 5. **Daten eingeben** (IBAN, Betrag, etc.) 6. **Design anpassen:** - Farbe wählen (Standard: Schwarz) - Größe wählen (300-1000px) - Logo hochladen (optional) 7. **\"QR-Code generieren\" klicken** 8. **Im Dashboard:** - Alle QR-Codes sehen - Downloaden (PNG) - Statistiken (Scans) - Löschen 💶 SEPA QR-Code (EPC) Was ist das? **SEPA QR-Codes** (auch \"EPC QR\" genannt) sind der **EU-Standard** für Überweisungen per QR-Code. Wie funktioniert's? 1. **QR-Code erstellen** mit: - Empfängername - IBAN - Betrag (optional) - Verwendungszweck (optional) 2. **Kunde scannt** mit Banking-App 3. **Überweisung ist vorausgefüllt!** - Name ✅ - IBAN ✅ - Betrag ✅ - Verwendungszweck ✅ 4. **Kunde muss nur noch bestätigen** Vorteile: - ✅ **Keine Tippfehler** bei IBAN - ✅ **Schneller** als manuell - ✅ **Weniger Fehler** - ✅ **Professionell** Wo nutzen? - 💰 **Rechnungen** (PDF mit QR) - 🛒 **Geschäfte** (an der Kasse) - 📄 **Mahnungen** - 🎫 **Tickets & Events** - 🏪 **Marktstände** Welche Apps unterstützen das? **Alle deutschen Banking-Apps:** - Sparkasse ✅ - Volksbanken ✅ - Deutsche Bank ✅ - Commerzbank ✅ - N26 ✅ - ING ✅ - etc. 🎨 Design-Anpassung Farben: **Standard:** - QR-Code: Schwarz (000000) - Hintergrund: Weiß (ffffff) **Anpassbar:** - Jede beliebige Farbe! - Empfehlung: Dunkle Farben für QR, heller Hintergrund - Kontrast wichtig für Scanbarkeit! **Beispiele:** - Blau: 0066cc - Rot: cc0000 - Grün: 00cc00 - Lila: 6600cc Logo: **Empfohlene Eigenschaften:** - Format: PNG (mit Transparenz) - Größe: Quadratisch (z.B. 500x500px) - Farbe: Einfarbig oder wenig Details - Hintergrund: Transparent - Platzierung: Automatisch mittig (20% der QR-Größe) **Hinweis:** Logo wird mit weißem Rand platziert für bessere Scanbarkeit. Größen: - **300x300:** Klein (für Print) - **400x400:** Standard - **500x500:** Groß - **1000x1000:** Sehr groß (für Poster) 🔧 Wie QR-Generierung funktioniert Technischer Ablauf: 1. **Daten sammeln** (aus Formular) 2. **Format erstellen:** - URL: `https://example.com` - SEPA: EPC-Format (spezielle Struktur) - WiFi: `WIFI:T:WPA;S:Name;P:Pass;;` - vCard: `BEGIN:VCARD...END:VCARD` 3. **QR mit Google Charts API generieren** 4. **Farben anpassen** (Pixel-Manipulation) 5. **Logo hinzufügen** (falls hochgeladen) 6. **Als PNG speichern** 7. **In Datenbank eintragen** Google Charts API: https://chart.googleapis.com/chart?cht=qr&chs=400x400&chl=DATEN **Kostenlos & Zuverlässig!** 💡 Anwendungsfälle E-Commerce: Produkt: Stuhl \"Nordic Style\" QR-Typ: Produkt URL: https://shop.de/stuhl-nordic-123 → Kunde scannt, kommt direkt zur Produktseite Restaurant: Speisekarte-Download QR-Typ: Download URL: https://restaurant.de/speisekarte.pdf → Kunde scannt, PDF öffnet sich Autor / Verlag: Buch: \"Mein Roman\" QR-Typ: Buch URL: https://autor.de/buch-extras → Leser scannt, bekommt Zusatzinfos Handwerker / Dienstleister: Rechnung QR-Typ: SEPA Zahlung IBAN: DE89 3704 0044 0532 0130 00 Betrag: 450,00 EUR Verwendungszweck: Rechnung 2024-123 → Kunde scannt, zahlt in 10 Sekunden Event / Konzert: WiFi-Zugang für Gäste QR-Typ: WiFi SSID: EventWLAN Passwort: Konzert2024 → Gast scannt, ist verbunden 🐛 Troubleshooting Problem: QR-Code wird nicht gescannt **Lösung:** - Kontrast erhöhen (dunkler QR, heller Hintergrund) - Größe erhöhen (mindestens 300px) - Logo kleiner machen oder entfernen - Auf glattem Untergrund drucken Problem: SEPA QR funktioniert nicht **Lösung:** - IBAN korrekt? (ohne Leerzeichen speichern) - Betrag im richtigen Format? (mit Punkt, nicht Komma) - Banking-App aktuell? Problem: Logo zu groß **Lösung:** - Wird automatisch auf 20% skaliert - Wenn QR nicht scannbar: Logo entfernen oder kleiner machen Problem: Kann kein Logo hochladen **Lösung:** - Nur PNG oder JPG - Max 2MB - Verzeichnis `logos/` beschreibbar? (`chmod 755`) 📊 Statistiken & Tracking Scan-Tracking: **Aktuell:** Einfacher Zähler in DB **Zukünftig möglich:** - Redirect-URL für Tracking - Scan-Zeitpunkt - Gerät-Info - Standort (mit Erlaubnis) Implementierung (optional): php // scan.php?code=abc123 $stmt = db()->prepare(\"UPDATE qr_codes SET scan_count = scan_count + 1 WHERE short_code = ?\"); $stmt->execute([$_GET['code']]); redirect('actual-url'); 🔒 Sicherheit Implementiert: - ✅ **Password Hashing** (PHP password_hash) - ✅ **SQL Injection Schutz** (PDO Prepared Statements) - ✅ **XSS Schutz** (htmlspecialchars) - ✅ **Session Security** (regenerate_id) - ✅ **Foreign Keys** (CASCADE delete) Empfehlungen: 1. **HTTPS verwenden** (Let's Encrypt kostenlos) 2. **Starke Passwörter** erzwingen 3. **Regelmäßige Backups** 4. **Upload-Limits** (Datei-Größe) 🚀 Erweiterungen (Zukünftig) **Mögliche Features:** - [ ] Scan-Tracking (Zeitpunkt, Gerät, Standort) - [ ] QR-Templates (vordefinierte Designs) - [ ] Batch-Generierung (CSV-Import) - [ ] API für Entwickler - [ ] QR-Code bearbeiten - [ ] Ablaufdatum für QR-Codes - [ ] Analytics-Dashboard - [ ] Team-Accounts (mehrere User) - [ ] White-Label (eigenes Branding) 📝 SEPA EPC QR-Code Format Technische Details: Zeile 1: BCD (Service Tag) Zeile 2: 002 (Version) Zeile 3: 1 (Character Set: UTF-8) Zeile 4: SCT (Identification: SEPA Credit Transfer) Zeile 5: [leer] (BIC - optional) Zeile 6: Max Mustermann (Name) Zeile 7: DE89370400440532013000 (IBAN) Zeile 8: EUR450.00 (Amount) Zeile 9: [leer] (Purpose - optional) Zeile 10: [leer] (Structured Reference - optional) Zeile 11: Rechnung 123 (Unstructured Remittance) Zeile 12: [leer] (Beneficiary to Originator - optional) **Wichtig:** - Jede Zeile mit ` ` getrennt - Betrag mit Punkt, nicht Komma - IBAN ohne Leerzeichen 🎯 Best Practices QR-Code Design: 1. **Hoher Kontrast:** Schwarz auf Weiß ist am besten 2. **Nicht zu klein:** Mindestens 300x300px 3. **Sauber drucken:** Keine Verzerrung 4. **Logo optional:** Nur wenn QR noch scannbar SEPA QR: 1. **Betrag angeben:** Kunde muss nichts tippen 2. **Verwendungszweck:** Eindeutige Referenz (Rechnung 123) 3. **Testen:** Vor Druck mit eigener Banking-App testen Allgemein: 1. **Titel vergeben:** Für bessere Organisation 2. **Regelmäßig prüfen:** QR-Codes auf Funktion testen 3. **Statistiken nutzen:** Scan-Zahlen auswerten 📄 Rechtliches DSGVO: **Gespeicherte Daten:** - Username, E-Mail, Passwort (gehasht) - QR-Code Daten (URLs, IBAN, etc.) - Scan-Statistiken **Rechte:** - Account löschen (TODO: implementieren) - Daten exportieren (TODO: implementieren) SEPA QR: - **Kein Payment-Provider:** Portal generiert nur QR-Code - **Keine Zahlung:** Überweisung erfolgt über Bank - **Keine Haftung:** User verantwortlich für korrekte IBAN 📞 Support **Bei Problemen:** 1. README durchlesen 2. Troubleshooting checken 3. Browser-Konsole prüfen (F12) 4. PHP Error-Log checken 📝 Changelog Version 1.0 (Aktuell) **Features:** - ✅ User-System (Login, Register) - ✅ 12 QR-Typen - ✅ SEPA EPC QR-Codes (EU-Standard!) - ✅ PayPal QR-Codes - ✅ Individuelle Farben - ✅ Logo-Upload - ✅ Dashboard mit Statistiken - ✅ Download als PNG - ✅ Datenbank-Speicherung **Technisch:** - ✅ PHP 8.0+ kompatibel - ✅ Moderne UI (Gradient-Design) - ✅ Responsive (Mobile) - ✅ Google Charts API - ✅ GD Library (Bildbearbeitung) 🎉 Viel Erfolg mit deinem QR Portal! **Version:** 1.0 **Stand:** Januar 2026 **Sprache:** Deutsch 🇩🇪 **PRODUKTIONSBEREIT!** 🚀 🆘 Quick-Start bash 1. Dateien hochladen 2. install.php aufrufen 3. DB-Daten eingeben 4. Installieren 5. Registrieren 6. QR-Code erstellen! SEPA QR in 60 Sekunden: 1. Login 2. \"+ QR erstellen\" 3. Typ: \"SEPA Zahlung\" 4. IBAN eingeben 5. Betrag: 100,00 EUR 6. Generieren 7. Download 8. Ausdrucken auf Rechnung 9. Kunde scannt & zahlt! **12 QR-TYPEN - SEPA ZAHLUNG - LOGO - FARBEN - PROFESSIONELL!** 💪
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)
# 📡 RSS-Verzeichnis – PHP-Skript Kostenloses RSS-Feed-Verzeichnis in PHP 8.0+ mit Live-Feed-Vorschau, RSS-Button-Generator, OPML-Export und Admin-Panel. ## Features - **Feed-Verzeichnis** – Kategorien mit Zähler, Suche & Filter, Sortierung - **Feed-Eintragen** – Gäste UND registrierte Nutzer (konfigurierbar) - **Live Feed-Vorschau** – Integrierter Feed-Reader mit bis zu 20 Beiträgen - **RSS-Button Generator** – HTML-Code in 4 Farben + 3 Größen - **OPML-Export** – Alle Feeds oder nach Kategorie gefiltert - **RSS-Feed des Verzeichnisses** – /rss.php - **2FA per E-Mail** – 6-stelliger Code, 10 Min. gültig - **Admin-Panel** – Feeds freischalten/ablehnen, Nutzerverwaltung, Einstellungen ## Installation 1. ZIP entpacken auf Webserver 2. Datenbank anlegen (MySQL/MariaDB, UTF-8) 3. Browser: `https://ihredomain.de/install.php` 4. Schritt 1: Datenbankverbindung eingeben 5. Schritt 2: Admin-Konto + SMTP konfigurieren 6. `install.php` löscht sich automatisch ## Standard-Kategorien (18) Auto & Motorrad, Bildung & Beruf, Business, Computer & Technik, Finanzen, Freizeit & Hobby, Gesellschaft, Gesundheit, Internet, Kostenlos & Gratis, Kunst & Kultur, Medien, Nachrichten, Reisen, Sport, Versicherungen, Wirtschaft, Sonstiges ## Dateistruktur ``` / ├── install.php Installationsassistent (löscht sich selbst) ├── config.php Konfiguration (auto-generiert) ├── functions.php Alle Hilfsfunktionen ├── index.php Startseite ├── verzeichnis.php Feed-Verzeichnis mit Suche & Filter ├── feed-eintragen.php Feed einreichen (Gäste + Login) ├── feed-vorschau.php Live Feed-Reader + Feed-Details ├── rss-button.php RSS-Button Generator ├── opml-export.php OPML Download ├── rss.php RSS-Feed des Verzeichnisses ├── click.php Klick-Tracker + Redirect ├── login.php Login mit 2FA ├── register.php Registrierung ├── logout.php Abmelden ├── konto.php Konto-Verwaltung + 2FA-Toggle ├── /admin/ │ ├── index.php Admin Dashboard │ ├── websites.php Feed-Verwaltung │ ├── users.php Nutzerverwaltung │ └── settings.php System-Einstellungen ├── /includes/ │ ├── header.php Navigation + CSS │ └── footer.php Footer ├── /emails/ E-Mail-Templates ├── /uploads/logos/ Feed-Logos (WebP) └── /logs/ Server-Logs ``` ## Admin-Panel URL: `/admin/index.php` - **Dashboard** – Statistiken, ausstehende Feeds - **Feed-Verwaltung** – Freischalten/Ablehnen mit E-Mail, Featured markieren - **Nutzerverwaltung** – Aktivieren/Sperren/Löschen, 2FA-Reset - **Einstellungen** – Website-Name/URL, SMTP, Gäste erlauben, Auto-Approve ## Sicherheit - PDO Prepared Statements überall - CSRF-Token-Schutz auf allen Formularen - bcrypt Passwort-Hashing (Cost 12) - HttpOnly Session-Cookies - XSS-Schutz via htmlspecialchars() - Upload-Schutz (index.php in Upload-Ordnern) - WebP-Konvertierung für alle Bild-Uploads ## E-Mail-Templates | Datei | Zweck | |-------|-------| | twofa.php | 2FA-Code bei Login | | welcome.php | Willkommen nach Registrierung | | feed_submitted.php | Bestätigung nach Einreichen | | feed_approved.php | Feed wurde freigeschaltet | | feed_rejected.php | Feed abgelehnt + Grund | | admin_new_feed.php | Admin: Neuer Feed eingereicht | ## Anforderungen - PHP 8.0+ (empfohlen: 8.2+) - MySQL 5.7+ / MariaDB 10.3+ - PHP-Extensions: PDO, GD, finfo, SimpleXML - Webserver: Apache / Nginx ## Troubleshooting **WebP-Konvertierung schlägt fehl:** ``` php -m | grep gd ``` GD-Extension aktivieren in php.ini: `extension=gd` **Feed-Vorschau lädt nicht:** - `allow_url_fopen = On` in php.ini prüfen - Oder cURL aktiviert? **E-Mails kommen nicht an:** - SMTP-Einstellungen in Admin → Einstellungen prüfen - Port 587 (STARTTLS) oder 465 (SSL) - Leer lassen → PHP mail() als Fallback **Gäste können nicht eintragen:** - Admin → Einstellungen → \"Gäste dürfen eintragen\" auf Ja --- PHP 8.0+ · MySQL · Kostenlos · Keine Abhängigkeiten
# 🕷 MetaCrawler ### AI-powered SEO Meta Generator · v1.0.0 MetaCrawler crawlt das Web nach einem Stichwort oder einer URL, analysiert die gefundenen Seiten und generiert mithilfe einer KI automatisch **3 optimierte Vorschläge** für Titel, Meta-Description und Keywords. Zusätzlich können vollständige Artikel generiert werden. **Komplett kostenlos nutzbar · Kein Login · Kein Abo · Einmal einrichten, dauerhaft nutzen.** --- ## ✨ Features | Feature | Beschreibung | |---|---| | 🔍 **Web-Crawling** | Bing, DuckDuckGo, Wikipedia + direkte URLs | | 🤖 **Multi-Provider AI** | OpenAI, Claude, Gemini, Mistral, Ollama | | 📊 **3 Vorschläge** | Titel (50–60 Z.), Description (150–160 Z.), Keywords | | 📝 **Artikel-Generator** | ~800 Wörter, 4 Schreibstile, DE + EN | | 🧠 **Lernpool** | Wörter aus Crawls werden gespeichert & gewichtet | | 📥 **JSON-Export** | Jede Analyse als JSON-Datei exportierbar | | 💾 **SQLite** | Kein MySQL nötig – läuft auf jedem Hosting | | 🌐 **DE + EN** | Deutsche und englische Ausgabe wählbar | --- ## 🚀 Installation ### 1. Voraussetzungen | Anforderung | Version | |---|---| | PHP | 8.0 oder höher | | cURL Extension | Pflicht | | PDO SQLite Extension | Pflicht | | Schreibrechte | `storage/` und `logs/` Ordner | ### 2. Dateien hochladen Alle Dateien in ein Verzeichnis auf dem Webserver hochladen, z.B.: ``` https://ihre-domain.de/metacrawler/ ``` ### 3. config.php anpassen ```php // Provider wählen define('AI_PROVIDER', 'claude'); // openai | claude | gemini | mistral | ollama // Nur den gewählten Provider ausfüllen: define('CLAUDE_API_KEY', 'sk-ant-...'); define('CLAUDE_MODEL', 'claude-3-5-haiku-20241022'); ``` ### 4. Ordner-Rechte setzen ```bash chmod 755 storage/ chmod 755 logs/ ``` ### 5. Fertig – aufrufen ``` https://ihre-domain.de/metacrawler/ ``` Die SQLite-Datenbank wird beim ersten Aufruf automatisch erstellt. --- ## 🤖 AI-Provider Übersicht ### OpenAI - **API-Key**: https://platform.openai.com/api-keys - **Empfohlenes Modell**: `gpt-4o-mini` (günstig, schnell) - **Kosten**: ~$0.15 / 1M Input-Tokens ```php define('AI_PROVIDER', 'openai'); define('OPENAI_API_KEY', 'sk-...'); define('OPENAI_MODEL', 'gpt-4o-mini'); ``` --- ### Anthropic Claude - **API-Key**: https://console.anthropic.com/ - **Empfohlenes Modell**: `claude-3-5-haiku-20241022` (schnell & günstig) - **Kosten**: ~$0.25 / 1M Input-Tokens ```php define('AI_PROVIDER', 'claude'); define('CLAUDE_API_KEY', 'sk-ant-...'); define('CLAUDE_MODEL', 'claude-3-5-haiku-20241022'); ``` --- ### Google Gemini - **API-Key**: https://makersuite.google.com/app/apikey - **Empfohlenes Modell**: `gemini-1.5-flash` - **Kosten**: Kostenlos bis 1M Tokens/Monat ```php define('AI_PROVIDER', 'gemini'); define('GEMINI_API_KEY', 'AIza...'); define('GEMINI_MODEL', 'gemini-1.5-flash'); ``` --- ### Mistral AI - **API-Key**: https://console.mistral.ai/api-keys/ - **Empfohlenes Modell**: `mistral-small-latest` - **Kosten**: ~$0.20 / 1M Tokens ```php define('AI_PROVIDER', 'mistral'); define('MISTRAL_API_KEY', '...'); define('MISTRAL_MODEL', 'mistral-small-latest'); ``` --- ### Ollama (lokal – kostenlos) - **Download**: https://ollama.ai - **Kein API-Key nötig** – läuft komplett lokal - **Kosten**: 100% kostenlos ```bash # Ollama installieren & Modell laden ollama pull llama3.2 ollama serve ``` ```php define('AI_PROVIDER', 'ollama'); define('OLLAMA_HOST', 'http://localhost:11434'); define('OLLAMA_MODEL', 'llama3.2'); ``` > **Hinweis:** Ollama funktioniert nur wenn MetaCrawler auf demselben Server > wie Ollama läuft (Localhost). Für Shared-Hosting empfiehlt sich ein Cloud-Provider. --- ## 📁 Dateistruktur ``` metacrawler/ ├── config.php ← Konfiguration (Provider, API-Keys) ├── index.php ← Hauptseite: Analyse & 3 Vorschläge ├── artikel.php ← Artikel-Generator ├── history.php ← Analyse-Verlauf ├── keywords.php ← Keyword-Lernpool visualisiert ├── einstellungen.php ← Setup-Übersicht & Systeminfo │ ├── includes/ │ ├── header.php ← Navigation & CSS │ ├── footer.php ← Footer │ ├── crawler.php ← Web-Crawling Engine (cURL + Parser) │ ├── ai.php ← Multi-Provider AI Interface │ └── storage.php ← SQLite Datenbankschicht & Lernfunktion │ ├── storage/ │ ├── metacrawler.db ← SQLite Datenbank (auto-erstellt) │ └── exports/ ← JSON-Exporte │ └── logs/ ← Fehler-Logs ``` --- ## 🧠 Lernfunktion Bei jeder Analyse extrahiert MetaCrawler die häufigsten Wörter aus allen gecrawlten Seiten und speichert sie in der lokalen SQLite-Datenbank (`keywords`-Tabelle). **Was passiert konkret:** - Stoppwörter (der, die, das, the, and, ...) werden gefiltert - Wörter unter 3 Zeichen werden ignoriert - Jedes Wort erhält einen Häufigkeitszähler - Bei erneuter Verwendung wird der Zähler erhöht **Auswirkung:** - Auf der Hauptseite werden verwandte Keywords aus dem Lernpool vorgeschlagen - Je mehr Analysen, desto treffsicherer die Vorschläge - Unter `keywords.php` ist der gesamte Lernpool als Wortwolke sichtbar --- ## 📊 Seiten-Übersicht ### 🔍 index.php – Analyse Stichwort oder URL eingeben → Web wird gecrawlt → KI generiert 3 Vorschläge. Jeder Vorschlag enthält: - **Title Tag** mit Zeichenzähler (Ziel: 50–60 Zeichen, grün markiert) - **Meta Description** mit Zeichenzähler (Ziel: 150–160 Zeichen) - **Keywords** als klickbare Tags - **\"Alles kopieren\"** Button – alle 3 Felder in einem Rutsch ### 📝 artikel.php – Artikel-Generator Generiert einen ~800-Wörter-Artikel auf Basis gecrawlter Daten. Schreibstile: - **Informativ** – sachlich, für breites Publikum - **Blog** – locker, persönlich, mit \"Ich/Wir\" - **SEO-optimiert** – höhere Keyword-Dichte - **Verkauf** – überzeugend, mit Call-to-Actions ### 📋 history.php – Verlauf Alle bisherigen Analysen. Details und JSON-Export pro Eintrag. ### 🏷 keywords.php – Lernpool Alle gesammelten Keywords als gewichtete Wortwolke. Je häufiger ein Begriff gefunden wurde, desto größer dargestellt. ### ⚙️ einstellungen.php – Setup - Übersicht aller Provider mit Konfigurationsbeispielen - Links zu den jeweiligen API-Key-Seiten - Systemprüfung (PHP-Version, cURL, SQLite, Schreibrechte) --- ## 🔧 Konfigurationsreferenz ```php // config.php – alle Optionen // Provider (eines wählen) define('AI_PROVIDER', 'claude'); // openai | claude | gemini | mistral | ollama // Crawling-Einstellungen define('CRAWL_TIMEOUT', 10); // Sekunden pro Request define('CRAWL_MAX_URLS', 5); // Max. zu crawlende URLs pro Analyse define('CRAWL_USER_AGENT', '...'); // User-Agent-String // Limits define('FREE_SUGGESTIONS', 3); // Anzahl Vorschläge pro Analyse define('FREE_ARTICLE_LEN', 800); // Ziel-Wortanzahl für Artikel // Sprache define('DEFAULT_LANG', 'de'); // de | en define('TIMEZONE', 'Europe/Berlin'); ``` --- ## 🔒 Sicherheitshinweise - Die `config.php` enthält API-Keys – Zugriff per `.htaccess` schützen: ```apache # .htaccess im Hauptverzeichnis <Files \"config.php\"> Order allow,deny Deny from all </Files> ``` - Den `storage/` Ordner vor direktem Webzugriff schützen: ```apache # storage/.htaccess Deny from all ``` - Den `logs/` Ordner ebenfalls schützen: ```apache # logs/.htaccess Deny from all ``` --- ## 🗺 Geplante Erweiterungen (Roadmap) > Diese Features sind **noch nicht implementiert** und können in einer späteren Version > hinzugefügt werden. ### 👤 Benutzerverwaltung (Login/Register) - Eigene Analyse-Historien pro Nutzer - Eigene Keyword-Listen und Projekte - Getrennte Lernpools pro Nutzer ### 💳 Premium-Modell - Kostenlose Version: 3 Analysen/Tag - Premium (Einmalkauf oder Abo): Unbegrenzte Analysen - PayPal IPN Integration (analog PasswortBox) ### 📦 Projekt-Verwaltung - Mehrere URLs/Keywords als \"Projekt\" zusammenfassen - Regelmäßige Re-Analyse (Cron-Job) mit Änderungs-Benachrichtigung - Vergleich: Wie haben sich Rankings verändert? ### 🔄 Bulk-Analyse - CSV-Upload mit mehreren Keywords/URLs - Batch-Verarbeitung im Hintergrund - Export als Excel/CSV ### 📈 Ranking-Tracking - Keyword-Positionen bei Google/Bing tracken - Historische Verläufe und Grafiken - Benachrichtigung bei Positions-Änderungen ### 🌍 Mehr Crawling-Quellen - Google (mit Proxy-Rotation) - Reddit, Quora für Community-Keywords - Amazon (für Produkt-Keywords) - YouTube (für Video-SEO) ### 🔌 API-Endpunkt - REST-API für externe Anbindung - Webhook-Support - WordPress-Plugin --- ## ❓ Häufige Fragen **Warum werden manchmal keine Ergebnisse gefunden?** Manche Websites blockieren Crawler. Versuche ein anderes Stichwort oder eine direkte URL einer zugänglichen Seite. **Warum ist die AI-Antwort manchmal unvollständig?** Bei günstigeren Modellen (z.B. Haiku, gpt-4o-mini) kann das Token-Limit erreicht werden. In `ai.php` den `$maxTokens`-Wert in der `complete()`-Methode erhöhen. **Kann ich MetaCrawler auf Shared-Hosting betreiben?** Ja, solange PHP 8+, cURL und PDO-SQLite verfügbar sind. Ollama funktioniert nur auf eigenen Servern (VPS/Root-Server). **Wo werden die Daten gespeichert?** Ausschließlich lokal in `storage/metacrawler.db` (SQLite). Es werden keine Daten an externe Server gesendet außer an den gewählten AI-Provider. **Wie kann ich den Lernpool zurücksetzen?** Die Datei `storage/metacrawler.db` löschen. Sie wird beim nächsten Aufruf neu erstellt. --- ## 📄 Lizenz MIT Einzel-License – frei verwendbar, anpassbar. Bei Weitergabe bitte diese README beilegen. --- *MetaCrawler v1.0.0 · Erstellt mit PHP 8 · SQLite · Web Crypto API*