Compare commits
18 Commits
feature/lo
...
3faec473ef
| Author | SHA1 | Date | |
|---|---|---|---|
| 3faec473ef | |||
| a9944259b6 | |||
| 4f0f1e5f6d | |||
| e68c86c93e | |||
| a9997b3c63 | |||
| 9ce7a6cfd3 | |||
| ca757d1723 | |||
| 717d361dbb | |||
| 404e846418 | |||
| 3ce61ace17 | |||
| 3dc68dd0bc | |||
| b9fc6bcdd5 | |||
| a50b48592b | |||
| 1691370db6 | |||
| a6b672ee7e | |||
| 97c03d817e | |||
| 877be4e567 | |||
| ef3349c6e4 |
@@ -150,32 +150,63 @@ a {
|
|||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-container {
|
.form-container {
|
||||||
position: absolute;
|
|
||||||
top: 200px;
|
|
||||||
background-color: #BAC8D4;
|
background-color: #BAC8D4;
|
||||||
width: 900px;
|
width: 100%;
|
||||||
height: 450px;
|
max-width: 400px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
padding: 32px 24px 24px 24px;
|
||||||
|
margin: 32px auto;
|
||||||
}
|
}
|
||||||
|
.form-horizontal {
|
||||||
.tickets-container {
|
width: 100%;
|
||||||
position: absolute;
|
|
||||||
top: 200px;
|
|
||||||
background-color: #BAC8D4;
|
|
||||||
width: 900px;
|
|
||||||
height: 450px;
|
|
||||||
border-radius: 10px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
gap: 12px;
|
||||||
justify-content: center;
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.form-horizontal label {
|
||||||
|
margin-bottom: 2px;
|
||||||
|
}
|
||||||
|
.form-horizontal input[type="text"],
|
||||||
|
.form-horizontal input[type="email"],
|
||||||
|
.form-horizontal input[type="password"] {
|
||||||
|
width: 100%;
|
||||||
|
padding: 8px 10px;
|
||||||
|
border: 1px solid #BAC8D4;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 1rem;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
.form-horizontal button {
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px 0;
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
background: #4d4d4d;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 1rem;
|
||||||
|
margin-top: 8px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background 0.2s;
|
||||||
|
}
|
||||||
|
.form-horizontal button:hover {
|
||||||
|
background: #333;
|
||||||
|
}
|
||||||
|
.login-error, .form-error {
|
||||||
|
background: #ffe0e0;
|
||||||
|
color: #b30000;
|
||||||
|
border: 1px solid #ffb3b3;
|
||||||
|
border-radius: 6px;
|
||||||
|
padding: 10px 16px;
|
||||||
|
margin-bottom: 18px;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 600px) {
|
@media (max-width: 600px) {
|
||||||
@@ -297,7 +328,7 @@ a {
|
|||||||
padding: 16px 8px;
|
padding: 16px 8px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
.tickets-container {
|
.event-container {
|
||||||
position: static;
|
position: static;
|
||||||
width: 95vw;
|
width: 95vw;
|
||||||
max-width: 400px;
|
max-width: 400px;
|
||||||
@@ -310,7 +341,7 @@ a {
|
|||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.tickets-container h1 {
|
.event-container h1 {
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,30 +47,30 @@ class AuthController
|
|||||||
$password = $_POST['password'];
|
$password = $_POST['password'];
|
||||||
|
|
||||||
$result = $this->model->login($email, $password);
|
$result = $this->model->login($email, $password);
|
||||||
|
|
||||||
if ($result === true) {
|
if ($result === true) {
|
||||||
$_SESSION['user'] = $email;
|
$_SESSION['user'] = $email;
|
||||||
header('Location: /bibarts/?controller=News&do=showNews');
|
$this->view->setDoMethodName('showLoginSuccess');
|
||||||
exit();
|
|
||||||
} else {
|
} else {
|
||||||
$this->view->setVars([
|
$this->view->setVars([
|
||||||
'errors' => ['login' => is_string($result) ? $result : "Login fehlgeschlagen."],
|
'errors' => ['login' => is_string($result) ? $result : "Login fehlgeschlagen."],
|
||||||
'validData' => ['email' => $email],
|
'validData' => ['email' => $email],
|
||||||
'loginSuccess' => false
|
'loginSuccess' => false
|
||||||
]);
|
]);
|
||||||
|
$this->view->setDoMethodName('showLoginForm');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function register() {
|
public function register() {
|
||||||
$data = [
|
$data = [
|
||||||
'first_name' => $_POST['vorname'] ?? '',
|
'first_name' => $_POST['first_name'] ?? '',
|
||||||
'last_name' => $_POST['nachname'] ?? '',
|
'last_name' => $_POST['last_name'] ?? '',
|
||||||
'street' => $_POST['strasse'] ?? '',
|
'street' => $_POST['street'] ?? '',
|
||||||
'house_number' => $_POST['hausnr'] ?? '',
|
'house_number' => $_POST['house_number'] ?? '',
|
||||||
'postal_code' => $_POST['plz'] ?? '',
|
'postal_code' => $_POST['postal_code'] ?? '',
|
||||||
'city' => $_POST['ort'] ?? '',
|
'city' => $_POST['city'] ?? '',
|
||||||
'country' => $_POST['land'] ?? '',
|
'country' => $_POST['country'] ?? '',
|
||||||
'phone' => $_POST['tel'] ?? '',
|
'phone' => $_POST['phone'] ?? '',
|
||||||
'email' => $_POST['email'] ?? '',
|
'email' => $_POST['email'] ?? '',
|
||||||
'password' => $_POST['password'] ?? '',
|
'password' => $_POST['password'] ?? '',
|
||||||
'password_repeat' => $_POST['password_repeat'] ?? '',
|
'password_repeat' => $_POST['password_repeat'] ?? '',
|
||||||
@@ -80,14 +80,15 @@ class AuthController
|
|||||||
$result = $this->model->register($data);
|
$result = $this->model->register($data);
|
||||||
|
|
||||||
if ($result === true) {
|
if ($result === true) {
|
||||||
$this->view->setVars(['success' => 'Registrierung erfolgreich!']);
|
$this->view->setDoMethodName('showRegistrationSuccess');
|
||||||
$this->view->render('Auth/showLoginForm');
|
|
||||||
exit;
|
|
||||||
} else {
|
} else {
|
||||||
$errors['register'] = is_string($result) ? $result : "Registrierung fehlgeschlagen.";
|
if (is_array($result)) {
|
||||||
|
$errors['register'] = implode('<br>', $result);
|
||||||
|
} else {
|
||||||
|
$errors['register'] = is_string($result) ? $result : "Registrierung fehlgeschlagen.";
|
||||||
|
}
|
||||||
$this->view->setVars(['errors' => $errors, 'validData' => $data]);
|
$this->view->setVars(['errors' => $errors, 'validData' => $data]);
|
||||||
$this->view->render('Auth/showRegistrationForm');
|
$this->view->setDoMethodName('showRegistrationForm');
|
||||||
exit;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,8 +129,7 @@ class AuthController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function showConfirmation()
|
public function showConfirmation() {
|
||||||
{
|
|
||||||
$messages = [
|
$messages = [
|
||||||
'login' => "Login erfolgreich.",
|
'login' => "Login erfolgreich.",
|
||||||
'register' => "Registrierung erfolgreich.",
|
'register' => "Registrierung erfolgreich.",
|
||||||
@@ -145,7 +145,6 @@ class AuthController
|
|||||||
public function logout() {
|
public function logout() {
|
||||||
unset($_SESSION['user']);
|
unset($_SESSION['user']);
|
||||||
session_destroy();
|
session_destroy();
|
||||||
header('Location: /bibarts/?controller=Auth&do=showLoginForm');
|
$this->view->setDoMethodName('showLogoutSuccess');
|
||||||
exit();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Blog\Controller;
|
|
||||||
|
|
||||||
use Blog\Model\ContactModel;
|
|
||||||
|
|
||||||
class ContactController
|
|
||||||
{
|
|
||||||
protected $view;
|
|
||||||
private $db;
|
|
||||||
private $validData = array();
|
|
||||||
private $errors = array();
|
|
||||||
private $labels = array("name" => "Name", "email" => "E-Mail-Adresse", "content" => "Nachricht");
|
|
||||||
|
|
||||||
|
|
||||||
public function __construct($view) {
|
|
||||||
$this->db = new ContactModel();
|
|
||||||
$this->view = $view;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function showContactForm() {
|
|
||||||
$this->view->setVars([
|
|
||||||
'labels' => $this->labels,
|
|
||||||
'validData' => $this->validData,
|
|
||||||
'errors' => $this->errors
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function showConfirmation() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function validateForm() {
|
|
||||||
foreach ($this->labels as $index => $value) {
|
|
||||||
if (!isset($_POST[$index]) || empty($_POST[$index])) {
|
|
||||||
$this->errors[$index] = "Bitte " . $value . " angeben";
|
|
||||||
} else {
|
|
||||||
$this->validData[$index] = $_POST[$index];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (count($this->errors) > 0) {
|
|
||||||
$this->view->setDoMethodName("showContactForm");
|
|
||||||
$this->showContactForm();
|
|
||||||
} else {
|
|
||||||
if ($this->db->writeContactData($this->validData)) {
|
|
||||||
$this->view->setDoMethodName("showConfirmation");
|
|
||||||
$this->showConfirmation();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace Blog\Controller;
|
namespace Blog\Controller;
|
||||||
|
|
||||||
use Blog\Model\EventModel;
|
use Blog\Model\EventModel;
|
||||||
|
use Blog\Model\StandortModel;
|
||||||
|
|
||||||
class EventController {
|
class EventController {
|
||||||
|
|
||||||
@@ -61,4 +62,40 @@ class EventController {
|
|||||||
$this->model->deleteEvent($id);
|
$this->model->deleteEvent($id);
|
||||||
$this->view->setVars(['id' => $id]);
|
$this->view->setVars(['id' => $id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function showUpdateEvent() {
|
||||||
|
$id = $_GET['event_id'] ?? null;
|
||||||
|
if (!$id) {
|
||||||
|
// handle error, e.g., redirect or show error message
|
||||||
|
$this->view->setVars(['error' => 'Keine Event-ID angegeben.']);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$event = $this->model->getEvent($id);
|
||||||
|
if (!$event) {
|
||||||
|
$this->view->setVars(['error' => 'Event nicht gefunden.']);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Map DB fields to view fields if needed
|
||||||
|
$eventView = [
|
||||||
|
'id' => $event['event_id'],
|
||||||
|
'name' => $event['name'],
|
||||||
|
'start_date' => $event['start_date'],
|
||||||
|
'end_date' => $event['end_date'],
|
||||||
|
'location_id' => $event['location_id'],
|
||||||
|
'description' => $event['description'],
|
||||||
|
'max_tickets' => $event['max_tickets'],
|
||||||
|
'ticket_price' => $event['ticket_price'],
|
||||||
|
];
|
||||||
|
// Fetch location name (city)
|
||||||
|
$standortModel = new StandortModel();
|
||||||
|
$location = $standortModel->getStandort($event['location_id']);
|
||||||
|
$eventView['location_name'] = $location['city'] ?? '';
|
||||||
|
$this->view->setVars(['event' => $eventView]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function showCreateEvent() {
|
||||||
|
$standortModel = new \Blog\Model\StandortModel();
|
||||||
|
$locations = $standortModel->getStandorte();
|
||||||
|
$this->view->setVars(['locations' => $locations]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
<?php
|
|
||||||
namespace Blog\Controller;
|
|
||||||
|
|
||||||
class RegisterController {
|
|
||||||
function showRegisterPage()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Blog\Controller;
|
|
||||||
|
|
||||||
class WelcomeController
|
|
||||||
{
|
|
||||||
function showWelcome() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function showProjects() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function showTutorials() {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -52,7 +52,7 @@ class AuthModel extends Database
|
|||||||
}
|
}
|
||||||
|
|
||||||
$requiredFields = [
|
$requiredFields = [
|
||||||
'email', 'password', 'street', 'house_number', 'city', 'postal_code',
|
'email', 'password', 'password_repeat', 'street', 'house_number', 'city', 'postal_code',
|
||||||
'country', 'first_name', 'last_name', 'phone'
|
'country', 'first_name', 'last_name', 'phone'
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -71,8 +71,9 @@ class AuthModel extends Database
|
|||||||
return "Passwörter stimmen nicht überein.";
|
return "Passwörter stimmen nicht überein.";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->pwRequirementCheck($data['password']) !== true) {
|
$pwCheck = $this->pwRequirementCheck($data['password']);
|
||||||
return "Passwort muss mindestens 8 Zeichen lang sein und mindestens ein Großbuchstabe, ein Kleinbuchstabe, eine Zahl und ein Sonderzeichen enthalten.";
|
if ($pwCheck !== true) {
|
||||||
|
return $pwCheck; // Array mit spezifischen Fehlern zurückgeben
|
||||||
}
|
}
|
||||||
|
|
||||||
$hashedPassword = password_hash($data['password'], PASSWORD_DEFAULT);
|
$hashedPassword = password_hash($data['password'], PASSWORD_DEFAULT);
|
||||||
@@ -220,16 +221,16 @@ class AuthModel extends Database
|
|||||||
public function pwRequirementCheck($password){
|
public function pwRequirementCheck($password){
|
||||||
$error = [];
|
$error = [];
|
||||||
|
|
||||||
if(strlen($password) <= 8)
|
if(strlen($password) < 8)
|
||||||
$error[] = "min 8 Charackter";
|
$error[] = "Passwort: mindestens 8 Zeichen";
|
||||||
if(!preg_match("/[A-Z]/", $password))
|
if(!preg_match("/[A-Z]/", $password))
|
||||||
$error[] = "min one large Character";
|
$error[] = "Passwort: mindestens ein Großbuchstabe";
|
||||||
if(!preg_match("/[a-z]/", $password))
|
if(!preg_match("/[a-z]/", $password))
|
||||||
$error[] = "min one small charakter";
|
$error[] = "Passwort: mindestens ein Kleinbuchstabe";
|
||||||
if(!preg_match("/[0-9]/", $password))
|
if(!preg_match("/[0-9]/", $password))
|
||||||
$error[] = "min one number";
|
$error[] = "Passwort: mindestens eine Zahl";
|
||||||
if(!preg_match("[^a-zA-Z0-9\s]", $password));
|
if(!preg_match("/[^a-zA-Z0-9\s]/", $password))
|
||||||
$error[] = "min one special character";
|
$error[] = "Passwort: mindestens ein Sonderzeichen";
|
||||||
|
|
||||||
if(empty($error))
|
if(empty($error))
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Blog\Model;
|
|
||||||
|
|
||||||
use PDOException;
|
|
||||||
|
|
||||||
class ContactModel extends Database
|
|
||||||
{
|
|
||||||
public function writeContactData($values)
|
|
||||||
{
|
|
||||||
$guid = $this->createUUID();
|
|
||||||
|
|
||||||
$sql = "INSERT INTO contact (`id`, `name`, `email`, `content`) VALUES (
|
|
||||||
:guid, :name, :email, :content);";
|
|
||||||
|
|
||||||
$pdo = $this->linkDB();
|
|
||||||
|
|
||||||
try {
|
|
||||||
$sth = $pdo->prepare($sql);
|
|
||||||
$sth->execute(array(":guid" => $guid,
|
|
||||||
":name" => $values["name"],
|
|
||||||
":email" => $values["email"],
|
|
||||||
":content" => $values["content"]));
|
|
||||||
} catch (PDOException $e) {
|
|
||||||
new \Blog\Library\ErrorMsg("Fehler beim Schreiben der Daten.", $e);
|
|
||||||
die;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -8,7 +8,7 @@ class EventModel extends Database {
|
|||||||
|
|
||||||
public function getEvents() {
|
public function getEvents() {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "SELECT * FROM ausstellung ORDER BY datum_von DESC;";
|
$sql = "SELECT * FROM event ORDER BY start_date DESC;";
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute();
|
$sth->execute();
|
||||||
@@ -21,7 +21,7 @@ class EventModel extends Database {
|
|||||||
|
|
||||||
public function getEvent($id) {
|
public function getEvent($id) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "SELECT * FROM ausstellung WHERE ausstellungid = :id;";
|
$sql = "SELECT * FROM event WHERE event_id = :id;";
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute([":id" => $id]);
|
$sth->execute([":id" => $id]);
|
||||||
@@ -34,15 +34,15 @@ class EventModel extends Database {
|
|||||||
|
|
||||||
public function updateEvent($id, $data) {
|
public function updateEvent($id, $data) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "UPDATE ausstellung SET standortid = :standortid, datum_von = :datum_von, datum_bis = :datum_bis, name = :name, beschreibung = :beschreibung, max_tickets = :max_tickets, preis = :preis WHERE ausstellungid = :id;";
|
$sql = "UPDATE event SET location_id = :location_id, start_date = :start_date, end_date = :end_date, name = :name, description = :description, max_tickets = :max_tickets, ticket_price = :ticket_price WHERE event_id = :id;";
|
||||||
$params = [
|
$params = [
|
||||||
":standortid" => $data['standortid'],
|
":location_id" => $data['location_id'],
|
||||||
":datum_von" => $data['datum_von'],
|
":start_date" => $data['start_date'],
|
||||||
":datum_bis" => $data['datum_bis'],
|
":end_date" => $data['end_date'],
|
||||||
":name" => $data['name'],
|
":name" => $data['name'],
|
||||||
":beschreibung" => $data['beschreibung'],
|
":description" => $data['description'],
|
||||||
":max_tickets" => $data['max_tickets'],
|
":max_tickets" => $data['max_tickets'],
|
||||||
":preis" => $data['preis'],
|
":ticket_price" => $data['ticket_price'],
|
||||||
":id" => $id
|
":id" => $id
|
||||||
];
|
];
|
||||||
try {
|
try {
|
||||||
@@ -56,15 +56,15 @@ class EventModel extends Database {
|
|||||||
|
|
||||||
public function createEvent($data) {
|
public function createEvent($data) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "INSERT INTO ausstellung (standortid, datum_von, datum_bis, name, beschreibung, max_tickets, preis) VALUES (:standortid, :datum_von, :datum_bis, :name, :beschreibung, :max_tickets, :preis);";
|
$sql = "INSERT INTO event (location_id, start_date, end_date, name, description, max_tickets, ticket_price) VALUES (:location_id, :start_date, :end_date, :name, :description, :max_tickets, :ticket_price);";
|
||||||
$params = [
|
$params = [
|
||||||
":standortid" => $data['standortid'],
|
":location_id" => $data['location_id'],
|
||||||
":datum_von" => $data['datum_von'],
|
":start_date" => $data['start_date'],
|
||||||
":datum_bis" => $data['datum_bis'],
|
":end_date" => $data['end_date'],
|
||||||
":name" => $data['name'],
|
":name" => $data['name'],
|
||||||
":beschreibung" => $data['beschreibung'],
|
":description" => $data['description'],
|
||||||
":max_tickets" => $data['max_tickets'],
|
":max_tickets" => $data['max_tickets'],
|
||||||
":preis" => $data['preis']
|
":ticket_price" => $data['ticket_price']
|
||||||
];
|
];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
@@ -78,7 +78,7 @@ class EventModel extends Database {
|
|||||||
|
|
||||||
public function deleteEvent($id) {
|
public function deleteEvent($id) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "DELETE FROM ausstellung WHERE ausstellungid = :id;";
|
$sql = "DELETE FROM event WHERE event_id = :id;";
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute([":id" => $id]);
|
$sth->execute([":id" => $id]);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ class GutscheinModel extends Database {
|
|||||||
|
|
||||||
public function getGutscheine() {
|
public function getGutscheine() {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "SELECT * FROM gutschein ORDER BY gültigkeit DESC;";
|
$sql = "SELECT * FROM voucher ORDER BY valid_until DESC;";
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute();
|
$sth->execute();
|
||||||
@@ -21,7 +21,7 @@ class GutscheinModel extends Database {
|
|||||||
|
|
||||||
public function getGutschein($id) {
|
public function getGutschein($id) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "SELECT * FROM gutschein WHERE gutscheinid = :id;";
|
$sql = "SELECT * FROM voucher WHERE voucher_id = :id;";
|
||||||
$params = [":id" => $id];
|
$params = [":id" => $id];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
@@ -35,12 +35,12 @@ class GutscheinModel extends Database {
|
|||||||
|
|
||||||
public function createGutschein($data) {
|
public function createGutschein($data) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "INSERT INTO gutschein (code, rabatt, eventid, gültigkeit) VALUES (:code, :rabatt, :eventid, :gültigkeit);";
|
$sql = "INSERT INTO voucher (code, discount, event_id, valid_until) VALUES (:code, :discount, :event_id, :valid_until);";
|
||||||
$params = [
|
$params = [
|
||||||
":code" => $data['code'],
|
":code" => $data['code'],
|
||||||
":rabatt" => $data['rabatt'],
|
":discount" => $data['discount'],
|
||||||
":eventid" => $data['eventid'],
|
":event_id" => $data['event_id'],
|
||||||
":gültigkeit" => $data['gültigkeit']
|
":valid_until" => $data['valid_until']
|
||||||
];
|
];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
@@ -54,12 +54,12 @@ class GutscheinModel extends Database {
|
|||||||
|
|
||||||
public function updateGutschein($id, $data) {
|
public function updateGutschein($id, $data) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "UPDATE gutschein SET code = :code, rabatt = :rabatt, eventid = :eventid, gültigkeit = :gültigkeit WHERE gutscheinid = :id;";
|
$sql = "UPDATE voucher SET code = :code, discount = :discount, event_id = :event_id, valid_until = :valid_until WHERE voucher_id = :id;";
|
||||||
$params = [
|
$params = [
|
||||||
":code" => $data['code'],
|
":code" => $data['code'],
|
||||||
":rabatt" => $data['rabatt'],
|
":discount" => $data['discount'],
|
||||||
":eventid" => $data['eventid'],
|
":event_id" => $data['event_id'],
|
||||||
":gültigkeit" => $data['gültigkeit'],
|
":valid_until" => $data['valid_until'],
|
||||||
":id" => $id
|
":id" => $id
|
||||||
];
|
];
|
||||||
try {
|
try {
|
||||||
@@ -73,7 +73,7 @@ class GutscheinModel extends Database {
|
|||||||
|
|
||||||
public function deleteGutschein($id) {
|
public function deleteGutschein($id) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "DELETE FROM gutschein WHERE gutscheinid = :id;";
|
$sql = "DELETE FROM voucher WHERE voucher_id = :id;";
|
||||||
$params = [":id" => $id];
|
$params = [":id" => $id];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ class NewsModel extends Database {
|
|||||||
|
|
||||||
public function getNewsById($newsId) {
|
public function getNewsById($newsId) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "SELECT * FROM news WHERE newsid = :newsid;";
|
$sql = "SELECT * FROM news WHERE news_id = :news_id;";
|
||||||
$params = [":newsid" => $newsId];
|
$params = [":news_id" => $newsId];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute($params);
|
$sth->execute($params);
|
||||||
@@ -22,12 +22,12 @@ class NewsModel extends Database {
|
|||||||
|
|
||||||
public function updateNews($newsId, $news) {
|
public function updateNews($newsId, $news) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "UPDATE news SET name = :name, beschreibung = :beschreibung, datum = :datum WHERE newsid = :newsid;";
|
$sql = "UPDATE news SET name = :name, description = :description, date = :date WHERE news_id = :news_id;";
|
||||||
$params = [
|
$params = [
|
||||||
":name" => $news['titel'],
|
":name" => $news['titel'],
|
||||||
":beschreibung" => $news['inhalt'],
|
":description" => $news['inhalt'],
|
||||||
":datum" => $news['datum'],
|
":date" => $news['datum'],
|
||||||
":newsid" => $newsId
|
":news_id" => $newsId
|
||||||
];
|
];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
@@ -41,7 +41,7 @@ class NewsModel extends Database {
|
|||||||
|
|
||||||
public function getNews() {
|
public function getNews() {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "SELECT * FROM news ORDER BY datum DESC;";
|
$sql = "SELECT * FROM news ORDER BY date DESC;";
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute();
|
$sth->execute();
|
||||||
@@ -54,11 +54,11 @@ class NewsModel extends Database {
|
|||||||
|
|
||||||
public function createNews($news) {
|
public function createNews($news) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "INSERT INTO news (name, beschreibung, datum) VALUES (:name, :beschreibung, :datum);";
|
$sql = "INSERT INTO news (name, description, date) VALUES (:name, :description, :date);";
|
||||||
$params = [
|
$params = [
|
||||||
":name" => $news['titel'],
|
":name" => $news['titel'],
|
||||||
":beschreibung" => $news['inhalt'],
|
":description" => $news['inhalt'],
|
||||||
":datum" => $news['datum']
|
":date" => $news['datum']
|
||||||
];
|
];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
@@ -72,8 +72,8 @@ class NewsModel extends Database {
|
|||||||
|
|
||||||
public function deleteNews($newsId) {
|
public function deleteNews($newsId) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "DELETE FROM news WHERE newsid = :newsid;";
|
$sql = "DELETE FROM news WHERE news_id = :news_id;";
|
||||||
$params = [":newsid" => $newsId];
|
$params = [":news_id" => $newsId];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute($params);
|
$sth->execute($params);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ class StandortModel extends Database {
|
|||||||
|
|
||||||
public function getStandorte() {
|
public function getStandorte() {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "SELECT * FROM Standort ORDER BY standortid ASC;";
|
$sql = "SELECT * FROM location ORDER BY location_id ASC;";
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute();
|
$sth->execute();
|
||||||
@@ -19,10 +19,10 @@ class StandortModel extends Database {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getStandort($standortid) {
|
public function getStandort($location_id) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "SELECT * FROM Standort WHERE standortid = :standortid;";
|
$sql = "SELECT * FROM location WHERE location_id = :location_id;";
|
||||||
$params = [":standortid" => $standortid];
|
$params = [":location_id" => $location_id];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute($params);
|
$sth->execute($params);
|
||||||
@@ -35,15 +35,15 @@ class StandortModel extends Database {
|
|||||||
|
|
||||||
public function createStandort($data) {
|
public function createStandort($data) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "INSERT INTO Standort (straße, hausnr, postleitzahl, ort, land, tel, email)
|
$sql = "INSERT INTO location (street, house_number, postal_code, city, country, phone, email)
|
||||||
VALUES (:straße, :hausnr, :postleitzahl, :ort, :land, :tel, :email);";
|
VALUES (:street, :house_number, :postal_code, :city, :country, :phone, :email);";
|
||||||
$params = [
|
$params = [
|
||||||
":straße" => $data['straße'],
|
":street" => $data['street'],
|
||||||
":hausnr" => $data['hausnr'],
|
":house_number" => $data['house_number'],
|
||||||
":postleitzahl" => $data['postleitzahl'],
|
":postal_code" => $data['postal_code'],
|
||||||
":ort" => $data['ort'],
|
":city" => $data['city'],
|
||||||
":land" => $data['land'],
|
":country" => $data['country'],
|
||||||
":tel" => $data['tel'],
|
":phone" => $data['phone'],
|
||||||
":email" => $data['email']
|
":email" => $data['email']
|
||||||
];
|
];
|
||||||
try {
|
try {
|
||||||
@@ -56,26 +56,26 @@ class StandortModel extends Database {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateStandort($standortid, $data) {
|
public function updateStandort($location_id, $data) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "UPDATE Standort SET
|
$sql = "UPDATE location SET
|
||||||
straße = :straße,
|
street = :street,
|
||||||
hausnr = :hausnr,
|
house_number = :house_number,
|
||||||
postleitzahl = :postleitzahl,
|
postal_code = :postal_code,
|
||||||
ort = :ort,
|
city = :city,
|
||||||
land = :land,
|
country = :country,
|
||||||
tel = :tel,
|
phone = :phone,
|
||||||
email = :email
|
email = :email
|
||||||
WHERE standortid = :standortid;";
|
WHERE location_id = :location_id;";
|
||||||
$params = [
|
$params = [
|
||||||
":straße" => $data['straße'],
|
":street" => $data['street'],
|
||||||
":hausnr" => $data['hausnr'],
|
":house_number" => $data['house_number'],
|
||||||
":postleitzahl" => $data['postleitzahl'],
|
":postal_code" => $data['postal_code'],
|
||||||
":ort" => $data['ort'],
|
":city" => $data['city'],
|
||||||
":land" => $data['land'],
|
":country" => $data['country'],
|
||||||
":tel" => $data['tel'],
|
":phone" => $data['phone'],
|
||||||
":email" => $data['email'],
|
":email" => $data['email'],
|
||||||
":standortid" => $standortid
|
":location_id" => $location_id
|
||||||
];
|
];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
@@ -87,10 +87,10 @@ class StandortModel extends Database {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deleteStandort($standortid) {
|
public function deleteStandort($location_id) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "DELETE FROM Standort WHERE standortid = :standortid;";
|
$sql = "DELETE FROM location WHERE location_id = :location_id;";
|
||||||
$params = [":standortid" => $standortid];
|
$params = [":location_id" => $location_id];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute($params);
|
$sth->execute($params);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ class TicketModel extends Database {
|
|||||||
|
|
||||||
public function getTickets() {
|
public function getTickets() {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "SELECT * FROM Ticket ORDER BY ticketid ASC;";
|
$sql = "SELECT * FROM ticket ORDER BY ticket_id ASC;";
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute();
|
$sth->execute();
|
||||||
@@ -21,13 +21,13 @@ class TicketModel extends Database {
|
|||||||
|
|
||||||
public function buyTicket($data) {
|
public function buyTicket($data) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "INSERT INTO Ticket (userid, eventid, kaufdatum, gültigkeitsdatum)
|
$sql = "INSERT INTO ticket (user_id, event_id, purchase_date, valid_until)
|
||||||
VALUES (:userid, :eventid, :kaufdatum, :gültigkeitsdatum);";
|
VALUES (:user_id, :event_id, :purchase_date, :valid_until);";
|
||||||
$params = [
|
$params = [
|
||||||
":userid" => $data['userid'],
|
":user_id" => $data['user_id'],
|
||||||
":eventid" => $data['eventid'],
|
":event_id" => $data['event_id'],
|
||||||
":kaufdatum" => $data['kaufdatum'],
|
":purchase_date" => $data['purchase_date'],
|
||||||
":gültigkeitsdatum" => $data['gültigkeitsdatum']
|
":valid_until" => $data['valid_until']
|
||||||
];
|
];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
@@ -39,12 +39,12 @@ class TicketModel extends Database {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function hasTicket($userid, $eventid) {
|
public function hasTicket($user_id, $event_id) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "SELECT COUNT(*) as count FROM Ticket WHERE userid = :userid AND eventid = :eventid;";
|
$sql = "SELECT COUNT(*) as count FROM ticket WHERE user_id = :user_id AND event_id = :event_id;";
|
||||||
$params = [
|
$params = [
|
||||||
":userid" => $userid,
|
":user_id" => $user_id,
|
||||||
":eventid" => $eventid
|
":event_id" => $event_id
|
||||||
];
|
];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
@@ -56,10 +56,10 @@ class TicketModel extends Database {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deleteTicket($ticketid) {
|
public function deleteTicket($ticket_id) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "DELETE FROM Ticket WHERE ticketid = :ticketid;";
|
$sql = "DELETE FROM ticket WHERE ticket_id = :ticket_id;";
|
||||||
$params = [":ticketid" => $ticketid];
|
$params = [":ticket_id" => $ticket_id];
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute($params);
|
$sth->execute($params);
|
||||||
|
|||||||
23
Views/Auth/forgotPassword.phtml
Normal file
23
Views/Auth/forgotPassword.phtml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<div class="inhalt">
|
||||||
|
<div class="login-container">
|
||||||
|
<h1>Anmelden</h1>
|
||||||
|
<?php if (!empty($errors['login'])): ?>
|
||||||
|
<div class="login-error"><?=htmlspecialchars($errors['login'])?></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
<form class="form-horizontal" action="index.php" method="post">
|
||||||
|
<input type="hidden" name="controller" value="Auth">
|
||||||
|
<input type="hidden" name="do" value="login">
|
||||||
|
<label for="email">E-Mail</label>
|
||||||
|
<input class="input-email" type="email" name="email" id="email" placeholder="E-Mail" required>
|
||||||
|
<label for="password">Passwort</label>
|
||||||
|
<input class="input-passwort" type="password" name="password" id="password" placeholder="Passwort" required>
|
||||||
|
<button class="button-loggin" type="submit">Login</button>
|
||||||
|
</form>
|
||||||
|
<div style="text-align:center; margin-top: 1.5em;">
|
||||||
|
<a class="link-passwort-vergessen" href="?controller=Auth&do=showForgotPasswordForm">Passwort vergessen?</a>
|
||||||
|
<br>
|
||||||
|
<a class="link-konto-erstellen" href="?controller=Auth&do=showRegistrationForm">Konto erstellen</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
@@ -1,20 +1,23 @@
|
|||||||
<div class="inhalt">
|
<div class="inhalt">
|
||||||
<div class="login-container">
|
<div class="form-container">
|
||||||
<h1>Anmelden</h1>
|
<h1>Anmelden</h1>
|
||||||
<form class="form-horizontal" action="#" method="post">
|
<?php if (!empty($errors['login'])): ?>
|
||||||
<label>
|
<div class="form-error"><?=htmlspecialchars($errors['login'])?></div>
|
||||||
<input class="input-email" type="text" placeholder="E-Mail">
|
<?php endif; ?>
|
||||||
</label>
|
<form class="form-horizontal" action="index.php" method="post">
|
||||||
|
<input type="hidden" name="controller" value="Auth">
|
||||||
|
<input type="hidden" name="do" value="login">
|
||||||
|
<label for="email">E-Mail</label>
|
||||||
|
<input class="input-email" type="email" name="email" id="email" placeholder="E-Mail" required>
|
||||||
|
<label for="password">Passwort</label>
|
||||||
|
<input class="input-passwort" type="password" name="password" id="password" placeholder="Passwort" required>
|
||||||
|
<button class="button-login" type="submit">Login</button>
|
||||||
</form>
|
</form>
|
||||||
<form class="form-horizontal" action="#" method="post">
|
<div style="text-align:center; margin-top: 1.5em;">
|
||||||
<label>
|
<a class="link-passwort-vergessen" href="?controller=Auth&do=showForgotPasswordForm">Passwort vergessen?</a>
|
||||||
<input class="input-passwort" type="text" placeholder="Passwort">
|
<br>
|
||||||
</label>
|
<a class="link-konto-erstellen" href="?controller=Auth&do=showRegistrationForm">Konto erstellen</a>
|
||||||
</form>
|
</div>
|
||||||
<button class="button-loggin">Login</button>
|
|
||||||
<a class="link-passwort-vergessen" href="?controller=Login&do=showPasswortVergessen">Passwort vergessen?</a>
|
|
||||||
<a class="link-konto-erstellen" href="?controller=Register&do=showRegisterPage">Konto erstellen</a>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
15
Views/Auth/showLoginSuccess.phtml
Normal file
15
Views/Auth/showLoginSuccess.phtml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<div class="inhalt">
|
||||||
|
<div class="login-success">
|
||||||
|
<h2>Login erfolgreich!</h2>
|
||||||
|
<p>Sie werden in wenigen Sekunden zu den News weitergeleitet...</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
setTimeout(function() {
|
||||||
|
window.location.href = "?controller=News&do=showNews";
|
||||||
|
}, 2000); // 2 Sekunden warten
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<meta http-equiv="refresh" content="2;url=?controller=News&do=showNews">
|
||||||
|
</noscript>
|
||||||
|
|
||||||
14
Views/Auth/showLogoutSuccess.phtml
Normal file
14
Views/Auth/showLogoutSuccess.phtml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<div class="inhalt">
|
||||||
|
<div class="login-success">
|
||||||
|
<h2>Logout erfolgreich!</h2>
|
||||||
|
<p>Sie werden in wenigen Sekunden zum Login weitergeleitet...</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
setTimeout(function() {
|
||||||
|
window.location.href = "?controller=Auth&do=showLoginForm";
|
||||||
|
}, 2000); // 2 Sekunden warten
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<meta http-equiv="refresh" content="2;url=?controller=Auth&do=showLoginForm">
|
||||||
|
</noscript>
|
||||||
37
Views/Auth/showRegistrationForm.phtml
Normal file
37
Views/Auth/showRegistrationForm.phtml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
<div class="inhalt">
|
||||||
|
<div class="form-container">
|
||||||
|
<h1>Registrieren</h1>
|
||||||
|
<?php if (!empty($errors['register'])): ?>
|
||||||
|
<div class="form-error"><?=htmlspecialchars($errors['register'])?></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
<form class="form-horizontal" action="index.php" method="post">
|
||||||
|
<input type="hidden" name="controller" value="Auth">
|
||||||
|
<input type="hidden" name="do" value="register">
|
||||||
|
<label for="first_name">Vorname</label>
|
||||||
|
<input class="input-vorname" type="text" name="first_name" id="first_name" placeholder="Vorname" required value="<?=htmlspecialchars($validData['first_name'] ?? '')?>">
|
||||||
|
<label for="last_name">Nachname</label>
|
||||||
|
<input class="input-nachname" type="text" name="last_name" id="last_name" placeholder="Nachname" required value="<?=htmlspecialchars($validData['last_name'] ?? '')?>">
|
||||||
|
<label for="email">E-Mail</label>
|
||||||
|
<input class="input-email" type="email" name="email" id="email" placeholder="E-Mail" required value="<?=htmlspecialchars($validData['email'] ?? '')?>">
|
||||||
|
<label for="password">Passwort</label>
|
||||||
|
<input class="input-passwort" type="password" name="password" id="password" placeholder="Passwort" required>
|
||||||
|
<label for="password_repeat">Passwort wiederholen</label>
|
||||||
|
<input class="input-passwort-repeat" type="password" name="password_repeat" id="password_repeat" placeholder="Passwort wiederholen" required>
|
||||||
|
<label for="street">Straße</label>
|
||||||
|
<input class="input-strasse" type="text" name="street" id="street" placeholder="Straße" required value="<?=htmlspecialchars($validData['street'] ?? '')?>">
|
||||||
|
<label for="house_number">Hausnr.</label>
|
||||||
|
<input class="input-hausnr" type="text" name="house_number" id="house_number" placeholder="Hausnr." required value="<?=htmlspecialchars($validData['house_number'] ?? '')?>">
|
||||||
|
<label for="postal_code">Postleitzahl</label>
|
||||||
|
<input class="input-postleitzahl" type="text" name="postal_code" id="postal_code" placeholder="Postleitzahl" required value="<?=htmlspecialchars($validData['postal_code'] ?? '')?>">
|
||||||
|
<label for="city">Ort</label>
|
||||||
|
<input class="input-ort" type="text" name="city" id="city" placeholder="Ort" required value="<?=htmlspecialchars($validData['city'] ?? '')?>">
|
||||||
|
<label for="country">Land</label>
|
||||||
|
<input class="input-land" type="text" name="country" id="country" placeholder="Land" required value="<?=htmlspecialchars($validData['country'] ?? '')?>">
|
||||||
|
<label for="phone">Telefonnr.</label>
|
||||||
|
<input class="input-tel" type="text" name="phone" id="phone" placeholder="Telefonnr." required value="<?=htmlspecialchars($validData['phone'] ?? '')?>">
|
||||||
|
<button class="button-register" type="submit">Registrieren</button>
|
||||||
|
</form>
|
||||||
|
<a class="link-konto-erstellen" href="?controller=Auth&do=showLoginForm">Login</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
14
Views/Auth/showRegistrationSuccess.phtml
Normal file
14
Views/Auth/showRegistrationSuccess.phtml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<div class="inhalt">
|
||||||
|
<div class="login-success">
|
||||||
|
<h2>Registrierung erfolgreich!</h2>
|
||||||
|
<p>Sie werden in wenigen Sekunden zum Login weitergeleitet...</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
setTimeout(function() {
|
||||||
|
window.location.href = "?controller=Auth&do=showLoginForm";
|
||||||
|
}, 2000);
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<meta http-equiv="refresh" content="2;url=?controller=Auth&do=showLoginForm">
|
||||||
|
</noscript>
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
<?php
|
|
||||||
include dirname(__DIR__).'/header.phtml';
|
|
||||||
?>
|
|
||||||
|
|
||||||
<div class="msg">
|
|
||||||
<p>Das Event "<?php echo $name?>" wurde erfolgreich erstellt!</p>
|
|
||||||
<a href="?controller=Event&do=showEvents">Weiter</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
|
||||||
@@ -2,11 +2,11 @@
|
|||||||
include dirname(__DIR__).'/header.phtml';
|
include dirname(__DIR__).'/header.phtml';
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
<div class="inhalt">
|
||||||
<div class="msg">
|
<div class="msg">
|
||||||
<p>Das Event mit der id"<?php echo $id?>" wurde erfolgreich gelöscht!</p>
|
<p>Das Event mit der id"<?php echo $id?>" wurde erfolgreich gelöscht!</p>
|
||||||
<a href="?controller=Event&do=showEvents">Weiter</a>
|
<a href="?controller=Event&do=showEvents">Weiter</a>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
||||||
36
Views/Event/showCreateEvent.phtml
Normal file
36
Views/Event/showCreateEvent.phtml
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
<div class="inhalt">
|
||||||
|
<h2>Create Event</h2>
|
||||||
|
<form action="/Event/create" method="POST">
|
||||||
|
<label>Event Name:</label>
|
||||||
|
<input type="text" name="name" required><br>
|
||||||
|
|
||||||
|
<label>Start Date:</label>
|
||||||
|
<input type="date" name="start_date" required><br>
|
||||||
|
|
||||||
|
<label>End Date:</label>
|
||||||
|
<input type="date" name="end_date" required><br>
|
||||||
|
|
||||||
|
<label>Location:</label>
|
||||||
|
<select name="location_id" required>
|
||||||
|
<option value="">Select location</option>
|
||||||
|
<?php if (!empty($locations)): ?>
|
||||||
|
<?php foreach ($locations as $loc): ?>
|
||||||
|
<option value="<?= htmlspecialchars($loc['location_id']) ?>">
|
||||||
|
<?= htmlspecialchars($loc['city']) ?>, <?= htmlspecialchars($loc['street']) ?> <?= htmlspecialchars($loc['house_number']) ?>
|
||||||
|
</option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</select><br>
|
||||||
|
|
||||||
|
<label>Description:</label>
|
||||||
|
<textarea name="description" required></textarea><br>
|
||||||
|
|
||||||
|
<label>Max Tickets:</label>
|
||||||
|
<input type="number" name="max_tickets" required><br>
|
||||||
|
|
||||||
|
<label>Ticket Price:</label>
|
||||||
|
<input type="number" step="0.01" name="ticket_price" required><br>
|
||||||
|
|
||||||
|
<button type="submit">Create Event</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
15
Views/Event/showCreateForwarding.phtml
Normal file
15
Views/Event/showCreateForwarding.phtml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<div class="inhalt">
|
||||||
|
<div class="create-forwarding">
|
||||||
|
<h2>Erstellen...</h2>
|
||||||
|
<p>Sie werden in wenigen Sekunden zu der Erstell Seite weitergeleitet...</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
setTimeout(function() {
|
||||||
|
window.location.href = "?controller=Event&do=showCreateEvent";
|
||||||
|
}, 2000); // 2 Sekunden warten
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<meta http-equiv="refresh" content="2;url=?controller=Event&do=showCreateEvent">
|
||||||
|
</noscript>
|
||||||
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
<?php include dirname(__DIR__) . '/header.phtml'; ?>
|
|
||||||
|
|
||||||
<h2>Alle Ausstellungen</h2>
|
|
||||||
|
|
||||||
<?php if (!empty($events)): ?>
|
<?php if (!empty($events)): ?>
|
||||||
|
<div class="inhalt">
|
||||||
|
<div class="event-container">
|
||||||
|
<h2>Alle Ausstellungen</h2>
|
||||||
|
<div class="event-container-inhalt">
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -17,9 +17,9 @@
|
|||||||
<?php foreach ($events as $event): ?>
|
<?php foreach ($events as $event): ?>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo htmlspecialchars($event['name']); ?></td>
|
<td><?php echo htmlspecialchars($event['name']); ?></td>
|
||||||
<td><?php echo nl2br(htmlspecialchars($event['beschreibung'])); ?></td>
|
<td><?php echo nl2br(htmlspecialchars($event['description'])); ?></td>
|
||||||
<td><?php echo date('d.m.Y', strtotime($event['datum_von'])); ?></td>
|
<td><?php echo date('d.m.Y', strtotime($event['start_date'])); ?></td>
|
||||||
<td><?php echo date('d.m.Y', strtotime($event['datum_bis'])); ?></td>
|
<td><?php echo date('d.m.Y', strtotime($event['end_date'])); ?></td>
|
||||||
<td><?php echo (int) $event['max_tickets']; ?></td>
|
<td><?php echo (int) $event['max_tickets']; ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
@@ -28,5 +28,6 @@
|
|||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<p>Derzeit sind keine Ausstellungen verfügbar.</p>
|
<p>Derzeit sind keine Ausstellungen verfügbar.</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
<?php include dirname(__DIR__) . '/footer.phtml'; ?>
|
</div>
|
||||||
|
</div>
|
||||||
34
Views/Event/showUpdateEvent.phtml
Normal file
34
Views/Event/showUpdateEvent.phtml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
include dirname(__DIR__).'/header.phtml';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="inhalt">
|
||||||
|
<h2>Update Event</h2>
|
||||||
|
<form action="/Event/update?id=<?= htmlspecialchars($event['id']) ?>" method="POST">
|
||||||
|
<label>Event Name:</label>
|
||||||
|
<input type="text" name="name" value="<?= htmlspecialchars($event['name']) ?>" required><br>
|
||||||
|
|
||||||
|
<label>Start Date:</label>
|
||||||
|
<input type="date" name="start_date" value="<?= htmlspecialchars($event['start_date']) ?>" required><br>
|
||||||
|
|
||||||
|
<label>End Date:</label>
|
||||||
|
<input type="date" name="end_date" value="<?= htmlspecialchars($event['end_date']) ?>" required><br>
|
||||||
|
|
||||||
|
<label>Location:</label>
|
||||||
|
<input type="text" name="location_name" value="<?= htmlspecialchars($event['location_name']) ?>" readonly><br>
|
||||||
|
<input type="hidden" name="location_id" value="<?= htmlspecialchars($event['location_id']) ?>">
|
||||||
|
|
||||||
|
<label>Description:</label>
|
||||||
|
<textarea name="description" required><?= htmlspecialchars($event['description']) ?></textarea><br>
|
||||||
|
|
||||||
|
<label>Max Tickets:</label>
|
||||||
|
<input type="number" name="max_tickets" value="<?= htmlspecialchars($event['max_tickets']) ?>" required><br>
|
||||||
|
|
||||||
|
<label>Ticket Price:</label>
|
||||||
|
<input type="number" step="0.01" name="ticket_price" value="<?= htmlspecialchars($event['ticket_price']) ?>" required><br>
|
||||||
|
|
||||||
|
<button type="submit">Update Event</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
||||||
15
Views/Event/showUpdateForwarding.phtml
Normal file
15
Views/Event/showUpdateForwarding.phtml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<div class="inhalt">
|
||||||
|
<div class="update-forwarding">
|
||||||
|
<h2>Editieren...</h2>
|
||||||
|
<p>Sie werden in wenigen Sekunden zur Edit Seite weitergeleitet...</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
setTimeout(function() {
|
||||||
|
window.location.href = "?controller=Event&do=showUpdateEvent";
|
||||||
|
}, 2000); // 2 Sekunden warten
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<meta http-equiv="refresh" content="2;url=?controller=Event&do=showUpdateEvent">
|
||||||
|
</noscript>
|
||||||
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
<?php
|
|
||||||
include dirname(__DIR__).'/header.phtml';
|
|
||||||
?>
|
|
||||||
|
|
||||||
<div class="msg">
|
|
||||||
<p>Das Event mit der ID "<?php echo $ausstellungid?>" wurde erfolgreich bearbeitet!</p>
|
|
||||||
<a href="?controller=Event&do=showEvents">Weiter</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
<?php include dirname(__DIR__) . '/header.phtml'; ?>
|
<?php include dirname(__DIR__) . '/header.phtml'; ?>
|
||||||
|
|
||||||
|
<div class="inhalt">
|
||||||
<h2>Alle Gutscheine</h2>
|
<h2>Alle Gutscheine</h2>
|
||||||
<a href="?controller=Gutschein&do=createGutscheinForm">Neuen Gutschein anlegen</a>
|
<a href="?controller=Gutschein&do=createGutscheinForm">Neuen Gutschein anlegen</a>
|
||||||
<?php if (!empty($gutscheine)): ?>
|
<?php if (!empty($gutscheine)): ?>
|
||||||
@@ -17,9 +18,9 @@
|
|||||||
<?php foreach ($gutscheine as $g): ?>
|
<?php foreach ($gutscheine as $g): ?>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo htmlspecialchars($g['code']); ?></td>
|
<td><?php echo htmlspecialchars($g['code']); ?></td>
|
||||||
<td><?php echo (int)$g['rabatt']; ?></td>
|
<td><?php echo (int)$g['discount']; ?></td>
|
||||||
<td><?php echo (int)$g['eventid']; ?></td>
|
<td><?php echo (int)$g['event_id']; ?></td>
|
||||||
<td><?php echo htmlspecialchars($g['gültigkeit']); ?></td>
|
<td><?php echo htmlspecialchars($g['valid_until']); ?></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="?controller=Gutschein&action=editGutscheinForm&id=<?php echo $g['gutscheinid']; ?>">Bearbeiten</a> |
|
<a href="?controller=Gutschein&action=editGutscheinForm&id=<?php echo $g['gutscheinid']; ?>">Bearbeiten</a> |
|
||||||
<a href="?controller=Gutschein&action=deleteGutschein&id=<?php echo $g['gutscheinid']; ?>" onclick="return confirm('Wirklich löschen?');">Löschen</a>
|
<a href="?controller=Gutschein&action=deleteGutschein&id=<?php echo $g['gutscheinid']; ?>" onclick="return confirm('Wirklich löschen?');">Löschen</a>
|
||||||
@@ -31,5 +32,5 @@
|
|||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<p>Keine Gutscheine vorhanden.</p>
|
<p>Keine Gutscheine vorhanden.</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
<?php include dirname(__DIR__) . '/footer.phtml'; ?>
|
<?php include dirname(__DIR__) . '/footer.phtml'; ?>
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
<?php include dirname(__DIR__) . '/header.phtml'; ?>
|
|
||||||
|
|
||||||
<h2>Alle News</h2>
|
|
||||||
|
|
||||||
<?php if (!empty($news)): ?>
|
<?php if (!empty($news)): ?>
|
||||||
|
<div class="inhalt">
|
||||||
|
<div class="event-container">
|
||||||
|
<h2>Alle Infos</h2>
|
||||||
|
<div class="event-container-inhalt">
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -15,14 +15,17 @@
|
|||||||
<?php foreach ($news as $item): ?>
|
<?php foreach ($news as $item): ?>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo htmlspecialchars($item['name']); ?></td>
|
<td><?php echo htmlspecialchars($item['name']); ?></td>
|
||||||
<td><?php echo nl2br(htmlspecialchars($item['beschreibung'])); ?></td>
|
<td><?php echo nl2br(htmlspecialchars($item['name'])); ?></td>
|
||||||
<td><?php echo date('d.m.Y', strtotime($item['datum'])); ?></td>
|
<td><?php echo nl2br(htmlspecialchars($item['description'])); ?></td>
|
||||||
|
<td><?php echo date('d.m.Y', strtotime($item['date'])); ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<p>Derzeit sind keine News verfügbar.</p>
|
<p>Derzeit sind keine News verfügbar.</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
<?php include dirname(__DIR__) . '/footer.phtml'; ?>
|
</div>
|
||||||
|
</div>
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
<div class="inhalt">
|
|
||||||
<div class="login-container">
|
|
||||||
<h1>Registrieren</h1>
|
|
||||||
<form class="form-horizontal" action="#" method="post">
|
|
||||||
<label>
|
|
||||||
<input class="input-vorname" type="text" placeholder="Vorname">
|
|
||||||
</label>
|
|
||||||
</form>
|
|
||||||
<form class="form-horizontal" action="#" method="post">
|
|
||||||
<label>
|
|
||||||
<input class="input-nachname" type="text" placeholder="Nachname">
|
|
||||||
</label>
|
|
||||||
</form>
|
|
||||||
<form class="form-horizontal" action="#" method="post">
|
|
||||||
<label>
|
|
||||||
<input class="input-email" type="text" placeholder="E-Mail">
|
|
||||||
</label>
|
|
||||||
</form>
|
|
||||||
<form class="form-horizontal" action="#" method="post">
|
|
||||||
<label>
|
|
||||||
<input class="input-passwort" type="text" placeholder="Passwort">
|
|
||||||
</label>
|
|
||||||
</form>
|
|
||||||
<form class="form-horizontal" action="#" method="post">
|
|
||||||
<label>
|
|
||||||
<input class="input-passwort-repeat" type="text" placeholder="Passwort wiederholen">
|
|
||||||
</label>
|
|
||||||
</form>
|
|
||||||
<form class="form-horizontal" action="#" method="post">
|
|
||||||
<label>
|
|
||||||
<input class="input-strasse" type="text" placeholder="Straße">
|
|
||||||
</label>
|
|
||||||
</form>
|
|
||||||
<form class="form-horizontal" action="#" method="post">
|
|
||||||
<label>
|
|
||||||
<input class="input-hausnr" type="text" placeholder="Hausnr.">
|
|
||||||
</label>
|
|
||||||
</form>
|
|
||||||
<form class="form-horizontal" action="#" method="post">
|
|
||||||
<label>
|
|
||||||
<input class="input-postleitzahl" type="text" placeholder="Postleitzahl">
|
|
||||||
</label>
|
|
||||||
</form>
|
|
||||||
<form class="form-horizontal" action="#" method="post">
|
|
||||||
<label>
|
|
||||||
<input class="input-ort" type="text" placeholder="Ort">
|
|
||||||
</label>
|
|
||||||
</form>
|
|
||||||
<form class="form-horizontal" action="#" method="post">
|
|
||||||
<label>
|
|
||||||
<input class="input-land" type="text" placeholder="Land">
|
|
||||||
</label>
|
|
||||||
</form>
|
|
||||||
<form class="form-horizontal" action="#" method="post">
|
|
||||||
<label>
|
|
||||||
<input class="input-tel" type="text" placeholder="Telefonnr.">
|
|
||||||
</label>
|
|
||||||
</form>
|
|
||||||
<button class="button-register">Registrieren</button>
|
|
||||||
<a class="link-konto-erstellen" href="?controller=Login&do=showLoginPage">Login</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
<?php include dirname(__DIR__) . '/header.phtml'; ?>
|
<?php include dirname(__DIR__) . '/header.phtml'; ?>
|
||||||
|
|
||||||
|
<div class="inhalt">
|
||||||
<h2>Unsere Standorte</h2>
|
<h2>Unsere Standorte</h2>
|
||||||
|
|
||||||
<?php if (!empty($standorte)): ?>
|
<?php if (!empty($standorte)): ?>
|
||||||
@@ -18,12 +19,12 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<?php foreach ($standorte as $standort): ?>
|
<?php foreach ($standorte as $standort): ?>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?php echo htmlspecialchars($standort['straße']); ?></td>
|
<td><?php echo htmlspecialchars($standort['street']); ?></td>
|
||||||
<td><?php echo htmlspecialchars($standort['hausnr']); ?></td>
|
<td><?php echo htmlspecialchars($standort['house_number']); ?></td>
|
||||||
<td><?php echo htmlspecialchars($standort['postleitzahl']); ?></td>
|
<td><?php echo htmlspecialchars($standort['postal_code']); ?></td>
|
||||||
<td><?php echo htmlspecialchars($standort['ort']); ?></td>
|
<td><?php echo htmlspecialchars($standort['city']); ?></td>
|
||||||
<td><?php echo htmlspecialchars($standort['land']); ?></td>
|
<td><?php echo htmlspecialchars($standort['country']); ?></td>
|
||||||
<td><?php echo htmlspecialchars($standort['tel']); ?></td>
|
<td><?php echo htmlspecialchars($standort['phone']); ?></td>
|
||||||
<td><?php echo htmlspecialchars($standort['email']); ?></td>
|
<td><?php echo htmlspecialchars($standort['email']); ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
@@ -32,5 +33,5 @@
|
|||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<p>Keine Standorte gefunden.</p>
|
<p>Keine Standorte gefunden.</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
<?php include dirname(__DIR__) . '/footer.phtml'; ?>
|
<?php include dirname(__DIR__) . '/footer.phtml'; ?>
|
||||||
@@ -12,11 +12,15 @@
|
|||||||
<div id="logo" ><a class="link-logo" href="#"></a></div>
|
<div id="logo" ><a class="link-logo" href="#"></a></div>
|
||||||
<button id="nav-toggle-btn" aria-label="Menü ein-/ausklappen">▼</button>
|
<button id="nav-toggle-btn" aria-label="Menü ein-/ausklappen">▼</button>
|
||||||
<div class="nav-links">
|
<div class="nav-links">
|
||||||
<a id="link-tickets" class="links" href="?controller=Tickets&do=showTickets">Tickets</a>
|
<?php if (isset($_SESSION['user'])): ?>
|
||||||
<a id="link-infos" class="links" href="?controller=Welcome&do=showWelcome">Infos</a>
|
<a id="link-tickets" class="links" href="?controller=Event&do=showEvents">Event</a>
|
||||||
<a id="link-profil" class="links" href="?controller=Profile&do=showProfile">Profil</a>
|
<a id="link-infos" class="links" href="?controller=News&do=showNews">Infos</a>
|
||||||
<a id="link-login" class="links" href="?controller=Login&do=showLoginPage">Login</a>
|
<a id="link-profil" class="links" href="?controller=Profile&do=showProfile">Profil</a>
|
||||||
<a id="link-register" class="links" href="?controller=Register&do=showRegisterPage">Register</a>
|
<a id="link-logout" class="links" href="?controller=Auth&do=logout">Logout</a>
|
||||||
|
<?php else: ?>
|
||||||
|
<a id="link-login" class="links" href="?controller=Auth&do=showLoginForm">Login</a>
|
||||||
|
<a id="link-register" class="links" href="?controller=Auth&do=showRegistrationForm">Register</a>
|
||||||
|
<?php endif; ?>
|
||||||
<div id="profile-picture"></div>
|
<div id="profile-picture"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
136
bibarts.sql
136
bibarts.sql
@@ -1,124 +1,112 @@
|
|||||||
-- phpMyAdmin SQL Dump
|
|
||||||
-- version 4.5.1
|
|
||||||
-- http://www.phpmyadmin.net
|
|
||||||
--
|
|
||||||
-- Host: 127.0.0.1
|
|
||||||
-- Erstellungszeit: 24. Nov 2017 um 17:01
|
|
||||||
-- Server-Version: 10.1.16-MariaDB
|
|
||||||
-- PHP-Version: 7.0.9
|
|
||||||
|
|
||||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||||
SET time_zone = "+00:00";
|
SET time_zone = "+00:00";
|
||||||
|
|
||||||
--
|
|
||||||
-- Datenbank: `blog`
|
|
||||||
--
|
|
||||||
|
|
||||||
-- --------------------------------------------------------
|
-- --------------------------------------------------------
|
||||||
|
|
||||||
CREATE TABLE User (
|
CREATE TABLE user (
|
||||||
userid INT AUTO_INCREMENT PRIMARY KEY,
|
user_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
vorname VARCHAR(50),
|
first_name VARCHAR(50),
|
||||||
nachname VARCHAR(50),
|
last_name VARCHAR(50),
|
||||||
strasse VARCHAR(100),
|
street VARCHAR(100),
|
||||||
hausnr VARCHAR(10),
|
house_number VARCHAR(10),
|
||||||
postleitzahl VARCHAR(10),
|
postal_code VARCHAR(10),
|
||||||
ort VARCHAR(50),
|
city VARCHAR(50),
|
||||||
land VARCHAR(50),
|
country VARCHAR(50),
|
||||||
tel VARCHAR(20),
|
phone VARCHAR(20),
|
||||||
email VARCHAR(100) UNIQUE,
|
email VARCHAR(100) UNIQUE,
|
||||||
isAdmin BOOLEAN DEFAULT FALSE,
|
is_admin BOOLEAN DEFAULT FALSE,
|
||||||
|
valid_until DATETIME NOT NULL DEFAULT '3025-01-01 00:00:00',
|
||||||
password VARCHAR(255)
|
password VARCHAR(255)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE Standort (
|
CREATE TABLE location (
|
||||||
standortid INT AUTO_INCREMENT PRIMARY KEY,
|
location_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
strasse VARCHAR(100),
|
street VARCHAR(100),
|
||||||
hausnr VARCHAR(10),
|
house_number VARCHAR(10),
|
||||||
plz VARCHAR(10),
|
postal_code VARCHAR(10),
|
||||||
ort VARCHAR(50),
|
city VARCHAR(50),
|
||||||
land VARCHAR(50),
|
country VARCHAR(50),
|
||||||
tel VARCHAR(20),
|
phone VARCHAR(20),
|
||||||
email VARCHAR(100)
|
email VARCHAR(100)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE Ausstellung (
|
CREATE TABLE event (
|
||||||
austellungid INT AUTO_INCREMENT PRIMARY KEY,
|
event_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
standortid INT,
|
location_id INT,
|
||||||
datum_von DATE,
|
start_date DATE,
|
||||||
datum_bis DATE,
|
end_date DATE,
|
||||||
name VARCHAR(100),
|
name VARCHAR(100),
|
||||||
beschreibung TEXT,
|
description TEXT,
|
||||||
max_tickets INT,
|
max_tickets INT,
|
||||||
FOREIGN KEY (standortid) REFERENCES Standort(standortid)
|
ticket_price DECIMAL(5,2),
|
||||||
|
FOREIGN KEY (location_id) REFERENCES location(location_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE Ticket (
|
CREATE TABLE ticket (
|
||||||
ticketid INT AUTO_INCREMENT PRIMARY KEY,
|
ticket_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
userid INT,
|
user_id INT,
|
||||||
ausstellungid INT,
|
event_id INT,
|
||||||
kaufdatum DATE,
|
purchase_date DATE,
|
||||||
gueltigkeit DATE,
|
valid_until DATE,
|
||||||
preis DECIMAL(10,2),
|
FOREIGN KEY (user_id) REFERENCES user(user_id),
|
||||||
FOREIGN KEY (userid) REFERENCES User(userid),
|
FOREIGN KEY (event_id) REFERENCES event(event_id)
|
||||||
FOREIGN KEY (ausstellungid) REFERENCES Ausstellung(austellungid)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE Gutschein (
|
CREATE TABLE voucher (
|
||||||
gutscheinid INT AUTO_INCREMENT PRIMARY KEY,
|
voucher_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
code VARCHAR(50) UNIQUE,
|
code VARCHAR(50) UNIQUE,
|
||||||
rabatt INT CHECK (rabatt BETWEEN 0 AND 100),
|
discount INT CHECK (discount BETWEEN 0 AND 100),
|
||||||
ausstellungid INT,
|
event_id INT,
|
||||||
gueltigkeit DATE,
|
valid_until DATE,
|
||||||
FOREIGN KEY (ausstellungid) REFERENCES Ausstellung(austellungid)
|
FOREIGN KEY (event_id) REFERENCES event(event_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE News (
|
CREATE TABLE news (
|
||||||
newsid INT AUTO_INCREMENT PRIMARY KEY,
|
news_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
name VARCHAR(100),
|
name VARCHAR(100),
|
||||||
beschreibung TEXT,
|
description TEXT,
|
||||||
datum DATE
|
date DATE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- User-Daten
|
-- User-Daten (Passwort: passwort123)
|
||||||
INSERT INTO User (vorname, nachname, strasse, hausnr, postleitzahl, ort, land, tel, email, isAdmin, password)
|
INSERT INTO user (first_name, last_name, street, house_number, postal_code, city, country, phone, email, is_admin, password)
|
||||||
VALUES
|
VALUES
|
||||||
('Max', 'Muster', 'Musterstraße', '1', '12345', 'Musterstadt', 'Deutschland', '0123456789', 'max@muster.de', FALSE, 'passwort123'),
|
('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, 'adminpass');
|
('Anna', 'Beispiel', 'Beispielweg', '5a', '54321', 'Beispielstadt', 'Deutschland', '0987654321', 'anna@beispiel.de', TRUE, '$2y$10$cnPBpkvLbdpDxzYvxlQg9uVp5y8ggr2SWL8NAMg9zk.3QnnEl.MGq');
|
||||||
|
|
||||||
-- Standort-Daten
|
-- Standort-Daten
|
||||||
INSERT INTO Standort (strasse, hausnr, plz, ort, land, tel, email)
|
INSERT INTO location (street, house_number, postal_code, city, country, phone, email)
|
||||||
VALUES
|
VALUES
|
||||||
('Galeriestraße', '10', '10115', 'Berlin', 'Deutschland', '030123456', 'kontakt@galerie-berlin.de'),
|
('Galeriestraße', '10', '10115', 'Berlin', 'Deutschland', '030123456', 'kontakt@galerie-berlin.de'),
|
||||||
('Kunstallee', '22b', '50667', 'Köln', 'Deutschland', '0221123456', 'info@kunst-koeln.de');
|
('Kunstallee', '22b', '50667', 'Köln', 'Deutschland', '0221123456', 'info@kunst-koeln.de');
|
||||||
|
|
||||||
-- Ausstellung-Daten
|
-- Ausstellung-Daten
|
||||||
INSERT INTO Ausstellung (standortid, datum_von, datum_bis, name, beschreibung, max_tickets)
|
INSERT INTO event (location_id, start_date, end_date, name, description, max_tickets, ticket_price)
|
||||||
VALUES
|
VALUES
|
||||||
(1, '2025-07-01', '2025-08-31', 'Moderne Meisterwerke', 'Eine Sammlung moderner Kunstwerke aus Europa.', 200),
|
(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);
|
(2, '2025-09-10', '2025-10-20', 'Kunst der Antike', 'Ausstellung antiker Skulpturen und Gemälde.', 150, 39.99);
|
||||||
|
|
||||||
-- Gutschein-Daten (Spaltennamen korrigiert)
|
-- Gutschein-Daten
|
||||||
INSERT INTO Gutschein (code, rabatt, ausstellungid, gueltigkeit)
|
INSERT INTO voucher (code, discount, event_id, valid_until)
|
||||||
VALUES
|
VALUES
|
||||||
('SOMMER2025', 15, 1, '2025-08-31'),
|
('SOMMER2025', 15, 1, '2025-08-31'),
|
||||||
('HERBST25', 25, 2, '2025-10-15');
|
('HERBST25', 25, 2, '2025-10-15');
|
||||||
|
|
||||||
-- Ticket-Daten (Spaltennamen korrigiert)
|
-- Ticket-Daten
|
||||||
INSERT INTO Ticket (userid, ausstellungid, kaufdatum, gueltigkeit, preis)
|
INSERT INTO ticket (user_id, event_id, purchase_date, valid_until)
|
||||||
VALUES
|
VALUES
|
||||||
(1, 1, '2025-06-01', '2025-07-15', 12.50),
|
(1, 1, '2025-06-01', '2025-07-15'),
|
||||||
(2, 2, '2025-06-05', '2025-09-15', 10.00);
|
(2, 2, '2025-06-05', '2025-09-15');
|
||||||
|
|
||||||
-- News-Daten
|
-- News-Daten
|
||||||
INSERT INTO News (name, beschreibung, datum)
|
INSERT INTO news (name, description, date)
|
||||||
VALUES
|
VALUES
|
||||||
('Neuer Standort eröffnet', 'Unsere Galerie in Köln ist jetzt geöffnet!', '2025-06-01'),
|
('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');
|
('Frühbucher-Rabatt', 'Sichern Sie sich jetzt 15% Rabatt auf unsere Sommerausstellung.', '2025-05-20');
|
||||||
|
|||||||
74
index.php
74
index.php
@@ -2,48 +2,46 @@
|
|||||||
session_start();
|
session_start();
|
||||||
include 'Views/header.phtml';
|
include 'Views/header.phtml';
|
||||||
?>
|
?>
|
||||||
<div id="wrapper">
|
<?php
|
||||||
<?php
|
spl_autoload_register(function ($className) {
|
||||||
spl_autoload_register(function ($className) {
|
if (substr($className, 0, 5) !== 'Blog\\') {
|
||||||
if (substr($className, 0, 5) !== 'Blog\\') {
|
// not our business
|
||||||
// not our business
|
return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$fileName = __DIR__.'/'.str_replace('\\', DIRECTORY_SEPARATOR, substr($className, 5)).'.php';
|
|
||||||
|
|
||||||
if (file_exists($fileName)) {
|
|
||||||
include $fileName;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
$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";
|
|
||||||
} else {
|
|
||||||
$controllerName = isset($_GET['controller']) && $_GET['controller'] ? $_GET['controller'] : "Welcome";
|
|
||||||
$doMethodName = isset($_GET['do']) && $_GET['do'] ? $_GET['do'] : "showWelcome";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$controllerClassName = 'Blog\\Controller\\'.ucfirst($controllerName).'Controller';
|
$fileName = __DIR__.'/'.str_replace('\\', DIRECTORY_SEPARATOR, substr($className, 5)).'.php';
|
||||||
|
|
||||||
if (method_exists($controllerClassName, $doMethodName)) {
|
if (file_exists($fileName)) {
|
||||||
$view = new \Blog\Library\View(__DIR__.DIRECTORY_SEPARATOR.'Views'
|
include $fileName;
|
||||||
, ucfirst($controllerName), $doMethodName);
|
|
||||||
|
|
||||||
$controller = new $controllerClassName($view);
|
|
||||||
$controller->$doMethodName();
|
|
||||||
|
|
||||||
$view->render();
|
|
||||||
|
|
||||||
} else {
|
|
||||||
new \Blog\Library\ErrorMsg('Page not found: '.$controllerClassName.'::'.$doMethodName);
|
|
||||||
}
|
}
|
||||||
?>
|
});
|
||||||
</div>
|
|
||||||
|
|
||||||
|
$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";
|
||||||
|
} else {
|
||||||
|
$controllerName = isset($_GET['controller']) && $_GET['controller'] ? $_GET['controller'] : "Welcome";
|
||||||
|
$doMethodName = isset($_GET['do']) && $_GET['do'] ? $_GET['do'] : "showWelcome";
|
||||||
|
}
|
||||||
|
|
||||||
|
$controllerClassName = 'Blog\\Controller\\'.ucfirst($controllerName).'Controller';
|
||||||
|
|
||||||
|
if (method_exists($controllerClassName, $doMethodName)) {
|
||||||
|
$view = new \Blog\Library\View(__DIR__.DIRECTORY_SEPARATOR.'Views'
|
||||||
|
, ucfirst($controllerName), $doMethodName);
|
||||||
|
|
||||||
|
$controller = new $controllerClassName($view);
|
||||||
|
$controller->$doMethodName();
|
||||||
|
|
||||||
|
$view->render();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
new \Blog\Library\ErrorMsg('Page not found: '.$controllerClassName.'::'.$doMethodName);
|
||||||
|
}
|
||||||
|
?>
|
||||||
<?php
|
<?php
|
||||||
include 'Views/footer.phtml';
|
include 'Views/footer.phtml';
|
||||||
?>
|
?>
|
||||||
|
|||||||
Reference in New Issue
Block a user