3.8 KiB
3.8 KiB
PHP Übungsaufgaben: PDO & File Handling
PDO Aufgaben
Aufgabe 1: Benutzerverwaltung mit PDO X
Erstelle ein Verwaltungssystem für Benutzer mit folgenden Features:
- Datenbank
benutzer_verwaltungmit Tabelleusers(id, username, email, created_at, status) - CRUD-Operationen (Create, Read, Update, Delete) mit PDO
- Prepared Statements für alle Queries
- Error Handling mit try-catch
- Pagination für die Benutzeranzeige (20 Benutzer pro Seite)
Bonusaufgabe: Implementiere eine Suchfunktion, die nach username oder email filtert.
Aufgabe 2: Transaktionen und Rollback X
Erstelle ein Bestell-System mit zwei Tabellen:
produkte(id, name, preis, lagerbestand)bestellungen(id, produkt_id, anzahl, datum)
Implementiere eine Bestellfunktion, die:
- Den Lagerbestand prüft
- Bei ausreichendem Lager eine Bestellung anlegt UND den Lagerbestand reduziert
- PDO-Transaktionen nutzt (beginTransaction, commit, rollback)
- Bei Fehlern oder fehlendem Lagerbestand einen Rollback durchführt
File Handling Aufgaben
Aufgabe 3: Log-System (TXT)
Entwickle ein mehrstufiges Logging-System:
- Schreibe Logs in verschiedene Dateien:
error.log,access.log,debug.log - Jeder Log-Eintrag enthält: Timestamp, Log-Level (ERROR/INFO/DEBUG), Nachricht
- Implementiere eine Funktion
writeLog($level, $message) - Erstelle eine Funktion, die die letzten N Zeilen einer Log-Datei ausliest
Bonusaufgabe: Implementiere Log-Rotation (wenn Datei > 1MB, erstelle neue Datei mit Timestamp).
Aufgabe 4: CSV Import/Export System
Erstelle ein System für Produktdaten:
- Import: Lese CSV-Datei mit Produkten (ID, Name, Preis, Kategorie) und importiere sie in eine Datenbank
- Export: Exportiere Datenbankeinträge als CSV-Datei
- Validierung der CSV-Daten (Preis muss numerisch sein, Pflichtfelder prüfen)
- Fehlerhafte Zeilen in separate
fehler.csvschreiben
Aufgabe 5: XML Konfigurationsdatei (XML)
Erstelle ein Konfigurations-Management-System:
- Lese eine XML-Konfigurationsdatei mit Datenbank-Verbindungsparametern, E-Mail-Settings, etc.
- Schreibe eine Klasse
ConfigManager, die:- XML mit SimpleXML oder DOMDocument parst
- Konfigurationswerte auslesen kann (
getConfig('database.host')) - Konfigurationswerte ändern und zurück in XML schreiben kann
- Erstelle eine Funktion, die XML nach JSON konvertiert
Kombinierte Aufgabe
Aufgabe 6: Kontaktverwaltung mit Multi-Format Support
Entwickle eine vollständige Kontaktverwaltung:
- Datenbank: Tabelle
kontakte(id, vorname, nachname, email, telefon, firma) - PDO: Alle CRUD-Operationen mit PDO
- Export-Funktionen:
- Als CSV exportieren
- Als XML exportieren
- Als JSON exportieren (bonus)
- Import-Funktionen:
- CSV-Import mit Validierung
- XML-Import
- Logging: Alle Aktionen (Erstellen, Ändern, Löschen) in
contacts.logprotokollieren
Anforderungen:
- Fehlerbehandlung bei allen File- und DB-Operationen
- Prepared Statements für SQL
- Datei-Upload für CSV/XML-Import
- Benutzerfreundliche Fehler-/Erfolgsmeldungen
Zusätzliche Challenges
Challenge 1: Backup-System
Erstelle ein automatisches Backup-System:
- Exportiere komplette Datenbank-Tabelle als SQL-Dump in TXT-Datei
- Komprimiere Backup mit ZIP
- Speichere mit Timestamp im Dateinamen
- Alte Backups (> 7 Tage) automatisch löschen
Challenge 2: XML-Feed-Parser
Erstelle einen RSS/XML-Feed-Parser:
- Parse einen externen XML-Feed (z.B. News-Feed)
- Speichere relevante Daten in Datenbank
- Aktualisiere nur neue Einträge (vermeide Duplikate)
- Erstelle einen eigenen XML-Feed aus den DB-Daten
Hinweise
- Nutze immer Prepared Statements für SQL-Queries
- Implementiere ordentliches Error Handling
- Kommentiere deinen Code
- Teste alle Edge Cases (leere Dateien, fehlerhafte Daten, etc.)
Viel Erfolg! 🚀