diff --git a/Controller/AuthController.php b/Controller/AuthController.php
index 78e8511..ff9885a 100644
--- a/Controller/AuthController.php
+++ b/Controller/AuthController.php
@@ -71,9 +71,9 @@ class AuthController
$data = [
'vorname' => $_POST['vorname'] ?? '',
'nachname' => $_POST['nachname'] ?? '',
- 'straße' => $_POST['straße'] ?? '',
+ 'straße' => $_POST['strasse'] ?? '',
'hausnr' => $_POST['hausnr'] ?? '',
- 'postleitzahl' => $_POST['postleitzahl'] ?? '',
+ 'plz' => $_POST['plz'] ?? '',
'ort' => $_POST['ort'] ?? '',
'land' => $_POST['land'] ?? '',
'tel' => $_POST['tel'] ?? '',
@@ -83,52 +83,18 @@ class AuthController
'isAdmin' => $_POST['isAdmin'] ?? false,
];
- $errors = [];
+ $result = $this->model->register($data);
- if (!$this->model->checkDoublePw($data['password'], $data['password_repeat'])) {
- $errors['password'] = "Passwörter stimmen nicht überein.";
+ if ($result === true) {
+ $this->view->setVars(['success' => 'Registrierung erfolgreich!']);
+ $this->view->render('Auth/showAuthForm');
+ exit;
+ } else {
+ $errors['register'] = is_string($result) ? $result : "Registrierung fehlgeschlagen.";
+ $this->view->setVars(['errors' => $errors, 'validData' => $data]);
+ $this->view->render('Auth/showRegistrationForm');
+ exit;
}
-
- if ($this->pwRequirementCheck($data['password'])) {
- $errors['password'] = "Passwort muss mindestens 8 Zeichen lang sein und mindestens ein Großbuchstabe, ein Kleinbuchstabe, eine Zahl und ein Sonderzeichen enthalten.";
- }
-
- if (empty($errors)) {
- $result = $this->model->register($data);
-
- if ($result === true) {
- $this->view->setVars([
- 'success' => "Registrierung war erfolgreich."
- ]);
- } else {
- $errors['register'] = is_string($result) ? $result : "Registrierung fehlgeschlagen.";
- }
- }
-
- $this->view->setVars([
- 'errors' => $errors,
- 'validData' => $data
- ]);
- }
-
- private function pwRequirementCheck($password){
- $error = [];
-
- if(strlen($password) <= 8)
- $error[] = "min 8 Charackter";
- if(!preg_match("/[A-Z]/", $password))
- $error[] = "min one large Character";
- if(!preg_match("/[a-z]/", $password))
- $error[] = "min one small charakter";
- if(!preg_match("/[0-9]/", $password))
- $error[] = "min one number";
- if(!preg_match("[^a-zA-Z0-9\s]", $password));
- $error[] = "min one special character";
-
- if(empty($error))
- return true;
- else
- return $error;
}
public function forgotPassword() {
diff --git a/Controller/RegisterController.php b/Controller/RegisterController.php
deleted file mode 100644
index eb2059b..0000000
--- a/Controller/RegisterController.php
+++ /dev/null
@@ -1,10 +0,0 @@
-pwRequirementCheck($data['password']);
- if ($rtn !== true) {
- return $rtn;
- }
-
+ public function register($data) {
if (!filter_var($data['email'], FILTER_VALIDATE_EMAIL)) {
return "Bitte geben Sie eine gültige E-Mail ein.";
}
@@ -72,6 +66,15 @@ class AuthModel extends Database
return "Ein Account mit dieser E-Mail existiert bereits.";
}
+ // Passwort-Validierung
+ if (!$this->checkDoublePw($data['password'], $data['password_repeat'])) {
+ return "Passwörter stimmen nicht überein.";
+ }
+
+ if ($this->pwRequirementCheck($data['password']) !== true) {
+ return "Passwort muss mindestens 8 Zeichen lang sein und mindestens ein Großbuchstabe, ein Kleinbuchstabe, eine Zahl und ein Sonderzeichen enthalten.";
+ }
+
$hashedPassword = password_hash($data['password'], PASSWORD_DEFAULT);
$sql = "INSERT INTO user (email, password, straße, hausnr, ort, postleitzahl, land,vorname, nachname, tel, isAdmin)
@@ -145,8 +148,7 @@ class AuthModel extends Database
}
}
- private function forgottenPwUpdate($email, $hashedPassword)
- {
+ private function forgottenPwUpdate($email, $hashedPassword) {
try{
$pdo = $this->linkDB();
@@ -213,4 +215,24 @@ class AuthModel extends Database
else
return false;
}
+
+ public function pwRequirementCheck($password){
+ $error = [];
+
+ if(strlen($password) <= 8)
+ $error[] = "min 8 Charackter";
+ if(!preg_match("/[A-Z]/", $password))
+ $error[] = "min one large Character";
+ if(!preg_match("/[a-z]/", $password))
+ $error[] = "min one small charakter";
+ if(!preg_match("/[0-9]/", $password))
+ $error[] = "min one number";
+ if(!preg_match("[^a-zA-Z0-9\s]", $password));
+ $error[] = "min one special character";
+
+ if(empty($error))
+ return true;
+ else
+ return $error;
+ }
}
diff --git a/Views/Auth/login.phtml b/Views/Auth/login.phtml
deleted file mode 100644
index 374f0f2..0000000
--- a/Views/Auth/login.phtml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
Login
-
-
-
-
-
-
-
Login für Benutzer erfolgreich
-
Weiter
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Views/Auth/register.phtml b/Views/Auth/register.phtml
deleted file mode 100644
index 9161031..0000000
--- a/Views/Auth/register.phtml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Views/Auth/showAuthForm.phtml b/Views/Auth/showAuthForm.phtml
index 2d76e8e..eb5e141 100644
--- a/Views/Auth/showAuthForm.phtml
+++ b/Views/Auth/showAuthForm.phtml
@@ -5,19 +5,20 @@ include dirname(__DIR__) . '/header.phtml';
diff --git a/Views/Auth/showRegistrationForm.phtml b/Views/Auth/showRegistrationForm.phtml
index 342e1c2..363c413 100644
--- a/Views/Auth/showRegistrationForm.phtml
+++ b/Views/Auth/showRegistrationForm.phtml
@@ -1,69 +1,54 @@
+
Registrieren
-
-
-
-
-
-
-
-
-
-
-
-
Registrieren
+
diff --git a/Views/header.phtml b/Views/header.phtml
index 3358c73..9b1e404 100644
--- a/Views/header.phtml
+++ b/Views/header.phtml
@@ -1,7 +1,7 @@
- VR Contact
+ Bib Arts
@@ -11,8 +11,9 @@
diff --git a/bibarts.sql b/bibarts.sql
index b376265..8411099 100644
--- a/bibarts.sql
+++ b/bibarts.sql
@@ -9,12 +9,13 @@ CREATE TABLE User (
nachname VARCHAR(50),
strasse VARCHAR(100),
hausnr VARCHAR(10),
- postleitzahl VARCHAR(10),
+ plz VARCHAR(10),
ort VARCHAR(50),
land VARCHAR(50),
tel VARCHAR(20),
email VARCHAR(100) UNIQUE,
isAdmin BOOLEAN DEFAULT FALSE,
+ validUntil DATETIME NOT NULL DEFAULT '3025-01-01 00:00:00',
password VARCHAR(255)
);
@@ -39,6 +40,7 @@ CREATE TABLE Ausstellung (
name VARCHAR(100),
beschreibung TEXT,
max_tickets INT,
+ eintrittspreis DECIMAL(5,2),
FOREIGN KEY (standortid) REFERENCES Standort(standortid)
);
@@ -49,7 +51,6 @@ CREATE TABLE Ticket (
ausstellungid INT,
kaufdatum DATE,
gueltigkeit DATE,
- preis DECIMAL(10,2),
FOREIGN KEY (userid) REFERENCES User(userid),
FOREIGN KEY (ausstellungid) REFERENCES Ausstellung(austellungid)
);
@@ -74,11 +75,12 @@ CREATE TABLE News (
--- User-Daten
-INSERT INTO User (vorname, nachname, strasse, hausnr, postleitzahl, ort, land, tel, email, isAdmin, password)
+-- User-Daten (Passwort: passwort123)
+INSERT INTO User (vorname, nachname, strasse, hausnr, plz, ort, land, tel, email, isAdmin, password)
VALUES
- ('Max', 'Muster', 'Musterstraße', '1', '12345', 'Musterstadt', 'Deutschland', '0123456789', 'max@muster.de', FALSE, 'passwort123'),
- ('Anna', 'Beispiel', 'Beispielweg', '5a', '54321', 'Beispielstadt', 'Deutschland', '0987654321', 'anna@beispiel.de', TRUE, 'adminpass');
+
+ ('Max', 'Muster', 'Musterstraße', '1', '12345', 'Musterstadt', 'Deutschland', '0123456789', 'max@muster.de', FALSE, '$2y$10$VAj.C0XHPUxV4oXS6b79aumlg5fBMPPx5FPqgkQSIQeBLh0WtYmKy'),
+ ('Anna', 'Beispiel', 'Beispielweg', '5a', '54321', 'Beispielstadt', 'Deutschland', '0987654321', 'anna@beispiel.de', TRUE, '$2y$10$cnPBpkvLbdpDxzYvxlQg9uVp5y8ggr2SWL8NAMg9zk.3QnnEl.MGq');
-- Standort-Daten
INSERT INTO Standort (strasse, hausnr, plz, ort, land, tel, email)
@@ -87,10 +89,10 @@ VALUES
('Kunstallee', '22b', '50667', 'Köln', 'Deutschland', '0221123456', 'info@kunst-koeln.de');
-- Ausstellung-Daten
-INSERT INTO Ausstellung (standortid, datum_von, datum_bis, name, beschreibung, max_tickets)
+INSERT INTO Ausstellung (standortid, datum_von, datum_bis, name, beschreibung, max_tickets, eintrittspreis)
VALUES
- (1, '2025-07-01', '2025-08-31', 'Moderne Meisterwerke', 'Eine Sammlung moderner Kunstwerke aus Europa.', 200),
- (2, '2025-09-10', '2025-10-20', 'Kunst der Antike', 'Ausstellung antiker Skulpturen und Gemälde.', 150);
+ (1, '2025-07-01', '2025-08-31', 'Moderne Meisterwerke', 'Eine Sammlung moderner Kunstwerke aus Europa.', 200, 19.99),
+ (2, '2025-09-10', '2025-10-20', 'Kunst der Antike', 'Ausstellung antiker Skulpturen und Gemälde.', 150, 39.99);
-- Gutschein-Daten (Spaltennamen korrigiert)
INSERT INTO Gutschein (code, rabatt, ausstellungid, gueltigkeit)
@@ -99,46 +101,13 @@ VALUES
('HERBST25', 25, 2, '2025-10-15');
-- Ticket-Daten (Spaltennamen korrigiert)
-INSERT INTO Ticket (userid, ausstellungid, kaufdatum, gueltigkeit, preis)
+INSERT INTO Ticket (userid, ausstellungid, kaufdatum, gueltigkeit)
VALUES
- (1, 1, '2025-06-01', '2025-07-15', 12.50),
- (2, 2, '2025-06-05', '2025-09-15', 10.00);
+ (1, 1, '2025-06-01', '2025-07-15'),
+ (2, 2, '2025-06-05', '2025-09-15');
-- News-Daten
INSERT INTO News (name, beschreibung, datum)
VALUES
('Neuer Standort eröffnet', 'Unsere Galerie in Köln ist jetzt geöffnet!', '2025-06-01'),
('Frühbucher-Rabatt', 'Sichern Sie sich jetzt 15% Rabatt auf unsere Sommerausstellung.', '2025-05-20');
-
---Änderungen:
-
-ALTER TABLE austellung
- ADD preis decimal NOT NULL
-
-ALTER TABLE ticket
- DROP COLUMN preis
-
-
-ALTER TABLE user
- MODIFY COLUMN userid INT NOT NULL AUTO_INCREMENT;
-
-ALTER TABLE ticket
- MODIFY COLUMN ticketid INT NOT NULL AUTO_INCREMENT;
-
-ALTER TABLE standort
- MODIFY COLUMN standortid INT NOT NULL AUTO_INCREMENT;
-
-ALTER TABLE news
- MODIFY COLUMN newsid INT NOT NULL AUTO_INCREMENT;
-
-ALTER TABLE gutschein
- MODIFY COLUMN gutscheinid INT NOT NULL AUTO_INCREMENT;
-
-ALTER TABLE ausstellung
- MODIFY COLUMN austellungid INT NOT NULL AUTO_INCREMENT;
-
-ALTER TABLE user
- MODIFY COLUMN isAdmin BOOLEAN DEFAULT FALSE;
-
-ALTER TABLE user
- ADD validUntil DATETIME NOT NULL DEFAULT '3025-01-01 00:00:00';
\ No newline at end of file
diff --git a/index.php b/index.php
index 956dc5c..db5acd1 100644
--- a/index.php
+++ b/index.php
@@ -19,11 +19,11 @@ spl_autoload_register(function ($className) {
$controllerName = "";
$doMethodName = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
- $controllerName = isset($_POST['controller']) && $_POST['controller'] ? $_POST['controller'] : "Welcome";
- $doMethodName = isset($_POST['do']) && $_POST['do'] ? $_POST['do'] : "showWelcome";
+ $controllerName = isset($_POST['controller']) && $_POST['controller'] ? $_POST['controller'] : "Auth";
+ $doMethodName = isset($_POST['do']) && $_POST['do'] ? $_POST['do'] : "showAuthForm";
} else {
- $controllerName = isset($_GET['controller']) && $_GET['controller'] ? $_GET['controller'] : "Welcome";
- $doMethodName = isset($_GET['do']) && $_GET['do'] ? $_GET['do'] : "showWelcome";
+ $controllerName = isset($_GET['controller']) && $_GET['controller'] ? $_GET['controller'] : "Auth";
+ $doMethodName = isset($_GET['do']) && $_GET['do'] ? $_GET['do'] : "showAuthForm";
}
$controllerClassName = 'Blog\\Controller\\'.ucfirst($controllerName).'Controller';