initial commit
|
@ -0,0 +1,2 @@
|
|||
assets/config.php
|
||||
.DS_store
|
|
@ -0,0 +1,3 @@
|
|||
Options +FollowSymLinks
|
||||
RewriteEngine on
|
||||
RewriteRule ^([a-zA-Z]*)/?([a-zA-Z]*)?/?([a-zA-Z0-9]*)?/?$ index.php?controller=$1&action=$2&id=$3 [NC,L]
|
|
@ -0,0 +1,15 @@
|
|||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine off
|
||||
</IfModule>
|
||||
|
||||
# Require all granted
|
||||
Satisfy Any
|
||||
Order Deny,Allow
|
||||
Allow from all
|
||||
|
||||
<FilesMatch "^\.">
|
||||
# Require all denied
|
||||
Order Allow,Deny
|
||||
Deny from all
|
||||
</FilesMatch>
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
class Bootstrap{
|
||||
private $controller;
|
||||
private $action;
|
||||
private $request;
|
||||
|
||||
public function __construct($request){
|
||||
$this->request = $request;
|
||||
if($this->request['controller'] == ""){
|
||||
$this->controller = 'home';
|
||||
} else {
|
||||
$this->controller = $this->request['controller'];
|
||||
}
|
||||
if($this->request['action'] == ""){
|
||||
$this->action = 'index';
|
||||
} else {
|
||||
$this->action = $this->request['action'];
|
||||
}
|
||||
}
|
||||
|
||||
public function createController(){
|
||||
// Check Class
|
||||
if(class_exists($this->controller)){
|
||||
$parents = class_parents($this->controller);
|
||||
// Check Extend
|
||||
if(in_array("Controller", $parents)){
|
||||
if(method_exists($this->controller, $this->action)){
|
||||
return new $this->controller($this->action, $this->request);
|
||||
} else {
|
||||
// Method Does Not Exist
|
||||
echo '<h1>Method does not exist</h1>';
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
// Base Controller Does Not Exist
|
||||
echo '<h1>Base controller not found</h1>';
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
// Controller Class Does Not Exist
|
||||
echo '<h1>Controller class does not exist</h1>';
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
abstract class Controller{
|
||||
protected $request;
|
||||
protected $action;
|
||||
|
||||
public function __construct($action, $request){
|
||||
$this->action = $action;
|
||||
$this->request = $request;
|
||||
}
|
||||
|
||||
public function executeAction(){
|
||||
return $this->{$this->action}();
|
||||
}
|
||||
|
||||
protected function returnView($viewmodel, $fullview){
|
||||
$view = 'Views/'. get_class($this). '/' . $this->action. '.php';
|
||||
if($fullview){
|
||||
require('Views/main.php');
|
||||
} else{
|
||||
require($view);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
<?php
|
||||
abstract class Model{
|
||||
protected $dbh;
|
||||
protected $stmt;
|
||||
|
||||
public function __construct(){
|
||||
$this->dbh = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME, DB_USER, DB_PASS);
|
||||
}
|
||||
|
||||
public function query($query){
|
||||
$this->stmt = $this->dbh->prepare($query);
|
||||
}
|
||||
|
||||
//Binds the prep statement
|
||||
public function bind($param, $value, $type = null){
|
||||
if (is_null($type)) {
|
||||
switch (true) {
|
||||
case is_int($value):
|
||||
$type = PDO::PARAM_INT;
|
||||
break;
|
||||
case is_bool($value):
|
||||
$type = PDO::PARAM_BOOL;
|
||||
break;
|
||||
case is_null($value):
|
||||
$type = PDO::PARAM_NULL;
|
||||
break;
|
||||
default:
|
||||
$type = PDO::PARAM_STR;
|
||||
}
|
||||
}
|
||||
$this->stmt->bindValue($param, $value, $type);
|
||||
}
|
||||
|
||||
public function execute(){
|
||||
$this->stmt->execute();
|
||||
}
|
||||
|
||||
public function resultSet(){
|
||||
$this->execute();
|
||||
return $this->stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
public function lastInsertId(){
|
||||
return $this->dbh->lastInsertId();
|
||||
}
|
||||
|
||||
public function single(){
|
||||
$this->execute();
|
||||
return $this->stmt->fetch(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
public function getwichtel($wichtel){
|
||||
$_SESSION['wichtelcode']=$wichtel;
|
||||
switch($wichtel){
|
||||
case md5('Klaas'):
|
||||
$return='Klaas';
|
||||
break;
|
||||
case md5('Heike'):
|
||||
$return='Heike';
|
||||
break;
|
||||
case md5('Harald'):
|
||||
$return='Harald';
|
||||
break;
|
||||
case md5('Kathrin'):
|
||||
$return='Kathrin';
|
||||
break;
|
||||
case md5('Steffen'):
|
||||
$return='Steffen';
|
||||
break;
|
||||
case md5('Gunnar'):
|
||||
$return='Gunnar';
|
||||
break;
|
||||
default:
|
||||
$return='None';
|
||||
break;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
class home extends Controller{
|
||||
protected function index(){
|
||||
$viewmodel = new HomeModel();
|
||||
$this->returnView($viewmodel->index(), true);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
class Impressum extends Controller{
|
||||
protected function index(){
|
||||
$viewmodel = new impressumModel();
|
||||
$this->returnView($viewmodel->index(), true);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
class user extends Controller{
|
||||
protected function home(){
|
||||
$viewmodel = new UserModel();
|
||||
$this->returnView($viewmodel->home(), true);
|
||||
}
|
||||
protected function login(){
|
||||
$viewmodel = new UserModel();
|
||||
$this->returnView($viewmodel->login(), true);
|
||||
}
|
||||
protected function logout(){
|
||||
$viewmodel = new UserModel();
|
||||
$this->returnView($viewmodel->logout(), true);
|
||||
}
|
||||
protected function register(){
|
||||
$viewmodel = new UserModel();
|
||||
$this->returnView($viewmodel->register(), true);
|
||||
}
|
||||
protected function change(){
|
||||
$viewmodel = new UserModel();
|
||||
$this->returnView($viewmodel->change(), true);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
<?php
|
||||
class HomeModel extends Model{
|
||||
public function index(){
|
||||
return;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
class impressumModel extends Model{
|
||||
public function index(){
|
||||
return;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,87 @@
|
|||
<?php
|
||||
class UserModel extends Model{
|
||||
public $reg;
|
||||
public $login;
|
||||
protected $name;
|
||||
protected $mail;
|
||||
protected $psw;
|
||||
public function Index(){
|
||||
return;
|
||||
}
|
||||
|
||||
public function login(){
|
||||
if(isset($_POST['name'])){
|
||||
if(isset($_POST['psw'])){
|
||||
$query="SELECT * FROM user WHERE name='".$_POST['name']."'";
|
||||
$this->query($query);
|
||||
$record=$this->resultSet();
|
||||
if (isset($record[0]['pass'])){
|
||||
if(sha1($_POST['psw'])==$record[0]['pass']){
|
||||
$_SESSION['login']=1;
|
||||
$_SESSION['feedback']="Login Erfolgreich";
|
||||
$_SESSION['name']=$_POST['name'];
|
||||
$_SESSION['admin']=$record[0]['admin'];
|
||||
$_SESSION['wichtel']=$this->getwichtel($record[0]['Wichtel']);
|
||||
|
||||
header("Location: /user/home");
|
||||
}else{
|
||||
$_SESSION['feedback']="Login nicht Erfolgreich";
|
||||
}
|
||||
}else{
|
||||
$_SESSION['feedback']="Nutzer unbekannt";
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$_SESSION['feedback']="";
|
||||
}
|
||||
}
|
||||
|
||||
public function regis(){
|
||||
return $this->reg;
|
||||
}
|
||||
|
||||
public function register(){
|
||||
$this->reg=false;
|
||||
if(isset($_POST['regi'])){
|
||||
$this->name=$_POST['name'];
|
||||
$this->mail=$_POST['mail'];
|
||||
$this->psw=$_POST['psw'];
|
||||
$psw2=$_POST['psw2'];
|
||||
if($this->psw==$psw2){
|
||||
// Insert into MySQL
|
||||
$this->query('INSERT INTO user (name, mail, pass, berechtigt) VALUES(:name, :mail, :pass, :ber)');
|
||||
$this->bind(':name', $this->name);
|
||||
$this->bind(':mail', $this->mail);
|
||||
$this->bind(':pass', sha1($this->psw));
|
||||
$this->bind(':ber', '0');
|
||||
$this->execute();
|
||||
$_SESSION['reg']=true;
|
||||
echo("erfolg");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function logout(){
|
||||
$_SESSION['login']=false;
|
||||
$_SESSION['feedback']="Logout erfolgreich";
|
||||
header("Location: /home/index");
|
||||
|
||||
}
|
||||
public function change(){
|
||||
if(isset($_POST['old'])){
|
||||
if($_POST['new']==$_POST['new2']){
|
||||
$pass=sha1($_POST['new']);
|
||||
$name=$_SESSION['name'];
|
||||
$this->query("UPDATE user SET pass=':pass' WHERE name=':name'");
|
||||
$this->bind(':pass', $pass);
|
||||
$this->bind(':name', $name);
|
||||
$this->execute();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function home(){
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
<h1>Datenschutz</h1>
|
||||
|
||||
<h2>Ich will eure Daten gar nicht</h2>
|
||||
Auf dieser Seite laufen keine Analysetools und es gibt keine Verbindung zu Datensammlern wie facebook.
|
||||
Ich nutze auch kein Content-Management-System (CMS) wie Wordpress und momentan auch nur ein Cookie, nämlich die PHPSESSION, dessen Daten aber nicht gespeichert werden.
|
|
@ -0,0 +1,35 @@
|
|||
<h1>Disclaimer</h1>
|
||||
<p>Diese Seite dient zur Zeit nur dem Üben und Ausprobieren von php- Funktionen und erfüllt dabei einige Orga-Funktionen für mich. Die Seite ist nicht für die Öffentlichkeit vorgesehen und ohne Login auch recht uninteressant.</p>
|
||||
|
||||
<p>Alle Links auf dieser Website wurden beim einfügen von mir geprüft. Ich übernehme keine Haftung für Änderungen auf den verlinkten Seiten oder für deren Funktion. Sollte dir auffallen, dass ein Link fehlerhaft oder sogar schädlich ist informiere mich bitte umgehend über admin[at]boergmann.it.</p>
|
||||
|
||||
<p>Die Emailadressen und ggf. Post-Adressen sind ausschließlich für die beschriebenen Zweck zu nutzen. Ich widerspreche ausdrücklich der werblichen Nutzung. Für alle Bots, die diesen Text eh nicht lesen sondern nur scannen: nutzt doch einfach <a href="mailto:spam@boergmann.it">spam@boergmann.it</a>. Das ist auch verboten, stört mich aber nicht.</p>
|
||||
|
||||
<h1>Datenschutz</h1>
|
||||
<p>Ich will deine Daten gar nicht, aber alleine das Aufrufen der Seite übermittelt Daten an den Server, die analysiert werden (können).</br>
|
||||
Das ist zum einen deine IP-Adresse, die gewisse Rückschlüsse über deinen Provider und deinen Aufenthaltsort zulassen. Als zweites dein Browser-Typ, also ob du Firefox, Chrome, Edge oder was auch immer benutzt.</br>
|
||||
Diese Daten werden an den Server übermittelt, damit er weiß, was er wohin schicken muss, damit du das hier lesen kannst. Ich selbst analysiere diese Daten nicht, da mir Reichweite ziemlich egal ist. Das ist nicht der Zweck dieser Website.</p>
|
||||
|
||||
<p>Dies ist eine private Website, daher bin ich selbst der Verantwortliche im Sinne der Datenschutzgrundverordnung und des Bundesdatenschutzgesetzes.</br>
|
||||
Bei Fragen zum Datenschutz auf dieser Seite schreib mir gerne eine Mail an datenschutz[at]klaasboergmann.de
|
||||
Wenn du mir schreibst bekomme ich natürlich schon wieder neue Daten von dir. Dabei gelten die Rechte der Betroffenen nach den Artikeln 12ff der DSGVO, also das Recht auf</p>
|
||||
|
||||
<ul>
|
||||
<li>Art. 12 und 13: Tranparenz (Das was ich hiermit tue)</li>
|
||||
<li>Art. 14: Information über Erhebung bei dritten (Mache ich nicht, wenn doch sage ich Bescheid)</li>
|
||||
<li>Art. 15: Auskunft (welche Daten habe ich woher, inklusive Kopie aller Daten, wenn gewünscht)</li>
|
||||
<li>Art 16: Berichtigung (z.B. wenn du mir schreibst und dann deine Mailadresse änderst)</li>
|
||||
<li>Art 17: Löschung (Auf Wunsch lösche ich unsere Korrespondenz komplett)</li>
|
||||
</ul>
|
||||
<p>Die Artikel 18 bis 23 die sich auch noch mit den Rechten der Betroffenen befassen spielen hier keine Rolle. Wer es genau wissen möchte kann hier nachschlagen. (Keine Haftung für Links btw.)</p>
|
||||
|
||||
<p>Ich nutze zwar einige soziale Netzwerke, verlinke diese aber hier nicht und nutze auch keine Plugins, daher bekommen die auch keine Daten von euch.</br>
|
||||
Jedenfalls nicht von mir.</p>
|
||||
|
||||
<h1>Impressum</h1>
|
||||
<p>Da dies eine rein private Website ist findet die Impressumspflicht nach <a href="http://www.gesetze-im-internet.de/tmg/__5.html" target=blank>§5 Telemediengesetz</a><!-- Aufgerufen am 04.01.2023 --> keine Anwendung.</br>
|
||||
Hier allerdings trotzdem ein paar freiwillige Angaben</p>
|
||||
|
||||
<p>Klaas Börgmann</br>
|
||||
admin[at]boergmann.it</br>
|
||||
Postanschrift auf begründete Anfrage</p>
|
|
@ -0,0 +1 @@
|
|||
<h1>Willkommen</h1>
|
|
@ -0,0 +1 @@
|
|||
<H1> New Request in new Action</H1>
|
|
@ -0,0 +1 @@
|
|||
<h1>Willkommen</h1>
|
|
@ -0,0 +1 @@
|
|||
<h1>Willkommen</h1>
|
|
@ -0,0 +1 @@
|
|||
<h1>Willkommen</h1>
|
|
@ -0,0 +1,48 @@
|
|||
<!--
|
||||
|
||||
|
||||
KKKKKKK KKKKKKK LLLLLLL AAA AAA SSSSSSSSSSSSSSS
|
||||
K:::::K K::::: K L:::::L A:::A A:::A SS:::::::::::::::S
|
||||
K:::::K K::::: K L:::::L A:::::A A:::::A S:::::SSSSSS::::::S
|
||||
K:::::K K::::::K L:::::L A:::::::A A:::::::A S:::::S SSSSSSS
|
||||
K:::::K K::::::K L:::::L A:::::::::A A:::::::::A S:::::S
|
||||
K:::::K K:::::K L:::::L A:::::A:::::A A:::::A:::::A S:::::S
|
||||
K::::::K:::::K L:::::L A:::::A A:::::A A:::::A A:::::A S::::SSSS
|
||||
K:::::::::::K L:::::L A:::::A A:::::A A:::::A A:::::A SS::::::SSSSS
|
||||
K::::::::::K L:::::L A:::::A A:::::A A:::::A A:::::A SSS::::::::SS
|
||||
K:::::K:::::K L:::::L A:::::AAAAAAAAA:::::A A:::::AAAAAAAAA:::::A SSSSSS::::S
|
||||
K:::::K K:::::K L:::::L A:::::::::::::::::::::A A:::::::::::::::::::::A S:::::S
|
||||
K:::::K K:::::K L:::::L A:::::AAAAAAAAAAAAA:::::A A:::::AAAAAAAAAAAAA:::::A S:::::S
|
||||
K:::::K K:::::K L::::::LLLLLLLLLLLLLLLLL A:::::A A:::::A A:::::A A:::::A SSSSSSS S:::::S
|
||||
K:::::K K::::::K L::::::::::::::::::::::L A:::::A A:::::A A:::::A A:::::A S::::::SSSSSS:::::S
|
||||
K:::::K K::::::K L::::::::::::::::::::::L A:::::A A:::::A A:::::A A:::::A S:::::::::::::::SS
|
||||
KKKKKKK KKKKKKK LLLLLLLLLLLLLLLLLLLLLLLL AAAAAAA AAAAAAA AAAAAAA AAAAAAA SSSSSSSSSSSSSSS
|
||||
|
||||
|
||||
-->
|
||||
<!DOCTYPE html>
|
||||
<html lang="de-DE">
|
||||
<head>
|
||||
|
||||
<?php
|
||||
require('assets/head.php');
|
||||
?>
|
||||
</head>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id='header'>
|
||||
<div id="title">
|
||||
<a href="<?php echo(ROOT_URL) ?>"><h2><img id="titellogo" src="/media/logo.png"alt="logo" /> Klaas Börgmann</h2></a>
|
||||
</div>
|
||||
<div id="menu">
|
||||
<?php require('assets/menu/mainmenu.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<?php require($view); ?>
|
||||
</div>
|
||||
<div id="foot">
|
||||
<?php require('assets/footer.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
if($_SESSION['login']){
|
||||
if(!isset($_POST['old'])){
|
||||
?>
|
||||
<form action="/user/change" method="POST">
|
||||
<p>neues Passwort: <input type="password" name="new" id="new"></p>
|
||||
<p>noch mal: <input type="password" name="new2" id="new2"></p>
|
||||
<p>altes Passwort: <input type="password" name="old" id="old"></p>
|
||||
<p> <input type="submit" name="ok" value="Speichern"></p>
|
||||
</form>
|
||||
<?php
|
||||
}else{
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
<?php
|
||||
echo("<h2>Willkommen ".$_SESSION['name']."</h2>");
|
||||
echo("Dein Wichtel ist ".$_SESSION['wichtel']."<br/>");
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
if (!isset($_SESSION['login'])){
|
||||
$_SESSION['login']=False;
|
||||
}
|
||||
if (!$_SESSION['login']){
|
||||
if (isset($_SESSION['feedback'])){echo($_SESSION['feedback']);}
|
||||
?>
|
||||
<h2>Login</h2>
|
||||
<form action="/user/login" method="POST">
|
||||
<p>Name: <input name="name" id="name"></p>
|
||||
<p>Psw: <input type="password" name="psw" id="psw"></p>
|
||||
<p> <input type="submit" name="login" value="OK"></p>
|
||||
</form>
|
||||
<form action="/user/register" method="POST">
|
||||
<p> <input type="submit" value="register"></p>
|
||||
</form>
|
||||
<?php
|
||||
}else{
|
||||
echo("Willkommen, ");
|
||||
var_dump($_SESSION);
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<h2>Logout erfolgreich</h2>
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
if(isset($_SESSION ['reg'])){?>
|
||||
<h2>Registrierung erfolgreich</h2>
|
||||
<a href="/user/login">zur Anmeldung</a>
|
||||
<?php
|
||||
}else{
|
||||
?>
|
||||
<h2>Registrieren</h2>
|
||||
<form action="/user/register" method="POST">
|
||||
<p>Name: <input name="name" id="name"></p>
|
||||
<p>mail: <input name="mail" id="mail"></p>
|
||||
<p>Psw: <input type="password" name="psw" id="psw"></p>
|
||||
<p>Nochmal: <input type="password" name="psw2" id="psw2"></p>
|
||||
<p> <input type="submit" name="regi" value="register"></p>
|
||||
</form>
|
||||
<?php
|
||||
}
|
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 111 KiB |
|
@ -0,0 +1,180 @@
|
|||
@font-face { font-family: 'Lato';
|
||||
src: url('/assets/font/Lato-Regular.ttf') format('truetype'); }
|
||||
@font-face { font-family: 'Lato';
|
||||
src: url('/assets/font/Lato-Bold.ttf') format('truetype');
|
||||
font-weight: bold;
|
||||
}
|
||||
@font-face { font-family: 'Lato';
|
||||
src: url('/assets/font/Lato-Italic.ttf') format('truetype');
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face { font-family: 'Lato';
|
||||
src: url('/assets/font/Lato-BoldItalic.ttf') format('truetype');
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
|
||||
body {
|
||||
font-family: Lato;
|
||||
scroll-behavior: smooth;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
span {font-family: Lato;}
|
||||
.it {font-style: italic;}
|
||||
.bo {font-weight: bold;}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
img{
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* Wrapper f<>r die gesammte Seite*/
|
||||
#wrapper{
|
||||
max-width: 800px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
/* Style the header */
|
||||
#header {
|
||||
background-color: #f1f1f1;
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
margin-top:10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
/* leerzeile nach dem header*/
|
||||
#header:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/*Header links*/
|
||||
#title{
|
||||
max-width:25%;
|
||||
float:left;
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
|
||||
#titellogo{
|
||||
width:30px;
|
||||
}
|
||||
|
||||
/*Header links (Men<65>)*/
|
||||
#menu {
|
||||
background-color: #f1f1f1;
|
||||
top:0px;
|
||||
max-width:75%;
|
||||
float:right;
|
||||
}
|
||||
|
||||
/*Hauptmen<65>*/
|
||||
ul#navigation {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
ul#navigation li {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
ul#navigation li a:link {
|
||||
border: 1px solid #000;
|
||||
background-color: #CCCCCC;
|
||||
padding: 2px 5px 2px 5px;
|
||||
font-size: 12px;
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
ul#navigation li a:hover {
|
||||
border: 1px solid #000;
|
||||
background-color: #333333;
|
||||
padding: 2px 5px 2px 5px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/*Content wrapper*/
|
||||
.content{
|
||||
padding-top:75px;
|
||||
}
|
||||
|
||||
/* Create three unequal columns that floats next to each other */
|
||||
.column {
|
||||
float: left;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
/* Left and right column */
|
||||
.column.side {
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
/* Middle column */
|
||||
.column.middle {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
/* Clear floats after the columns */
|
||||
.row:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Footer*/
|
||||
#foot{
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
|
||||
.foot {
|
||||
background-color: #f1f1f1;
|
||||
float: left;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.foot.lside{
|
||||
text-align: left;
|
||||
width: 33%;
|
||||
}
|
||||
|
||||
.foot.middle{
|
||||
text-align: center;
|
||||
width: 33%;
|
||||
}
|
||||
|
||||
.foot.rside{
|
||||
text-align: right;
|
||||
width: 33%;
|
||||
}
|
||||
|
||||
/*Footermen<65>*/
|
||||
ul#footmenu{
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
ul#footmenu li{
|
||||
}
|
||||
|
||||
ul#footmenu li a:link{
|
||||
text:black;
|
||||
}
|
||||
|
||||
ul#footmenu li a:hover{
|
||||
|
||||
}
|
||||
|
||||
/* Responsive layout - makes the three columns stack on top of each other instead of next to each other */
|
||||
@media (max-width: 600px) {
|
||||
.column.side, .column.middle {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
|
||||
// Define DB Params
|
||||
define("DB_HOST", "62.108.32.171:3306");
|
||||
define("DB_USER", "eexgt_klaas");
|
||||
// Champion-Justness-Overcast5-Joylessly
|
||||
define("DB_PASS", "Dimrb#73611912");
|
||||
define("DB_NAME", "eexgtvrb_klaasboergmann");
|
||||
|
||||
// Define URL
|
||||
define("ROOT_PATH", "/");
|
||||
define("ROOT_URL", "http://orga.boergmann.it");
|
|
@ -0,0 +1,17 @@
|
|||
<div class="row" style="width=50%">
|
||||
<div class="foot lside">
|
||||
<ul id="footmenu">
|
||||
<li><a href="//klaasboergmann.de">Klaas Börgmann</a></li>
|
||||
<li><a href="/Impressum">Impressum</a></li>
|
||||
<li><a href="/Impressum/Datenschutz">Datenschutz</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="foot middle">
|
||||
<p>© 2023</p>
|
||||
</div>
|
||||
|
||||
<div class="foot rside">
|
||||
<p>admin[at]boergmann[dot]it</p>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
if($_GET['controller'] == ""){
|
||||
$controller = 'Home';
|
||||
} else {
|
||||
$controller = $_GET['controller'];
|
||||
}
|
||||
if($_GET['action'] == ""){
|
||||
$action = 'index';
|
||||
}else {
|
||||
$action = $_GET['action'];
|
||||
}
|
||||
if (isset($_SESSION['login']) && $_SESSION['login']==1){
|
||||
$login="logout";
|
||||
}else{
|
||||
$login="login";
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
<title>Klaas Börgmann - <?php echo($controller);?></title>
|
||||
<base href="klaasboergmann.de" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
|
||||
<meta name="msapplication-TileColor" content="#da532c">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
<link rel="stylesheet" href="/assets/style.css">
|
|
@ -0,0 +1 @@
|
|||
<h3>Klaas Börgmann</h3>
|
|
@ -0,0 +1,3 @@
|
|||
<a href="/druck">Graphen</a>
|
||||
<a href="/druck/table">Tabelle</a>
|
||||
<a href="/druck/neu">Neu</a>
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
<ul id="navigation">
|
||||
<li><a href="/home">Home<a></li>
|
||||
<?php if($login=="logout"){
|
||||
echo("<li><a href='/druck'>Druck<a></li>");
|
||||
echo("<li><a href='/inv'>Inventory<a></li>");
|
||||
echo("<li><a href='/todo'>To Do<a></li>");
|
||||
echo("<li><a href='/billard'>Billard<a></li>");
|
||||
echo("<li><a href='/uel'>ÜL-Funktionen<a></li>");
|
||||
}?>
|
||||
<li><a href="/user/<?php echo($login);?>"><?php echo($login);?><a></li>
|
||||
<li><a href="https://ha01s001.org-dns.com:8443">Admin<a></li>
|
||||
</ul>
|
|
@ -0,0 +1,5 @@
|
|||
<h2>News</h2>
|
||||
<div class="nachricht">
|
||||
<h3>Testnachricht</h3>
|
||||
<p>Die Welt geht unter. Machste nix.</p>
|
||||
</div>
|
|
@ -0,0 +1,205 @@
|
|||
@font-face { font-family: 'Lato';
|
||||
src: url('/assets/font/Lato-Regular.ttf') format('truetype'); }
|
||||
@font-face { font-family: 'Lato';
|
||||
src: url('/assets/font/Lato-Bold.ttf') format('truetype');
|
||||
font-weight: bold;
|
||||
}
|
||||
@font-face { font-family: 'Lato';
|
||||
src: url('/assets/font/Lato-Italic.ttf') format('truetype');
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face { font-family: 'Lato';
|
||||
src: url('/assets/font/Lato-BoldItalic.ttf') format('truetype');
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
|
||||
body {
|
||||
font-family: Lato;
|
||||
scroll-behavior: smooth;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
span {font-family: Lato;}
|
||||
.it {font-style: italic;}
|
||||
.bo {font-weight: bold;}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
img{
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* Wrapper f<>r die gesammte Seite*/
|
||||
#wrapper{
|
||||
max-width: 1200px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
/* Style the header */
|
||||
#header {
|
||||
background-color: #f1f1f1;
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
margin-top:10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
/* leerzeile nach dem header*/
|
||||
#header:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/*Header links*/
|
||||
#title{
|
||||
width:25%;
|
||||
background-color: #f1f1f1;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#titellogo{
|
||||
width:30px;
|
||||
}
|
||||
|
||||
/*Header links (Men<65>)*/
|
||||
#menu {
|
||||
background-color: #f1f1f1;
|
||||
top:0px;
|
||||
max-width:75%;
|
||||
float:right;
|
||||
}
|
||||
|
||||
/*Hauptmen<65>*/
|
||||
ul#navigation {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
ul#navigation li {
|
||||
padding: 1px;
|
||||
margin: 1px;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
ul#navigation li a:link {
|
||||
border: 1px solid #000;
|
||||
background-color: #CCCCCC;
|
||||
padding: 2px 5px 2px 5px;
|
||||
font-size: 12px;
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
ul#navigation li a:hover {
|
||||
border: 1px solid #000;
|
||||
background-color: #333333;
|
||||
padding: 2px 5px 2px 5px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/*Content wrapper*/
|
||||
.content{
|
||||
padding-top:75px;
|
||||
}
|
||||
|
||||
/* Create three unequal columns that floats next to each other */
|
||||
.column {
|
||||
float: left;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
/* Left and right column
|
||||
.column.side {
|
||||
width: 25%;
|
||||
}
|
||||
*/
|
||||
/* Middle column */
|
||||
.column.middle {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
/* Clear floats after the columns */
|
||||
.row:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Footer*/
|
||||
#foot{
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
|
||||
.foot {
|
||||
background-color: #f1f1f1;
|
||||
float: left;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.foot.lside{
|
||||
text-align: left;
|
||||
width: 45%;
|
||||
}
|
||||
|
||||
.foot.middle{
|
||||
text-align: center;
|
||||
width: 10%;
|
||||
}
|
||||
|
||||
.foot.rside{
|
||||
text-align: right;
|
||||
width: 45%;
|
||||
}
|
||||
|
||||
/*Footermen<65>*/
|
||||
ul#footmenu{
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
ul#footmenu li{
|
||||
}
|
||||
|
||||
ul#footmenu li a:link{
|
||||
text:black;
|
||||
}
|
||||
|
||||
ul#footmenu li a:hover{
|
||||
|
||||
}
|
||||
|
||||
/* Responsive layout - makes the three columns stack on top of each other instead of next to each other */
|
||||
@media (max-width: 600px) {
|
||||
.column.side, .column.middle {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#impressum{
|
||||
text-align:justify;
|
||||
}
|
||||
#weeks{
|
||||
width:100%;
|
||||
height:auto;
|
||||
margin-left: 0px;
|
||||
margin-top: 0px;
|
||||
}
|
||||
.week{
|
||||
width:100%;
|
||||
float:left;
|
||||
height:auto;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* Clear floats after the columns */
|
||||
#weeks:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square150x150logo src="/mstile-150x150.png"/>
|
||||
<TileColor>#da532c</TileColor>
|
||||
</tile>
|
||||
</msapplication>
|
||||
</browserconfig>
|
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 7.2 KiB |
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
// Start Session
|
||||
session_start();
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
// Include Config
|
||||
require('assets/config.php');
|
||||
|
||||
|
||||
require('Classes/Bootstrap.php');
|
||||
require('Classes/Controller.php');
|
||||
require('Classes/Model.php');
|
||||
|
||||
require('Controller/home.php');
|
||||
require('Controller/impressum.php');
|
||||
require('Controller/user.php');
|
||||
|
||||
|
||||
require('Models/home.php');
|
||||
require('Models/impressum.php');
|
||||
require('Models/user.php');
|
||||
|
||||
$bootstrap = new Bootstrap($_GET);
|
||||
|
||||
$controller = $bootstrap->createController();
|
||||
|
||||
if($controller){
|
||||
$controller->executeAction();
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<!--
|
||||
|
||||
|
||||
KKKKKKKKK KKKKKKK LLLLLLLLLLL AAA AAA SSSSSSSSSSSSSSS
|
||||
K:::::::K K:::::K L:::::::::L A:::A A:::A SS:::::::::::::::S
|
||||
K:::::::K K:::::K L:::::::::L A:::::A A:::::A S:::::SSSSSS::::::S
|
||||
K:::::::K K::::::K LL:::::::LL A:::::::A A:::::::A S:::::S SSSSSSS
|
||||
KK::::::K K:::::KKK L:::::L A:::::::::A A:::::::::A S:::::S
|
||||
K:::::K K:::::K L:::::L A:::::A:::::A A:::::A:::::A S:::::S
|
||||
K::::::K:::::K L:::::L A:::::A A:::::A A:::::A A:::::A S::::SSSS
|
||||
K:::::::::::K L:::::L A:::::A A:::::A A:::::A A:::::A SS::::::SSSSS
|
||||
K:::::::::::K L:::::L A:::::A A:::::A A:::::A A:::::A SSS::::::::SS
|
||||
K::::::K:::::K L:::::L A:::::AAAAAAAAA:::::A A:::::AAAAAAAAA:::::A SSSSSS::::S
|
||||
K:::::K K:::::K L:::::L A:::::::::::::::::::::A A:::::::::::::::::::::A S:::::S
|
||||
KK::::::K K:::::KKK L:::::L LLLLLL A:::::AAAAAAAAAAAAA:::::A A:::::AAAAAAAAAAAAA:::::A S:::::S
|
||||
K:::::::K K::::::K LL:::::::LLLLLLLLL:::::L A:::::A A:::::A A:::::A A:::::A SSSSSSS S:::::S
|
||||
K:::::::K K:::::K L::::::::::::::::::::::L A:::::A A:::::A A:::::A A:::::A S::::::SSSSSS:::::S
|
||||
K:::::::K K:::::K L::::::::::::::::::::::L A:::::A A:::::A A:::::A A:::::A S:::::::::::::::SS
|
||||
KKKKKKKKK KKKKKKK LLLLLLLLLLLLLLLLLLLLLLLL AAAAAAA AAAAAAA AAAAAAA AAAAAAA SSSSSSSSSSSSSSS
|
||||
|
||||
-->
|
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.5 KiB |
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="230.000000pt" height="230.000000pt" viewBox="0 0 230.000000 230.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<metadata>
|
||||
Created by potrace 1.14, written by Peter Selinger 2001-2017
|
||||
</metadata>
|
||||
<g transform="translate(0.000000,230.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M682 1389 l-212 -250 -2 243 -3 243 -60 0 -60 0 0 -475 0 -475 60 0
|
||||
60 0 5 225 5 226 194 -228 194 -228 69 0 c38 0 68 4 66 9 -1 5 -90 111 -196
|
||||
235 l-193 226 162 193 c89 105 171 202 182 214 22 25 17 38 -33 73 l-27 19
|
||||
-211 -250z"/>
|
||||
<path d="M1210 1151 l0 -481 158 0 c379 0 495 57 518 253 13 112 -43 215 -140
|
||||
256 l-41 18 31 16 c75 39 112 130 94 227 -12 64 -21 80 -64 118 -59 52 -116
|
||||
63 -348 69 l-208 6 0 -482z m404 368 c22 -6 52 -24 68 -39 24 -25 28 -36 28
|
||||
-85 0 -71 -20 -109 -71 -136 -35 -17 -61 -21 -173 -22 l-131 -2 -3 148 -3 147
|
||||
123 0 c68 0 141 -5 162 -11z m56 -409 c105 -59 128 -185 49 -274 -45 -52 -100
|
||||
-66 -256 -66 l-133 0 0 186 0 186 148 -4 c135 -3 151 -5 192 -28z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"name": "",
|
||||
"short_name": "",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
"display": "standalone"
|
||||
}
|