Dies ist ein Webprojekt im Rahmen des Moduls 151. Die Anwendung ist ein einfacher Online-Shop für 3D-Druck-Produkte. Registrierte Benutzer können eigene Produkte erfassen, bearbeiten und löschen. Die Applikation wurde mit PHP, HTML, CSS und einer MySQL-Datenbank umgesetzt.
- ✅ Benutzer-Registrierung & Login mit Session-Management
- ✅ Passwort-Hashing mit
password_hash()(C11) - ✅ Passwort ändern für eingeloggte Benutzer (C15)
- ✅ Produkte erfassen, bearbeiten und löschen (C16–C18)
- ✅ Schutz vor SQL-Injection mit
PDO::prepare()(C19) - ✅ Schutz vor Script-Injection mit
htmlspecialchars()(C7) - ✅ Schutz vor Session-Fixation & Hijacking (C10)
- ✅ Getrennter DB-User mit eingeschränkten Rechten (C12)
- HTML5 & CSS3
- PHP 8.x
- MySQL (phpMyAdmin)
- PDO für Datenbankzugriffe
- Session & Security-Techniken
- Alle Datenbankabfragen sind mit Prepared Statements ausgeführt.
- Passwörter werden mit
password_hash()gespeichert. - Session-ID wird bei Login regeneriert.
- Session-Daten wie IP und User-Agent werden validiert.
- XSS wird durch
htmlspecialchars()verhindert. - Es wird ein eingeschränkter Datenbankbenutzer verwendet (nur SELECT, INSERT, UPDATE, DELETE).
- Benutzer: kann sich registrieren, anmelden, Produkte verwalten, Passwort ändern
- (Optional) Admin: Struktur für Admin-Login vorhanden, aktuell aber ohne Funktion
- Datenbankstruktur importieren (SQL-Datei nicht enthalten)
- Zugangsdaten in
config.phpanpassen - Projekt lokal (z. B. mit XAMPP) im
htdocs-Verzeichnis starten - Seite aufrufen:
http://localhost/DeinProjektOrdner/
- Marco Frey
- Florian Brügger
Modul 151 – Web-Applikationen mit Datenbankanbindung
- Mail: marco.frey@bbzbl-it.ch
- Telefon: +41 79 631 02 25
- Alles herunterladen oder per GitHub desktop in htdocs (Xampp Verzeichniss) Ordner kopieren.
- XAMPP starten (Apache + SQL)
- Gehe auf die Seite http://localhost/phpmyadmin
- WICHTIG: Die Datei für den Import übernimmt nicht die Benutzer. Deshalb empfehle ich den Ausgewählten Code in phpMyAdmin auszuführen!
- Sobald dies gemacht ist kannst du nun auf: http://localhost/tulen/index.html Taaadaa und schon ist alles Installiert, Viel Spass :D
-- 1. Neue Datenbank erstellen unter dem Reiter SQL
CREATE DATABASE 3d_druck_shop CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 2. Rechte für `druckshop`@`localhost`
GRANT USAGE ON *.* TO `druckshop`@`localhost` IDENTIFIED BY PASSWORD '*5938B8149B03AEEC365EB3F6EDAD99C452C003CA';
GRANT SELECT, INSERT, UPDATE, DELETE ON `3d\_druck\_shop`.* TO `druckshop`@`localhost`;
-- 3. In Datenbank wechseln und dort weiter Code ausführen
-- 4. Tabellen anlegen in REITER SQL UNTER DATENBANK 3d_druck_shop
-- Tabelle: users
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL
);
-- Tabelle: products
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
name VARCHAR(255) NOT NULL,
description TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);