diff --git a/98_datenbank/450731_3_1.sql b/98_datenbank/450731_3_1.sql
new file mode 100644
index 0000000..febda8e
--- /dev/null
+++ b/98_datenbank/450731_3_1.sql
@@ -0,0 +1,207 @@
+-- phpMyAdmin SQL Dump
+-- version 4.6.6deb4
+-- https://www.phpmyadmin.net/
+--
+-- Host: localhost:3306
+-- Erstellungszeit: 19. Jan 2023 um 10:08
+-- Server-Version: 10.3.31-MariaDB-0+deb10u1
+-- PHP-Version: 7.0.33-57+0~20211119.61+debian10~1.gbp5d8ba5
+
+SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
+SET time_zone = "+00:00";
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+
+--
+-- Datenbank: `450731_3_1`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Tabellenstruktur für Tabelle `Benutzer`
+--
+
+CREATE TABLE `Benutzer` (
+ `ID` int(11) NOT NULL,
+ `name` varchar(42) NOT NULL,
+ `email` varchar(42) NOT NULL,
+ `passwort` varchar(200) NOT NULL,
+ `handyNr` varchar(42) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Daten für Tabelle `Benutzer`
+--
+
+INSERT INTO `Benutzer` (`ID`, `name`, `email`, `passwort`, `handyNr`) VALUES
+(60, 'raul', 'raul@gmail.com', '$2y$10$yfod.ElzV7GweeA4gAkkxujxL6clwK3TEtSe0PhR8eExPvYFRNVry', '078 742 34 56'),
+(62, 'david', 'raul7@sunrise.ch', '$2y$10$TvdhHe3nqbFgP2H/z.vw0.RDxpwpP/90no.rVXJ8xOpDMtqZzS9yC', '076 987 87 23'),
+(63, 'Emily', 'emily@mmp.ch', '$2y$10$jt3uBR5GfEWCID5VcasChui4/ThyfDXmdczmF0lLL7z2wCKyADhT.', '078 168 47 89'),
+(64, 'Luan', 'lua@lua.ch', '$2y$10$UCl248CW/o76XFrTHfanYeBGlCLOE7FT0T78lGUv1Aqj5yjHhiyxi', '079 138 93 28'),
+(65, 'Michel', 'michelgruen@gmail.com', '$2y$10$PqcGrgkqx252CnMe6rqSseIJiCmHrGxUXZfXTLxRKWe84wnwtQXD.', '079 567 32 12'),
+(66, 'David123', 'mmp123', '$2y$10$PgL73RtWNcdqp7UA9.PqfOQNXxMIRfUnuNMzRLp6l8Wr1bbkn9WVi', '079 108 80 81');
+
+-- --------------------------------------------------------
+
+--
+-- Tabellenstruktur für Tabelle `Kurs`
+--
+
+CREATE TABLE `Kurs` (
+ `ID` int(11) NOT NULL,
+ `semester` int(42) NOT NULL,
+ `name` varchar(42) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Daten für Tabelle `Kurs`
+--
+
+INSERT INTO `Kurs` (`ID`, `semester`, `name`) VALUES
+(1, 4, 'Interaktive Medien IIII'),
+(2, 4, 'Visualisieren IIII'),
+(3, 4, 'Schreiben und Sprechen IIII'),
+(4, 3, 'Interaktive Medien III'),
+(7, 3, 'Medien BWL III'),
+(8, 3, 'Medien Recht III'),
+(9, 2, 'Interaktive Medien II'),
+(10, 2, 'Medien BWL II'),
+(11, 2, 'Medien Recht II'),
+(12, 1, 'Interaktive Medien I'),
+(13, 1, 'Medien BWL I'),
+(15, 1, 'Medien Recht I');
+
+-- --------------------------------------------------------
+
+--
+-- Tabellenstruktur für Tabelle `PDF`
+--
+
+CREATE TABLE `PDF` (
+ `ID` int(11) NOT NULL,
+ `dokument` varchar(200) DEFAULT NULL,
+ `benutzer_ID` int(11) DEFAULT NULL,
+ `kurs_ID` int(11) DEFAULT NULL,
+ `standort` varchar(42) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Daten für Tabelle `PDF`
+--
+
+INSERT INTO `PDF` (`ID`, `dokument`, `benutzer_ID`, `kurs_ID`, `standort`) VALUES
+(219, 'pp_tiktok-08.png', 62, 8, 'Bern'),
+(220, 'undefined', 62, 1, 'Bern'),
+(222, 'Medienrecht_RepetitionNotizen.docx', 29, 11, 'Zuerich'),
+(226, 'Medienrecht_RepetitionNotizen.docx', 29, 1, 'Bern'),
+(227, 'Medienrecht III_Zusammenfassung_LuanPalma.docx', 64, 11, 'Zuerich'),
+(228, 'Markenrecht Repetition.pdf', 64, 7, 'Chur'),
+(229, 'Medienrecht_RepetitionNotizen.docx', 64, 10, 'Zuerich'),
+(230, 'Zusammenfassung_Medienrecht_3Sem.pdf', 63, 8, 'Bern'),
+(231, 'Zusammenfassung_MedienBWL_2Sem.pdf', 63, 10, 'Chur'),
+(233, 'zusammenfassung-bwl.pdf', 66, 13, 'Bern'),
+(235, 'Zusammenfassung.ai', 65, 7, 'Bern');
+
+-- --------------------------------------------------------
+
+--
+-- Tabellenstruktur für Tabelle `Session`
+--
+
+CREATE TABLE `Session` (
+ `ID` int(11) NOT NULL,
+ `benutzer_ID` int(11) NOT NULL,
+ `token` varchar(100) NOT NULL,
+ `timestamp` timestamp NOT NULL DEFAULT current_timestamp()
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Daten für Tabelle `Session`
+--
+
+INSERT INTO `Session` (`ID`, `benutzer_ID`, `token`, `timestamp`) VALUES
+(77, 63, 'gu7DC3xaZW5bwQL2hATnhGcDwh2Z2Darp2kzsApMYP', '2023-01-19 09:00:32'),
+(78, 64, 'SMslRsjru7YdehSP7wa89zO4enDqqNF1n5oOddCO4w', '2023-01-19 09:07:39'),
+(79, 63, 'KKeXLfPs3iS9I2hgxh056dY1A53q3sFoDQh1GUp8XT', '2023-01-19 09:01:12'),
+(80, 65, 'AlaRqHWDcIHUx3m2vBCv8cFXoVYnk8QygSm1ZF52w7', '2023-01-19 09:04:56'),
+(81, 66, '5unsacuAZPQNLLKNyNqoVKr7KeiBDfcfpPaYHqdlxw', '2023-01-19 09:06:23');
+
+--
+-- Indizes der exportierten Tabellen
+--
+
+--
+-- Indizes für die Tabelle `Benutzer`
+--
+ALTER TABLE `Benutzer`
+ ADD PRIMARY KEY (`ID`);
+
+--
+-- Indizes für die Tabelle `Kurs`
+--
+ALTER TABLE `Kurs`
+ ADD PRIMARY KEY (`ID`);
+
+--
+-- Indizes für die Tabelle `PDF`
+--
+ALTER TABLE `PDF`
+ ADD PRIMARY KEY (`ID`),
+ ADD KEY `PDF_benutzerid` (`benutzer_ID`),
+ ADD KEY `PDF_kursid` (`kurs_ID`);
+
+--
+-- Indizes für die Tabelle `Session`
+--
+ALTER TABLE `Session`
+ ADD PRIMARY KEY (`ID`),
+ ADD KEY `Session_benutzerid` (`benutzer_ID`);
+
+--
+-- AUTO_INCREMENT für exportierte Tabellen
+--
+
+--
+-- AUTO_INCREMENT für Tabelle `Benutzer`
+--
+ALTER TABLE `Benutzer`
+ MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=67;
+--
+-- AUTO_INCREMENT für Tabelle `Kurs`
+--
+ALTER TABLE `Kurs`
+ MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;
+--
+-- AUTO_INCREMENT für Tabelle `PDF`
+--
+ALTER TABLE `PDF`
+ MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=236;
+--
+-- AUTO_INCREMENT für Tabelle `Session`
+--
+ALTER TABLE `Session`
+ MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=82;
+--
+-- Constraints der exportierten Tabellen
+--
+
+--
+-- Constraints der Tabelle `PDF`
+--
+ALTER TABLE `PDF`
+ ADD CONSTRAINT `PDF_kursid` FOREIGN KEY (`kurs_ID`) REFERENCES `Kurs` (`ID`);
+
+--
+-- Constraints der Tabelle `Session`
+--
+ALTER TABLE `Session`
+ ADD CONSTRAINT `Session_benutzerid` FOREIGN KEY (`benutzer_ID`) REFERENCES `Benutzer` (`ID`);
+
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
diff --git a/99_versionen/autorisieren_copy1.php b/99_versionen/autorisieren_copy1.php
new file mode 100644
index 0000000..26ec0ec
--- /dev/null
+++ b/99_versionen/autorisieren_copy1.php
@@ -0,0 +1,59 @@
+ (NOW() - INTERVAL 2 hour)";
+
+$stmt = $pdo->prepare($sql);
+
+$erfolg = $stmt->execute();
+
+if ($erfolg) {
+
+ $resultate = $stmt->fetchAll();
+
+ $sitzungsID = $resultate[0]['ID'];
+
+ $anzahlResultate = count($resultate);
+
+ if ($anzahlResultate == 1) {
+
+ //Sitzung verlängern
+ updateSession($sitzungsID);
+
+ } else {
+
+ //schicke eine Antwort ans Script «nicht eingeloggt», direkt an Login seite weiter
+ exit(http_response_code(401));
+
+ }
+
+}
+function updateSession($sitzungsID)
+{
+ require('config.php');
+
+ //setze den Timpstamp auf jetzt, wo die ID eine ID ist
+ $sql = "UPDATE Session SET timestamp = now() WHERE ID=?";
+ $stmt = $pdo->prepare($sql);
+ $stmt->execute([$sitzungsID]);
+}
+
+function loescheSessions()
+{
+ require('config.php');
+
+
+ //Bei Delete braucht es kein Stern für all
+ $sql = "DELETE FROM Session WHERE timestamp < (NOW() - INTERVAL 2 HOUR)";
+
+ $stmt = $pdo->prepare($sql);
+ $stmt->execute();
+
+}
\ No newline at end of file
diff --git a/99_versionen/config_copy1.php b/99_versionen/config_copy1.php
new file mode 100644
index 0000000..7c69ebc
--- /dev/null
+++ b/99_versionen/config_copy1.php
@@ -0,0 +1,9 @@
+exec("set names utf8");
diff --git a/99_versionen/holeUser_copy1 b/99_versionen/holeUser_copy1
new file mode 100644
index 0000000..1ba5c04
--- /dev/null
+++ b/99_versionen/holeUser_copy1
@@ -0,0 +1,22 @@
+prepare($sql);
+
+$erfolg = $stmt->execute();
+
+if ($erfolg) {
+
+ $array = $stmt->fetchAll();
+
+ $jsonArray = json_encode($array);
+
+ print_r($jsonArray);
+}
\ No newline at end of file
diff --git a/99_versionen/login_copy1.html b/99_versionen/login_copy1.html
new file mode 100644
index 0000000..adbc697
--- /dev/null
+++ b/99_versionen/login_copy1.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ Login
+
+
+
+
+
+ Login
+
+ E-Mail Adresse
+
+
+ Passwort
+
+
+ Login
+
+
+
+
+
+
\ No newline at end of file
diff --git a/99_versionen/login_copy1.js b/99_versionen/login_copy1.js
new file mode 100644
index 0000000..42aeceb
--- /dev/null
+++ b/99_versionen/login_copy1.js
@@ -0,0 +1,47 @@
+console.log('Hello Login');
+
+function login(){
+ let email = document.querySelector("#email").value;
+ let passwort = document.querySelector("#passwort").value;
+ console.log('Hallo ' + email + passwort);
+
+
+ //FormData = Box für unsere Formulardaten
+ let formData = new FormData();
+ formData.append('email', email);
+ formData.append('passwort', passwort);
+
+
+//Adresse eingeben, wo das Packet hinsoll
+fetch("https://450731-3.web.fhgr.ch/php/login.php",
+ {
+ body: formData,
+ //methode bestimmen, get auch möglich. So holen wir im php die Daten $_Post
+ method: "post",
+ })
+
+ //Warten auf Response=res
+ .then((res) => {
+ //wir wollen einen Text erhalten, andere Daten manchmal JSON
+
+ return res.json();
+
+ })
+ .then((data) => {
+ console.log(data);$
+ document.querySelector('#nachricht').innerHTML = data[0];
+
+ //Platziere benutzerID an 1. Stelle und Token an 2. Stelle im localstorage
+ localStorage.setItem("benutzerID", data[1]);
+ localStorage.setItem("token", data[2]);
+
+ //Wenn ID und Token nicht 0 ist, also der benutzer eingeloggt ist, öffne die neue Seite(Startseite)
+ if (data[1] != 0 && data[2] != 0){
+
+ window.location.href = "https://450731-3.web.fhgr.ch/";
+
+
+ }
+
+ })
+ }
diff --git a/99_versionen/login_copy1.php b/99_versionen/login_copy1.php
new file mode 100644
index 0000000..8354e8d
--- /dev/null
+++ b/99_versionen/login_copy1.php
@@ -0,0 +1,119 @@
+prepare($sql);
+
+$erfolg = $stmt->execute();
+
+//Wenn Statement erfolgreich…
+if ($erfolg) {
+
+ //gehe in Datenbank und hole alle Resultate
+ $array = $stmt->fetchAll();
+
+ //Hier werden die Resultate gezählt, welche übereinstimmen. Das ist eine Php Funktion
+ $anzahlResultate = count($array);
+
+
+ if ($anzahlResultate == 1){
+
+ //Wenn Resultat == 1, nimm was in der Tabelle bei Passwort steht und gebe den Wert an die Variabel Passwort
+ $dbPasswort = $array[0]['passwort'];
+ //Das gleiche mit der ID
+ $benutzerID = $array[0]['ID'];
+ //diese Parameter geben wir der Funktion prüfe PAsswort weiter
+ pruefepasswort($passwort, $dbPasswort, $benutzerID);
+
+
+ } else {
+ //Fehlermeldung wenn Email nicht korrekt. ID und Token als 0, weil undefind = nicht eingeloggt. Wird im localstorage als 0/0 ausgegeben.
+ sendeAntwort('Diese E-Mail existiert nicht.', 0, 0);
+
+
+
+ }
+
+
+}
+
+function pruefepasswort($benutzerPasswort, $dbPasswort, $benutzerID){
+
+ //Püft, ob das Benutzer Passwort mit dem Datenbankpasswort überein stimmt. Prüfen öb beide den gleichen Hash zurück geben.
+ if (password_verify($benutzerPasswort, $dbPasswort)) {
+
+ //erstelle einen Token, wenn Email und Passwort korrekt. BenutzerID schicken wir gleich weiter an die Funktion erstelleToken
+ erstelleToken($benutzerID);
+
+
+
+ } else {
+
+ sendeAntwort('Ungültiges Passwort', 0, 0);
+
+
+ }
+
+}
+
+//Eintrag in Sessiontabelle
+function erstelleToken($benutzerID){
+
+ require('config.php');
+
+ //Rufe die Funktion generate… mit dem Parameter 42 auf, und speichere den Return in die Variable 'Token', dieser wird in die Tabelle eingefügt.
+
+ $token = generateRandomString(42);
+
+ //Infos werden in die Session Tabelle eingefügt. Passende Benutzer ID und Token Nummer, Timestamp erfolgt automatisch
+ $sql = "INSERT INTO Session (benutzer_ID, token) VALUES (:benutzer_ID, :token)";
+
+ /*pdo=Datenbankverbindung die wir im config definiert haben. bereite dich vor, dieses SQL Statement auszuführen*/
+ $stmt = $pdo->prepare($sql);
+
+ $erfolg = $stmt->execute(array('benutzer_ID' => $benutzerID, 'token' => $token));
+ if ($erfolg) {
+ //wenn alles geklappt hat
+ // print_r('Session erfolgreich erstellt.');
+ sendeAntwort('Session erfolgreich erstellt.', $benutzerID, $token);
+
+ } else {
+ //Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+
+ sendeAntwort('Datenbankfehlerw: ' . $erfolg, 0, 0);
+
+ };
+
+
+}
+
+
+//Funktion zum einem Random String erstellen
+function generateRandomString($length) {
+ //alle Characters, aus den ein Hash generiert werden soll
+ $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
+ $charactersLength = strlen($characters);
+ $randomString = '';
+ for ($i = 0; $i < $length; $i++) {
+ $randomString .= $characters[rand(0, $charactersLength - 1)];
+ }
+ //Return heisst es gibt was zurück, dort wo man es angefragt hat.
+ return $randomString;
+}
+
+function sendeAntwort($nachricht, $benutzerID, $token){
+
+ $antwort = [$nachricht, $benutzerID, $token];
+
+ $antwort = json_encode($antwort);
+
+ print($antwort);
+
+}
diff --git a/99_versionen/registrieren_copy1.html b/99_versionen/registrieren_copy1.html
new file mode 100644
index 0000000..cba44ff
--- /dev/null
+++ b/99_versionen/registrieren_copy1.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ Registrierung
+
+
+
+ Registrierung
+
+ Benutzername
+
+
+ Handy Nummer
+
+
+
+ E-Mail Adresse
+
+
+ Passwort
+
+
+ registrieren
+
+
+ anmelden
+
+
+
+
+
+
+
+
diff --git a/99_versionen/registrieren_copy1.js b/99_versionen/registrieren_copy1.js
new file mode 100644
index 0000000..b399147
--- /dev/null
+++ b/99_versionen/registrieren_copy1.js
@@ -0,0 +1,58 @@
+console.log('hallo');
+function registrieren (){
+ let benutzername = document.querySelector("#benutzername").value;
+ let handyNr = document.querySelector("#handyNr").value;
+ let email = document.querySelector("#email").value;
+ let passwort = document.querySelector("#passwort").value;
+ // console.log('Hallo ' + benutzername + email + passwort);
+
+
+ //FormData = Box für unsere Formulardaten
+ let formData = new FormData();
+ formData.append('benutzername', benutzername);
+ formData.append('handyNr', handyNr);
+ formData.append('email', email);
+ formData.append('passwort', passwort);
+//Adresse eingeben, wo das Packet hinsoll
+ fetch("https://450731-3.web.fhgr.ch/php/registrieren.php",
+ {
+ body: formData,
+ //methode bestimmen, get auch möglich. So holen wir im php die Daten $_Post
+ method: "post",
+ })
+
+ //Warten auf Response=res
+ .then((res) => {
+ //wir wollen einen Text erhalten, andere Daten manchmal JSON
+ return res.text();
+
+
+ })
+ .then((data) => {
+ // console.log(data);
+ document.querySelector('#nachricht').innerHTML = data;
+
+ })
+ }
+/*
+ //Die Grundlage für einen Fetch. Fetch ist eine Funktion, die einen Request an einen Server sendet und das Ergebnis zurückgibt
+ //In der ersten Zeile wird der Link zur API definiert. Dieser kann immer angepasst werden.
+ let url = 'https://pokeapi.co/api/v2/pokemon?limit=151&offset=0';
+ //Hier startet der Fetch mit der definierten URL.
+ fetch(url)
+ //Wenn der Fetch erfolgreich war, wird die Antwort in ein Objekt gespeichert.
+ .then(response => response.json())
+ //Wenn das Objekt gespeichert wurde, wird es in eine Variable gespeichert. Diese Variable heisst "data".
+ .then(data => {
+ //Hier kann man mit der Variable arbeiten. Entweder das DOM mit Informationen erweitern, oder eine neue Funktion aufrufen.
+ //Mit "Console.log(data);" sieht man den Inhalt des Objekts.
+ console.log(data);
+ //Ab hier kann man entweder mit der Variable data arbeiten, oder eine funktion aufrufen mit data als Parameter.
+
+ //Beispiel eines Funktionsaufrufs
+ //"showSomething(data);"
+
+ })
+ //Bei einem Fehler wird dieser gefangen "catch" und eine Fehlermeldung in der Konsole ausgegeben.
+ .catch(error => console.log(error))
+ */
\ No newline at end of file
diff --git a/99_versionen/registrieren_copy1.php b/99_versionen/registrieren_copy1.php
new file mode 100644
index 0000000..5a7aedd
--- /dev/null
+++ b/99_versionen/registrieren_copy1.php
@@ -0,0 +1,38 @@
+prepare($sql);
+/*definiert nochmals, was wir ausführen möchten, mit welchen Namen, also Variabel Email greiffen wir auf Email zu,
+Platzhalter ohne Dollarzeichen, Wir definieren Variabeln und nutzen sie im execute
+Wenn alles geklappt hat, wir erfolg = 1 = true */
+$erfolg = $stmt->execute(array('Name' => $benutzername, 'HandyNr' => $handyNr, 'Email' => $email, 'Passwort' => $passwort));
+//Könnte auch schreiben if erfolg==1
+if ($erfolg) {
+
+ print_r('Registrierung erfolgreich.');
+
+} else {
+//Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+};
\ No newline at end of file
diff --git a/99_versionen/script_copy1.js b/99_versionen/script_copy1.js
new file mode 100644
index 0000000..bfae2d3
--- /dev/null
+++ b/99_versionen/script_copy1.js
@@ -0,0 +1,102 @@
+holeBenutzer();
+//holeWGs();
+
+function holeBenutzer() {
+ //Benutzer ID und Token werden aus dem localstorage geholt.
+ let benutzerID = localStorage.getItem('benutzerID');
+ let token = localStorage.getItem('token');
+
+ //BenutzerID wird in die Form gefügt
+ let formData = new FormData();
+ formData.append('benutzerID', benutzerID);
+
+ //fetchen php file
+ fetch("https://450731-3.web.fhgr.ch/php/holeBenutzer.php",
+ {
+ body: formData,
+ method: "post",
+ headers: {
+ //Verschlüsset Id und Token
+ 'Authorization': 'Basic ' + btoa(benutzerID + ':' + token),
+
+ }
+ })
+
+ .then((res) => {
+
+ // falls die Sitzung nicht abgelaufen ist, verarbeite die JSON antwort, Fehlermeldung abgeklärt. zb 404 Error. 200 OK
+ if (res.status >= 200 && res.status < 300) {
+
+ return res.json();
+
+ } else {
+ //Rückleitung zu login.html
+ alert('Deine Sitzung ist abgelaufen. Du wirst auf die Login-Seite weitergeleitet.');
+ window.location = "/login.html"
+
+ }
+
+ })
+ .then((data) => {
+ // console.log(data);
+
+
+ // // mache etwas
+
+ // console.log(data[0].name);
+
+ document.querySelector('#benutzername').innerHTML = data[0].name;
+
+
+
+ })
+}
+
+/*function holeWGs(){
+
+
+ let benutzerID = localStorage.getItem('benutzerID');
+ let token = localStorage.getItem('token');
+
+ let formData = new FormData();
+ formData.append('benutzerID', benutzerID);
+
+ fetch("https://450731-3.web.fhgr.ch/php/holeWGs.php",
+ {
+ body: formData,
+ method: "post",
+ headers: {
+
+ 'Authorization': 'Basic ' + btoa(benutzerID + ':' + token),
+
+ }
+ })
+
+ .then((res) => {
+
+ // falls die Sitzung nicht abgelaufen ist, verarbeite die JSON antwort
+ if (res.status >= 200 && res.status < 300) {
+
+ return res.json();
+
+ } else {
+
+ alert('Deine Sitzung ist abgelaufen. Du wirst auf die Login-Seite weitergeleitet.');
+ window.location = "/login.html"
+
+ }
+
+ })
+ .then((data) => {
+
+ // mache etwas
+ console.log(data);
+
+ //WGsAnzeigen(data);
+
+ // console.log(data[0].name);
+
+
+ })
+
+ }*/
diff --git a/99_versionen/upload_wip1.css b/99_versionen/upload_wip1.css
new file mode 100644
index 0000000..11b1f88
--- /dev/null
+++ b/99_versionen/upload_wip1.css
@@ -0,0 +1,47 @@
+.ablageBereich {
+ max-width: 200px;
+ height: 200px;
+ padding: 25px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ font-family: "Quicksand", sans-serif;
+ font-weight: 500;
+ font-size: 20px;
+ cursor: pointer;
+ color: #cccccc;
+ border: 4px dashed #009578;
+ border-radius: 10px;
+}
+
+.ablageBereich--over {
+ border-style: solid;
+}
+
+#ablageBereich_input {
+ display: none;
+}
+
+.ablageBereich_vorschau {
+ width: 100%;
+ height: 100%;
+ border-radius: 10px;
+ overflow: hidden;
+ background-color: #cccccc;
+ background-size: cover;
+ position: relative;
+}
+
+.ablageBereich_vorschau::after {
+ content: attr(data-label);
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ padding: 5px 0;
+ color: #ffffff;
+ background: rgba(0, 0, 0, 0.75);
+ font-size: 14px;
+ text-align: center;
+}
\ No newline at end of file
diff --git a/99_versionen/upload_wip1.html b/99_versionen/upload_wip1.html
new file mode 100644
index 0000000..5e240c7
--- /dev/null
+++ b/99_versionen/upload_wip1.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ zaeMMP
+
+
+
+
+
+
+
+
+
+ Upload
+
+
+ Zusammenfassung
+
+
+ reinziehen oder klicken um auszuwählen
+
+
+
+
+
+
+
+
+ Kurs
+
+
+
+
+
+
+
+ Standort
+
+
+
+
+
+
+
+ Hochladen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/99_versionen/upload_wip1.js b/99_versionen/upload_wip1.js
new file mode 100644
index 0000000..4b22d28
--- /dev/null
+++ b/99_versionen/upload_wip1.js
@@ -0,0 +1,134 @@
+//ERSTELLEN von Drag&Drop
+
+ //FUNKTION Dag&Drop
+ //kopiert von https://dcode.domenade.com/tutorials/simple-drag-and-drop-file-upload-html-css-javascript
+ document.querySelectorAll(".ablageBereich_input").forEach((inputElement) => {
+ const ablageBereichElement = inputElement.closest(".ablageBereich");
+
+ ablageBereichElement.addEventListener("click", (e) => {
+ inputElement.click();
+ });
+
+ inputElement.addEventListener("change", (e) => {
+ if (inputElement.files.length) {
+ updateVorschau(ablageBereichElement, inputElement.files[0]);
+ }
+ });
+
+ ablageBereichElement.addEventListener("dragover", (e) => {
+ e.preventDefault();
+ ablageBereichElement.classList.add("ablageBereich--over");
+ });
+
+ ["dragleave", "dragend"].forEach((type) => {
+ ablageBereichElement.addEventListener(type, (e) => {
+ ablageBereichElement.classList.remove("ablageBereich--over");
+ });
+ });
+
+ ablageBereichElement.addEventListener("drop", (e) => {
+ e.preventDefault();
+
+ if (e.dataTransfer.files.length) {
+ inputElement.files = e.dataTransfer.files;
+ updateVorschau(ablageBereichElement, e.dataTransfer.files[0]);
+ }
+
+ ablageBereichElement.classList.remove("ablageBereich--over");
+ });
+ });
+
+ /**
+ * Update der Vorschau auf ein ablageBereichElement.
+ *
+ * @param {HTMLElement} ablageBereichElement
+ * @param {File} file
+ */
+
+ // FUNKTION updateVorschau
+ function updateVorschau(ablageBereichElement, file) {
+ let vorschauElement = ablageBereichElement.querySelector(".ablageBereich_vorschau");
+
+ //Erstes Mal-> info entfernen
+ if (ablageBereichElement.querySelector(".ablageBereich_info")) {
+ ablageBereichElement.querySelector(".ablageBereich_info").remove();
+ }
+
+ // Erstes Mal-> vorschauElement kreiren, wenn nicht vorhanden
+ if (!vorschauElement) {
+ vorschauElement = document.createElement("div");
+ vorschauElement.classList.add("ablageBereich_vorschau");
+ ablageBereichElement.appendChild(vorschauElement);
+ }
+
+ vorschauElement.dataset.label = file.name;
+
+ /*
+ //ANZEIGEN Vorschau wenn Bild Dokumente
+ if (file.type.startsWith("image/")) {
+ const reader = new FileReader();
+
+ reader.readAsDataURL(file);
+ reader.onload = () => {
+ vorschauElement.style.backgroundImage = `url('${reader.result}')`;
+ };
+ } else {
+ vorschauElement.style.backgroundImage = null;
+ }
+ */
+
+ }// ENDE FUNKTION updateVorschau
+
+
+
+
+
+//FUNKTION hochladen()
+
+function hochladen(){
+
+ // ABSPEICHERN Variabeln Inputs
+//let dokumentInput = document.querySelector("#ablageBereich_input");
+
+let kursInput = document.querySelector("#kurs_input").value;
+let standortInput = document.querySelector("#standort_input").value;
+
+//console.log(dokumentInput);
+console.log(kursInput);
+console.log(standortInput);
+
+//ERSTELLEN new FormData
+let formData = new FormData();
+
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+//formData.append("dokument", dokumentInput.files[0]);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("kurs", kursInput);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("standort", standortInput);
+
+
+
+// ABSENDEN FormData object an den Server
+fetch("https://450731-3.web.fhgr.ch/php/upload.php", {
+ method: "POST",
+ body: formData
+})
+
+.then((response) => {
+
+ return response.text(); //Form angeben in der Antwort erhalten wollen
+
+})
+
+.then((data) => {
+ console.log(data)
+
+ document.querySelector('#nachricht').innerHTML = data;
+
+})
+
+}; //ENDE FUNKTION hochladen()
\ No newline at end of file
diff --git a/99_versionen/upload_wip1.php b/99_versionen/upload_wip1.php
new file mode 100644
index 0000000..8f3315e
--- /dev/null
+++ b/99_versionen/upload_wip1.php
@@ -0,0 +1,107 @@
+prepare($sql);
+
+//$erfolg = $stmt->execute(array('kurs' => $kurs, 'standort' => $standort ));
+$erfolg = $stmt->execute(array('standort' => $standort ));
+
+//PRÜFEN ob $erfolg ==1 / ==true
+
+if ($erfolg) {
+
+ print_r('Registrierung erfolgreich.');
+} else {
+
+ print_r($erfolg);
+
+}
+;
+
+// Variabeln zB. $email, $username $password
+// Spalten Namen zB. name, email, password
+// Platzhalter zB. :Name, :Email, :Password
+
+
+//ÜBERPRÜFEN ob Datei hochgeladen
+if (isset($_FILES["file"]) && $_FILES["file"]["error"] === UPLOAD_ERR_OK) {
+ // Get the file
+ $file = $_FILES["file"];
+ $file_name = $file['name'];
+ $file_tmp_name = $file['tmp_name'];
+
+ //ABSPEICHERN der Datei
+ move_uploaded_file($file_tmp_name, "path/to/upload/$file_name");
+} else {
+ echo "There was an error uploading the file.";
+}
+
+
+-----------------
+------------------------------
+*/
+
+//importieren wir das config.php in dieses File
+require('config.php');
+
+/*Wir haben:
+Variabeln= mit $
+Spaltennamen in der Tabelle = Kleingeschrieben
+Platzhalter = Grossgeschrieben
+Mit Execute fügen wir die Variabeln durch die Platzhalter in den Spaltennamen ein.
+*/
+
+$standort = $_POST['standort'];
+
+
+
+/* Was wollen wir einfügen?, Tabelle Benutzer mit folgenden Spaltennamen(email in kleinbuchstaben), Name der Variabeln */
+$sql = "INSERT INTO PDF (standort) VALUES (:Standort)";
+/*pdo=Datenbankverbindung die wir im config definiert haben. bereite dich vor, dieses SQL Statement auszuführen*/
+$stmt = $pdo->prepare($sql);
+/*definiert nochmals, was wir ausführen möchten, mit welchen Namen, also Variabel Email greiffen wir auf Email zu,
+Platzhalter ohne Dollarzeichen, Wir definieren Variabeln und nutzen sie im execute
+Wenn alles geklappt hat, wir erfolg = 1 = true */
+$erfolg = $stmt->execute(array('Standort' => $standort));
+//Könnte auch schreiben if erfolg==1
+if ($erfolg) {
+
+ print_r('Registrierung erfolgreich.');
+
+} else {
+//Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+};
\ No newline at end of file
diff --git a/99_versionen/upload_wip2.html b/99_versionen/upload_wip2.html
new file mode 100644
index 0000000..d611743
--- /dev/null
+++ b/99_versionen/upload_wip2.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ zaeMMP
+
+
+
+
+
+
+
+
+
+ Upload
+
+
+ Zusammenfassung
+
+
+ reinziehen oder klicken um auszuwählen
+
+
+
+
+
+
+
+
+ Kurs
+
+
+
+
+
+
+
+
+
+
+ Bern
+ Zuerich
+ Chur
+
+
+
+
+
+
+
+ Hochladen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/99_versionen/upload_wip2.js b/99_versionen/upload_wip2.js
new file mode 100644
index 0000000..e44546c
--- /dev/null
+++ b/99_versionen/upload_wip2.js
@@ -0,0 +1,195 @@
+//ERSTELLEN von Drag&Drop auf ablageBereich_input
+//FUNKTION dragDrop
+ function dragDrop(){
+
+ //kopiert von https://dcode.domenade.com/tutorials/simple-drag-and-drop-file-upload-html-css-javascript
+ document.querySelectorAll("#ablageBereich_input").forEach((inputElement) => {
+ const ablageBereichElement = inputElement.closest(".ablageBereich");
+
+ ablageBereichElement.addEventListener("click", (e) => {
+ inputElement.click();
+ });
+
+ inputElement.addEventListener("change", (e) => {
+ if (inputElement.files.length) {
+ updateVorschau(ablageBereichElement, inputElement.files[0]);
+ }
+ });
+
+ ablageBereichElement.addEventListener("dragover", (e) => {
+ e.preventDefault();
+ ablageBereichElement.classList.add("ablageBereich--over");
+ });
+
+ ["dragleave", "dragend"].forEach((type) => {
+ ablageBereichElement.addEventListener(type, (e) => {
+ ablageBereichElement.classList.remove("ablageBereich--over");
+ });
+ });
+
+ ablageBereichElement.addEventListener("drop", (e) => {
+ e.preventDefault();
+
+ if (e.dataTransfer.files.length) {
+ inputElement.files = e.dataTransfer.files;
+ updateVorschau(ablageBereichElement, e.dataTransfer.files[0]);
+ }
+
+ ablageBereichElement.classList.remove("ablageBereich--over");
+ });
+ });
+
+ /**
+ * Update der Vorschau auf ein ablageBereichElement.
+ *
+ * @param {HTMLElement} ablageBereichElement
+ * @param {File} file
+ */
+
+ // FUNKTION updateVorschau
+ function updateVorschau(ablageBereichElement, file) {
+ let vorschauElement = ablageBereichElement.querySelector(".ablageBereich_vorschau");
+
+ //Erstes Mal-> info entfernen
+ if (ablageBereichElement.querySelector(".ablageBereich_info")) {
+ ablageBereichElement.querySelector(".ablageBereich_info").remove();
+ }
+
+ // Erstes Mal-> vorschauElement kreiren, wenn nicht vorhanden
+ if (!vorschauElement) {
+ vorschauElement = document.createElement("div");
+ vorschauElement.classList.add("ablageBereich_vorschau");
+ ablageBereichElement.appendChild(vorschauElement);
+ }
+
+ vorschauElement.dataset.label = file.name;
+
+ /*
+ //ANZEIGEN Vorschau wenn Bild Dokumente
+ if (file.type.startsWith("image/")) {
+ const reader = new FileReader();
+
+ reader.readAsDataURL(file);
+ reader.onload = () => {
+ vorschauElement.style.backgroundImage = `url('${reader.result}')`;
+ };
+ } else {
+ vorschauElement.style.backgroundImage = null;
+ }
+ */
+
+ }// ENDE FUNKTION updateVorschau
+
+ };//ENDE FUNKTION dragDrop
+
+
+holeStandorte();
+
+
+//FUNKTION holeStandorte
+function holeStandorte(){
+
+//ERSTELLEN formData Objekt
+let formData = new FormData();
+
+fetch("https://450731-3.web.fhgr.ch/php/holeStandorte.php",
+ {
+ body: formData,
+ method: "post",
+
+ })
+
+ .then((res) => {
+
+ return res.json();
+
+ })
+ .then((data) => {
+
+ console.log(data);
+
+ standorteAnzeigen(data);
+
+
+ })
+
+
+} //ENDE FUNKTION holeStandorte()
+
+
+//FUNKTION standorteAnzeigen()
+function standorteAnzeigen(data){
+ console.log("standorteAnzeigen")
+
+ //LOESCHEN Standorte
+ let standortInput = document.querySelector("#standort_input");
+
+ standortInput.innerHTML = "";
+
+ //forEach-Loop
+ data.forEach(standort => {
+
+ let standortInputOption = document.createElement('option');
+
+ console.log(standortInputOption);
+
+ standortInputOption.innerHTML = standort.standort;
+
+
+ standortInput.appendChild(standortInputOption);
+
+ });//ENDE forEach-Loop
+
+};//ENDE FUNKTION standorteAnzeigen()
+
+
+
+//FUNKTION hochladen()
+function dokumentHochladen(){
+
+// ABSPEICHERN Variabeln Inputs
+//let dokumentInput = document.querySelector("#ablageBereich_input");
+let kursInput = document.querySelector("#kurs_input").value;
+let standortInputWert = document.querySelector("#standort_input").value;
+
+//console.log(dokumentInput);
+console.log(kursInput);
+console.log(standortInputWert);
+
+//ERSTELLEN new FormData
+let formData = new FormData();
+
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+//formData.append("dokument", dokumentInput.files[0]);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("kurs", kursInput);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("standort", standortInputWert);
+
+
+
+// ABSENDEN FormData object an den Server
+fetch("https://450731-3.web.fhgr.ch/php/upload.php", {
+ method: "POST",
+ body: formData
+})
+
+.then((response) => {
+
+ //console.log(formData);
+
+ return response.text(); //Form angeben in der Antwort erhalten wollen
+
+})
+
+.then((data) => {
+ //console.log(data)
+
+ document.querySelector('#nachricht').innerHTML = data;
+
+})
+
+}; //ENDE FUNKTION dokumentHochladen()
\ No newline at end of file
diff --git a/99_versionen/upload_wip2.php b/99_versionen/upload_wip2.php
new file mode 100644
index 0000000..e5117ca
--- /dev/null
+++ b/99_versionen/upload_wip2.php
@@ -0,0 +1,59 @@
+prepare($sql);
+
+ //AUSFUEHREN PDO-Statement, mit welcher Variabel erfolgt Zugriff auf Platzhalter ohne Dollarzeichen
+
+ $erfolg = $stmt->execute(array('Standort' => $standort));
+
+ //PRUEFEN ob Zugriff auf DB erfolgreich, Meldung ausgeben
+ //Könnte auch schreiben if erfolg==1
+ if ($erfolg) {
+
+ print_r('Registrierung erfolgreich.');
+
+ } else {
+ //Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+ };
+
+
+//SELECT Infos Standort-----------------------------------------------------------------------------------------------------------------
+
+//EINFUEGEN in Tabelle PDF in Spalte standort Platzhalter :Standort
+$sql = "SELECT DISTINCT standort FROM PDF";
+
+$stmt = $pdo->prepare($sql);
+
+$erfolg = $stmt->execute();
+
+if ($erfolg) {
+
+ $array = $stmt->fetchAll();
+
+ $jsonArray = json_encode($array);
+
+ print_r($jsonArray);
+}
+
+
+
diff --git a/99_versionen/upload_wip2a.js b/99_versionen/upload_wip2a.js
new file mode 100644
index 0000000..4b22d28
--- /dev/null
+++ b/99_versionen/upload_wip2a.js
@@ -0,0 +1,134 @@
+//ERSTELLEN von Drag&Drop
+
+ //FUNKTION Dag&Drop
+ //kopiert von https://dcode.domenade.com/tutorials/simple-drag-and-drop-file-upload-html-css-javascript
+ document.querySelectorAll(".ablageBereich_input").forEach((inputElement) => {
+ const ablageBereichElement = inputElement.closest(".ablageBereich");
+
+ ablageBereichElement.addEventListener("click", (e) => {
+ inputElement.click();
+ });
+
+ inputElement.addEventListener("change", (e) => {
+ if (inputElement.files.length) {
+ updateVorschau(ablageBereichElement, inputElement.files[0]);
+ }
+ });
+
+ ablageBereichElement.addEventListener("dragover", (e) => {
+ e.preventDefault();
+ ablageBereichElement.classList.add("ablageBereich--over");
+ });
+
+ ["dragleave", "dragend"].forEach((type) => {
+ ablageBereichElement.addEventListener(type, (e) => {
+ ablageBereichElement.classList.remove("ablageBereich--over");
+ });
+ });
+
+ ablageBereichElement.addEventListener("drop", (e) => {
+ e.preventDefault();
+
+ if (e.dataTransfer.files.length) {
+ inputElement.files = e.dataTransfer.files;
+ updateVorschau(ablageBereichElement, e.dataTransfer.files[0]);
+ }
+
+ ablageBereichElement.classList.remove("ablageBereich--over");
+ });
+ });
+
+ /**
+ * Update der Vorschau auf ein ablageBereichElement.
+ *
+ * @param {HTMLElement} ablageBereichElement
+ * @param {File} file
+ */
+
+ // FUNKTION updateVorschau
+ function updateVorschau(ablageBereichElement, file) {
+ let vorschauElement = ablageBereichElement.querySelector(".ablageBereich_vorschau");
+
+ //Erstes Mal-> info entfernen
+ if (ablageBereichElement.querySelector(".ablageBereich_info")) {
+ ablageBereichElement.querySelector(".ablageBereich_info").remove();
+ }
+
+ // Erstes Mal-> vorschauElement kreiren, wenn nicht vorhanden
+ if (!vorschauElement) {
+ vorschauElement = document.createElement("div");
+ vorschauElement.classList.add("ablageBereich_vorschau");
+ ablageBereichElement.appendChild(vorschauElement);
+ }
+
+ vorschauElement.dataset.label = file.name;
+
+ /*
+ //ANZEIGEN Vorschau wenn Bild Dokumente
+ if (file.type.startsWith("image/")) {
+ const reader = new FileReader();
+
+ reader.readAsDataURL(file);
+ reader.onload = () => {
+ vorschauElement.style.backgroundImage = `url('${reader.result}')`;
+ };
+ } else {
+ vorschauElement.style.backgroundImage = null;
+ }
+ */
+
+ }// ENDE FUNKTION updateVorschau
+
+
+
+
+
+//FUNKTION hochladen()
+
+function hochladen(){
+
+ // ABSPEICHERN Variabeln Inputs
+//let dokumentInput = document.querySelector("#ablageBereich_input");
+
+let kursInput = document.querySelector("#kurs_input").value;
+let standortInput = document.querySelector("#standort_input").value;
+
+//console.log(dokumentInput);
+console.log(kursInput);
+console.log(standortInput);
+
+//ERSTELLEN new FormData
+let formData = new FormData();
+
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+//formData.append("dokument", dokumentInput.files[0]);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("kurs", kursInput);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("standort", standortInput);
+
+
+
+// ABSENDEN FormData object an den Server
+fetch("https://450731-3.web.fhgr.ch/php/upload.php", {
+ method: "POST",
+ body: formData
+})
+
+.then((response) => {
+
+ return response.text(); //Form angeben in der Antwort erhalten wollen
+
+})
+
+.then((data) => {
+ console.log(data)
+
+ document.querySelector('#nachricht').innerHTML = data;
+
+})
+
+}; //ENDE FUNKTION hochladen()
\ No newline at end of file
diff --git a/99_versionen/upload_wip3.html b/99_versionen/upload_wip3.html
new file mode 100644
index 0000000..d6ecca3
--- /dev/null
+++ b/99_versionen/upload_wip3.html
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+ zaeMMP
+
+
+
+
+
+
+
+
+
+ Upload
+
+
+ Zusammenfassung
+
+
+ reinziehen oder klicken um auszuwählen
+
+
+
+
+
+
+
+
+ Kurs
+
+ IM
+
+
+
+
+
+
+
+ Studienort
+
+ Bern
+ Zuerich
+ Chur
+
+
+
+
+
+
+
+ Hochladen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/99_versionen/upload_wip3.php b/99_versionen/upload_wip3.php
new file mode 100644
index 0000000..7ef32e5
--- /dev/null
+++ b/99_versionen/upload_wip3.php
@@ -0,0 +1,198 @@
+prepare($sql);
+$erfolg = $stmt->execute(array('Standort' => $standort, 'KursName' => $kursName,'Benutzer_ID' => $benutzer_ID,'dokumentName' => $dokumentName));
+
+if ($erfolg) {
+ print_r('Registrierung erfolgreich.');
+} else {
+ print_r($erfolg);
+};
+
+
+
+
+//INSERT Variable $standort-----------------------------------------------------------------------------------------------------------------
+// //ABSPEICHERN Variable $standort
+$standort = $_POST['standort'];
+
+ //$standort = "testOrt";
+
+ //EINFUEGEN in Tabelle PDF in Spalte standort Platzhalter :Standort
+ /*$sql = "INSERT INTO PDF (standort) VALUES (:Standort) AND
+ INSERT INTO PDF (kurs_ID) SELECT ID FROM Kurs WHERE name = (:kursName) ";
+*/
+ $sql = "INSERT INTO PDF (standort) VALUES (:Standort)";
+
+ //VORBEREITEN SQL-Statement auszuführen, *pdo=Datenbankverbindung, im config definiert
+ $stmt = $pdo->prepare($sql);
+
+ //AUSFUEHREN PDO-Statement, mit welcher Variabel erfolgt Zugriff auf Platzhalter ohne Dollarzeichen
+ $erfolg = $stmt->execute(array('Standort' => $standort) );
+
+ //$erfolg = $stmt->execute(array('Standort' => $standort) );
+
+ //PRUEFEN ob Zugriff auf DB erfolgreich, Meldung ausgeben
+ //Könnte auch schreiben if erfolg==1
+ if ($erfolg) {
+
+ print_r('Registrierung erfolgreich.');
+
+ } else {
+ //Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+ };
+
+
+
+//INSERT Variable $kursName-----------------------------------------------------------------------------------------------------------------
+// //ABSPEICHERN Variable $kursName
+$kursName = $_POST['kursName'];
+
+ //$standort = "testOrt";
+
+ //EINFUEGEN in Tabelle PDF in Spalte standort Platzhalter :Standort
+ /*$sql = "INSERT INTO PDF (standort) VALUES (:Standort) AND
+ INSERT INTO PDF (kurs_ID) SELECT ID FROM Kurs WHERE name = (:kursName) ";
+*/
+ $sql = "INSERT INTO PDF (kurs_ID) SELECT ID FROM Kurs WHERE name = (:kursName)";
+
+ //VORBEREITEN SQL-Statement auszuführen, *pdo=Datenbankverbindung, im config definiert
+ $stmt = $pdo->prepare($sql);
+
+ //AUSFUEHREN PDO-Statement, mit welcher Variabel erfolgt Zugriff auf Platzhalter ohne Dollarzeichen
+ $erfolg = $stmt->execute(array('kursName' => $kursName) );
+
+ //$erfolg = $stmt->execute(array('Standort' => $standort) );
+
+ //PRUEFEN ob Zugriff auf DB erfolgreich, Meldung ausgeben
+ //Könnte auch schreiben if erfolg==1
+ if ($erfolg) {
+
+ print_r('Registrierung erfolgreich.');
+
+ } else {
+ //Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+ };
+
+
+//INSERT Variable $benutzer_ID-----------------------------------------------------------------------------------------------------------------
+// //ABSPEICHERN Variable $benutzer_ID
+$benutzer_ID = $_POST['benutzer_ID'];
+
+ //$standort = "testOrt";
+
+ //EINFUEGEN in Tabelle PDF in Spalte standort Platzhalter :Standort
+ /*$sql = "INSERT INTO PDF (standort) VALUES (:Standort) AND
+ INSERT INTO PDF (kurs_ID) SELECT ID FROM Kurs WHERE name = (:kursName) ";
+*/
+$sql = "INSERT INTO PDF (benutzer_ID) VALUES (:Benutzer_ID)";
+
+ //VORBEREITEN SQL-Statement auszuführen, *pdo=Datenbankverbindung, im config definiert
+ $stmt = $pdo->prepare($sql);
+
+ //AUSFUEHREN PDO-Statement, mit welcher Variabel erfolgt Zugriff auf Platzhalter ohne Dollarzeichen
+ $erfolg = $stmt->execute(array('Benutzer_ID' => $benutzer_ID) );
+
+ //$erfolg = $stmt->execute(array('Standort' => $standort) );
+
+ //PRUEFEN ob Zugriff auf DB erfolgreich, Meldung ausgeben
+ //Könnte auch schreiben if erfolg==1
+ if ($erfolg) {
+
+ print_r('Registrierung erfolgreich.');
+
+ } else {
+ //Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+ };
+
+
+
+
+
+
+/*
+
+//INSERT Variable $dokumentName-----------------------------------------------------------------------------------------------------------------
+// //ABSPEICHERN Variable $dokumentName
+
+
+
+ //$standort = "testOrt";
+
+ //EINFUEGEN in Tabelle PDF in Spalte standort Platzhalter :Standort
+ /*$sql = "INSERT INTO PDF (standort) VALUES (:Standort) AND
+ INSERT INTO PDF (kurs_ID) SELECT ID FROM Kurs WHERE name = (:kursName) ";
+
+
+*/
+
+$dokumentName = $_POST['dokumentName'];
+
+$sql = "INSERT INTO PDF (dokument) VALUES (:DokumentName)";
+
+ //VORBEREITEN SQL-Statement auszuführen, *pdo=Datenbankverbindung, im config definiert
+ $stmt = $pdo->prepare($sql);
+
+ //AUSFUEHREN PDO-Statement, mit welcher Variabel erfolgt Zugriff auf Platzhalter ohne Dollarzeichen
+ $erfolg = $stmt->execute(array('DokumentName' => $dokumentName) );
+
+ //$erfolg = $stmt->execute(array('Standort' => $standort) );
+
+ //PRUEFEN ob Zugriff auf DB erfolgreich, Meldung ausgeben
+ //Könnte auch schreiben if erfolg==1
+ if ($erfolg) {
+
+ print_r('Registrierung erfolgreich.');
+
+ } else {
+ //Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+ };
+
+
+
+/*
+//SELECT Infos Standort-----------------------------------------------------------------------------------------------------------------
+
+
+//EINFUEGEN in Tabelle PDF in Spalte standort Platzhalter :Standort
+$sql = "SELECT DISTINCT standort FROM PDF";
+
+$stmt = $pdo->prepare($sql);
+
+$erfolg = $stmt->execute();
+
+if ($erfolg) {
+
+ $array = $stmt->fetchAll();
+
+ $jsonArray = json_encode($array);
+
+ print_r($jsonArray);
+}
+
+
+
+*/
\ No newline at end of file
diff --git a/99_versionen/upload_wip3js b/99_versionen/upload_wip3js
new file mode 100644
index 0000000..acd96d5
--- /dev/null
+++ b/99_versionen/upload_wip3js
@@ -0,0 +1,284 @@
+let dokumentName;
+
+//ERSTELLEN von Drag&Drop auf ablageBereich_input
+dragDrop();
+
+
+//FUNKTION dragDrop
+ function dragDrop(){
+
+
+ //kopiert von https://dcode.domenade.com/tutorials/simple-drag-and-drop-file-upload-html-css-javascript
+ document.querySelectorAll("#ablageBereich_input").forEach((inputElement) => {
+ const ablageBereichElement = inputElement.closest(".ablageBereich");
+
+ ablageBereichElement.addEventListener("click", (e) => {
+ inputElement.click();
+ });
+
+ inputElement.addEventListener("change", (e) => {
+ if (inputElement.files.length) {
+ updateVorschau(ablageBereichElement, inputElement.files[0]);
+ }
+ });
+
+ ablageBereichElement.addEventListener("dragover", (e) => {
+ e.preventDefault();
+ ablageBereichElement.classList.add("ablageBereich--over");
+ });
+
+ ["dragleave", "dragend"].forEach((type) => {
+ ablageBereichElement.addEventListener(type, (e) => {
+ ablageBereichElement.classList.remove("ablageBereich--over");
+ });
+ });
+
+ ablageBereichElement.addEventListener("drop", (e) => {
+ e.preventDefault();
+
+ if (e.dataTransfer.files.length) {
+ inputElement.files = e.dataTransfer.files;
+ updateVorschau(ablageBereichElement, e.dataTransfer.files[0]);
+ }
+
+ ablageBereichElement.classList.remove("ablageBereich--over");
+ });
+ });
+
+ /**
+ * Update der Vorschau auf ein ablageBereichElement.
+ *
+ * @param {HTMLElement} ablageBereichElement
+ * @param {File} file
+ */
+
+ // FUNKTION updateVorschau
+ function updateVorschau(ablageBereichElement, file) {
+ let vorschauElement = ablageBereichElement.querySelector(".ablageBereich_vorschau");
+
+ //Erstes Mal-> info entfernen
+ if (ablageBereichElement.querySelector(".ablageBereich_info")) {
+ ablageBereichElement.querySelector(".ablageBereich_info").remove();
+ }
+
+ // Erstes Mal-> vorschauElement kreiren, wenn nicht vorhanden
+ if (!vorschauElement) {
+ vorschauElement = document.createElement("div");
+ vorschauElement.classList.add("ablageBereich_vorschau");
+ ablageBereichElement.appendChild(vorschauElement);
+ }
+
+ vorschauElement.dataset.label = file.name;
+
+ dokumentName = file.name;
+
+
+
+ /*
+ //ANZEIGEN Vorschau wenn Bild Dokumente
+ if (file.type.startsWith("image/")) {
+ const reader = new FileReader();
+
+ reader.readAsDataURL(file);
+ reader.onload = () => {
+ vorschauElement.style.backgroundImage = `url('${reader.result}')`;
+ };
+ } else {
+ vorschauElement.style.backgroundImage = null;
+ }
+ */
+
+ }// ENDE FUNKTION updateVorschau
+
+
+ };//ENDE FUNKTION dragDrop
+
+
+//holeStandorte();
+holeKurse();
+
+
+/*
+//FUNKTION holeStandorte
+function holeStandorte(){
+
+//ERSTELLEN formData Objekt
+let formData = new FormData();
+
+fetch("https://450731-3.web.fhgr.ch/php/holeStandorte.php",
+ {
+ body: formData,
+ method: "post",
+
+ })
+
+ .then((res) => {
+
+ return res.json();
+
+ })
+ .then((data) => {
+
+ console.log(data);
+
+ standorteAnzeigen(data);
+
+
+ })
+
+
+} //ENDE FUNKTION holeStandorte()
+
+
+
+//FUNKTION standorteAnzeigen()
+function standorteAnzeigen(data){
+ console.log("standorteAnzeigen")
+
+
+ let standortInput = document.querySelector("#standort_input");
+
+ //LOESCHEN Standorte
+ standortInput.innerHTML = "";
+
+ //forEach-Loop
+ data.forEach(standort => {
+
+ let standortInputOption = document.createElement('option');
+
+ console.log(standortInputOption);
+
+ standortInputOption.innerHTML = standort.standort;
+
+
+ standortInput.appendChild(standortInputOption);
+
+ });//ENDE forEach-Loop
+
+};//ENDE FUNKTION standorteAnzeigen()
+
+*/
+
+//FUNKTION holeKurse()
+function holeKurse(){
+
+//ERSTELLEN formData Objekt
+let formData = new FormData();
+
+fetch("https://450731-3.web.fhgr.ch/php/holeKurse.php",
+ {
+ body: formData,
+ method: "post",
+
+ })
+
+ .then((res) => {
+
+ return res.json();
+
+ })
+ .then((data) => {
+
+ console.log(data);
+
+ kurseAnzeigen(data);
+
+
+ })
+
+
+} //ENDE FUNKTION holeKurse()
+
+
+//FUNKTION kurseAnzeigen()
+function kurseAnzeigen(data){
+
+ console.log("kurseAnzeigen")
+
+
+ let kursInput = document.querySelector("#kurs_input");
+
+ //LOESCHEN Kurse
+ kursInput.innerHTML = "";
+
+ //forEach-Loop
+ data.forEach(kurs => {
+
+ let kursInputOption = document.createElement('option');
+
+ console.log(kursInputOption);
+
+ kursInputOption.innerHTML = kurs.name;
+
+
+ kursInput.appendChild(kursInputOption);
+
+ });//ENDE forEach-Loop
+
+};//ENDE FUNKTION kurseAnzeigen()
+
+
+
+
+//FUNKTION hochladen()
+function dokumentHochladen(){
+
+
+// ABSPEICHERN Variabeln Inputs
+//let dokumentInput = document.querySelector("#ablageBereich_input");
+let kursInput = document.querySelector("#kurs_input").value;
+let standortInputWert = document.querySelector("#standort_input").value;
+let benutzerID = localStorage.getItem("benutzerID");
+
+
+
+
+//console.log(dokumentInput);
+console.log(benutzerID);
+console.log(dokumentName);
+console.log(kursInput);
+console.log(standortInputWert);
+
+//ERSTELLEN new FormData
+let formData = new FormData();
+
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+//formData.append("dokument", dokumentInput.files[0]);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("kursName", kursInput);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("standort", standortInputWert);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("benutzer_ID", benutzerID);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("dokumentName", dokumentName);
+
+
+
+// ABSENDEN FormData object an den Server
+fetch("https://450731-3.web.fhgr.ch/php/upload.php", {
+ method: "POST",
+ body: formData
+})
+
+.then((response) => {
+
+ //console.log(formData);
+
+ return response.text(); //Form angeben in der Antwort erhalten wollen
+
+})
+
+.then((data) => {
+ //console.log(data)
+
+ document.querySelector('#nachricht').innerHTML = data;
+
+})
+
+}; //ENDE FUNKTION dokumentHochladen()
\ No newline at end of file
diff --git a/css/style.css b/css/style.css
new file mode 100644
index 0000000..6b7a111
--- /dev/null
+++ b/css/style.css
@@ -0,0 +1,481 @@
+*{
+ box-sizing: border-box;
+ padding: 0;
+}
+
+html {
+
+ font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
+ padding: 0%;
+ margin: auto;
+ background-color: #12333d;
+
+}
+
+.logo{
+ text-align: center;
+}
+.logo a{
+ text-align:center;
+ position: absolute;
+ color: #12333D;
+ font-family: 'Courier New', Courier, monospace;
+ font-size: large;
+ text-decoration: none;
+ font-weight: 600;
+
+}
+
+#nachricht {
+ font-family: 'Courier New', Courier, monospace;
+ color:#0cefc1;
+ font-style: bold;
+}
+.topheader{
+ background-color: #0cefc1;
+ padding-bottom: 10vh;
+}
+body {
+ padding: 0%;
+ margin: auto;
+ text-align: center;
+
+}
+
+#zaeMMP{
+ margin: 0;
+ padding-top: 30vh;
+ text-align: center;
+ font-family: 'Courier New', Courier, monospace;
+ font-size: 5em;
+ color: #12333d;
+
+}
+#subtitle{
+ text-align: center;
+ font-size: 1.3em;
+ font-family: 'Courier New', Courier, monospace;
+ color: #12333d;
+
+}
+
+.topheader button{
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%,-50%);
+ font-family: sans-serif, arial;
+ font-weight: bold;
+ font-size: 18px;
+ padding: 12px 24px;
+ background: none;
+ color: #12333d;
+ border: 2px solid #12333d;
+ cursor: pointer;
+ }
+ .topheader button:active, #tabelle button:focus{
+ outline: none;
+ }
+ .topheader button:hover{
+ color: #0cefc1;
+ box-shadow: 0px 4px 8px 1px #000;
+ transition: all .3s ease;
+ }
+ .topheader button::after{
+ content: '';
+ position: absolute;
+ bottom: 0px;
+ left: 0px;
+ width: 0px;
+ height: 0px;
+ background: #12333d;
+ transform-origin: left bottom;
+ transition-property: width height;
+ transition-duration: 0.3s;
+ z-index: -1;
+ }
+ .topheader button:hover::after{
+ width: 100%;
+ height: 100%;
+ }
+
+
+ #tabelle button{
+
+ font-family: sans-serif, arial;
+ font-weight: bold;
+ font-size: 18px;
+ background: none;
+ color: #0cefc1;
+ cursor: pointer;
+ }
+
+
+
+p {
+ font-size: 15px;
+ color: #4c86af;
+}
+
+.title{
+
+ text-align: center;
+}
+
+table#tabelle {
+ font-family: "Courier New", Courier, monospace;
+ background-color: #12333D;
+ width: 100%;
+ text-align: center;
+ border-collapse: collapse;
+ }
+ table#tabelle td, table.tabelle th {
+ padding: 7px 10px;
+ }
+ table#tabelle tbody td {
+ font-size: 13px;
+ font-weight:100;
+ color: #0cefc1;;
+ }
+ table#tabelle tr:nth-child(even) {
+ background: #173F4C;
+ }
+ table#tabelle thead {
+ color: #0cefc1;
+ font-weight: bold;
+ }
+ table#tabelle thead th {
+ font-size: 16px;
+ font-weight: bold;
+ color: #12333D;
+ text-align: center;
+ }
+
+
+
+a {
+
+ color: rgb(5, 72, 100);
+}
+
+input {
+ margin: 10px;
+}
+
+textarea {
+ margin: 10px;
+ width: 50%;
+}
+
+button {
+
+ margin: 10px;
+
+}
+
+.dropdown{
+
+ margin: 10px;
+}
+
+.wg {
+
+ border: 2px solid rgb(110, 168, 192);
+ padding: 10px;
+ margin-bottom: 15px;
+}
+
+.wg-image {
+
+ width: 50%;
+}
+
+#liste-wg {
+
+ width: 50%;
+ margin: auto;
+
+}
+
+nav {
+ text-align: right;
+}
+
+button {
+ background-color: #4c86af;
+ border: none;
+ color: white;
+ padding: 15px 32px;
+ text-align: center;
+ text-decoration: none;
+ display: inline-block;
+ font-size: 16px;
+ cursor: pointer;
+}
+h2 {
+ font-family:'Courier New', Courier, monospace;
+ color: #0cefc1;
+ text-align: left;
+}
+
+
+
+#container {
+ width: 100%;
+ display: flex;
+ flex-direction: row;
+ padding: 50px;;
+}
+#infoTex {
+ text-align: center;
+}
+#tabelleBereich{
+ width: 75%;
+}
+
+#infoText p{
+ font-family: 'Courier New', Courier, monospace;
+ font-size: 2em;
+ color:#12333D;
+ background-color: #0cefc1;
+ padding: 20px;
+ position: fixed;
+ width: 25%;
+}
+/* Login*/
+.titletext{
+ margin: 0;
+ padding-top: 20vh;
+ padding-bottom: 5vh;
+ text-align: center;
+ font-family: 'Courier New', Courier, monospace;
+ font-size: 5em;
+ color: #12333d;
+ background-color: #0cefc1;
+
+}
+input#passwort input#email{
+ font-size: 1.5rem;
+ color: #0cefc1;
+ background-color:#0f2931;
+ border-color:#12333D;
+}
+
+.einloggen{
+ text-align: center;
+ color: #0cefc1;
+ text-align: center;
+}
+.einloggen input:focus{
+ background-color: #061417;
+ color: #0cefc1;
+}
+
+
+
+.einloggen input{
+ background:#0b2228;
+ border-style: solid;
+ border-width: 1px;
+ border-color:#0b2228;
+ height: auto;
+ font-size: 1.2rem;
+ padding: 1.5rem 2rem;
+ transition: all 0.3s;
+ color: #0cefc1;
+
+}
+
+.einloggen button{
+
+ font-family:'Courier New', Courier, monospace;
+ font-weight: bold;
+ font-size: 18px;
+ padding: 12px 24px;
+ background: none;
+ color: #0cefc1;
+ border: 2px solid #0cefc1;
+ cursor: pointer;
+}
+
+.einloggen button:active, .einloggenbutton:focus{
+ outline: none;
+ }
+ .einloggen button:hover{
+ color: #12333D;
+ background-color: #0cefc1;
+ box-shadow: 0px 4px 8px 1px #000;
+ transition: all .3s ease;
+ }
+
+
+.einloggen label{
+ font-family: 'Courier New', Courier, monospace;
+}
+
+.einloggen h2{
+ width: 30%;
+ padding-top: 50px;
+ padding-bottom: 50px;
+
+ text-align: left;
+ margin: 0 auto;
+ font-family: 'Courier New', Courier, monospace;
+
+}
+
+/* Upload */
+
+header.flex {
+}
+
+header.flex button{
+ font-family:'Courier New', Courier, monospace;
+ font-weight: bold;
+ font-size: 18px;
+ padding: 12px 24px;
+ background-color: #12333D;
+ color: #0cefc1;
+ border: 2px solid #0cefc1;
+ cursor: pointer;
+}
+
+header.flex:active, header.flex button:focus{
+ outline: none;
+ }
+ header.flex button:hover{
+ color: #12333D;
+ background-color: #0cefc1;
+ box-shadow: 0px 4px 8px 1px #000;
+ transition: all .3s ease;
+ }
+
+.flex {
+position:absolute;
+padding: 20px;
+}
+
+.container-header h1{
+ color: #12333D;
+ font-family: 'Courier New', Courier, monospace;
+ font-size: 3em;
+}
+
+#Upload{
+ background-color: #0cefc1;
+ margin: 0;
+ padding-top: 30vh;
+ text-align: center;
+ font-family: 'Courier New', Courier, monospace;
+ font-size: 10em;
+ display: block;
+
+ color: #12333d;
+}
+#Upload h1{
+ padding-bottom: 5vh;
+}
+
+
+
+.container-header {
+
+ width: 33%;
+
+
+}
+
+.hidden {
+
+ display: none;
+
+}
+
+
+.standortform{
+
+}
+.standortform label{
+ font-family: 'Courier New', Courier, monospace;
+ background-color: #12333D;
+ color: #0cefc1;
+
+}
+.standortform select{
+ background-color :#12333D;
+ border-style: solid;
+ border-color: #0cefc1;
+ padding: 10px;
+ color: #0cefc1;
+}
+#zusammenfassung{
+ font-family: 'Courier New', Courier, monospace;
+ font-size: 2em;
+ color: #0cefc1;
+ padding-top: 5vh;
+ padding-bottom: 5vh;
+}
+.standortform button{
+ font-family:'Courier New', Courier, monospace;
+ font-weight: bold;
+ font-size: 18px;
+ padding: 12px 24px;
+ background: none;
+ color: #0cefc1;
+ border: 2px solid #0cefc1;
+ cursor: pointer;
+}
+
+.standortform button:active, .standortform button:focus{
+ outline: none;
+ }
+.standortform button:hover{
+ color: #12333D;
+ background-color: #0cefc1;
+ box-shadow: 0px 4px 8px 1px #000;
+ transition: all .3s ease;
+ }
+
+/*
+Profil
+*/
+
+#meinprofil button{
+ font-family:'Courier New', Courier, monospace;
+ font-weight: bold;
+ font-size: 18px;
+ padding: 12px 24px;
+ background: none;
+ color: #0cefc1;
+ border: 2px solid #0cefc1;
+ cursor: pointer;
+}
+
+#meinprofil button:active, .standortform button:focus{
+ outline: none;
+ }
+#meinprofil button:hover{
+ color: #12333D;
+ background-color: #0cefc1;
+ box-shadow: 0px 4px 8px 1px #12333D;
+ transition: all .3s ease;
+ }
+
+#meinprofil input{
+ background-color: #0d282f;
+ border-color: #12333D;
+ padding: 10px;
+ font-size: 1.5rem;
+ border-style: solid;
+ border-width: 1px;
+ color: #0cefc1;
+ font-family: 'Courier New', Courier, monospace;
+
+}
+
+#meinprofil label{
+ font-family: 'Courier New', Courier, monospace;
+ font-size: 2em;
+ color: #0cefc1;
+ text-align: left;
+}
\ No newline at end of file
diff --git a/css/upload.css b/css/upload.css
new file mode 100644
index 0000000..4b83898
--- /dev/null
+++ b/css/upload.css
@@ -0,0 +1,54 @@
+
+.Ablagewrapper {
+ padding: 20px;
+}
+.ablageBereich {
+ font-family: 'Courier New', Courier, monospace;
+ margin: auto;
+ max-width: 200px;
+ height: 200px;
+ padding: 25px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ font-family: "Quicksand", sans-serif;
+ font-weight: 500;
+ font-size: 20px;
+ cursor: pointer;
+ color: #0cefc1;
+ border: 4px dashed #0cefc1;
+ border-radius: 10px;
+}
+
+.ablageBereich--over {
+ border-style: solid;
+}
+
+#ablageBereich_input {
+ display: none;
+}
+
+.ablageBereich_vorschau {
+ width: 100%;
+ height: 100%;
+ border-radius: 10px;
+ overflow: hidden;
+ background-color: #0cefc1;;
+ background-size: cover;
+ position: relative;
+ margin: auto;
+}
+
+.ablageBereich_vorschau::after {
+ content: attr(data-label);
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ padding: 5px 0;
+ color: #0cefc1;;
+ background: rgba(0, 0, 0, 0.75);
+ font-size: 14px;
+ text-align: center;
+}
\ No newline at end of file
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..7a6c687
Binary files /dev/null and b/favicon.ico differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/js/checkToken.js b/js/checkToken.js
new file mode 100644
index 0000000..c9c3700
--- /dev/null
+++ b/js/checkToken.js
@@ -0,0 +1,19 @@
+
+
+console.log("Hallo")
+
+
+
+
+
+//FUNKTION checkToken()
+function checkToken(){
+ console.log("checkToken");
+
+ let token = localStorage.getItem('token');
+ if(token !== null){
+ window.location = "https://450731-3.web.fhgr.ch/upload.html"
+ } else {
+ window.location = "https://450731-3.web.fhgr.ch/login.html"
+ }
+}
diff --git a/js/index.js b/js/index.js
new file mode 100644
index 0000000..dd1802e
--- /dev/null
+++ b/js/index.js
@@ -0,0 +1,184 @@
+holePDF();
+
+
+//FUNKTION holePDF()
+function holePDF(){
+
+//ERSTELLEN formData Objekt
+let formData = new FormData();
+
+fetch("https://450731-3.web.fhgr.ch/php/index.php",
+ {
+ body: formData,
+ method: "post",
+
+ })
+
+ .then((res) => {
+
+ return res.json();
+
+ })
+ .then((data) => {
+
+ console.log(data);
+
+ pdfAnzeigen(data);
+
+
+ })
+
+
+} //ENDE FUNKTION holePDF()
+console.log ('test');
+
+function pdfAnzeigen(data){
+
+let tabelle = document.getElementById("tabelle");
+
+// The array you have in the console
+
+// Get a reference to the container element where you want to append the table
+//let tabelle = document.getElementById("tabelle");
+
+/*// Create a new table element
+let tabelle = document.createElement("table");
+
+//tabelleKopf
+let tabelleKopf = document.createElement("thead");
+let tabelleKopfReihe = document.createElement("tr");
+
+
+tabelleKopf.appendChild(tabelleKopfReihe);
+
+//let tabelleKopfZelle= document.createElement("td");
+
+//tabelleKopfReihe.appendChild(tabelleKopfZelle);
+
+for (let i = 0; i < 6; i++) {
+
+ let tabelleKopfZelle= document.createElement("td");
+ tabelleKopfReihe.appendChild(tabelleKopfZelle);
+
+ }
+
+tabelle.appendChild(tabelleKopf);
+*/
+//tabelleBody
+
+let tabelleBody = document.createElement("tbody");
+row = tabelleBody.insertRow();
+
+
+
+// (C2) LOOP THROUGH ARRAY & GENERATE ROWS-CELLS
+let perrow = 5; // 5 CELLS PER ROW
+data.forEach((dataRow, i) => {
+
+ for (let i = 0; i < 6; i++) {
+
+ let cell = row.insertCell();
+ cell.innerHTML = dataRow[i];
+
+
+ }
+
+
+ let cellSpende = row.insertCell();
+ let spendeButton = document.createElement("button");
+ spendeButton.classList.add("spendeButton");
+ spendeButton.innerHTML = "Download";
+ cellSpende.appendChild(spendeButton);
+
+ spendeButton.addEventListener("click", () => {
+ spendeText(dataRow);
+ });
+
+ function spendeText(dataRow){
+
+ let infoText = document.querySelector("#infoText");
+ infoText.innerHTML = "";
+ let p = document.createElement("p");
+ let span1 = document.createElement("span");
+ span1.innerHTML = dataRow[4];
+ let span2 = document.createElement("span");
+ span2.innerHTML = dataRow[5];
+ p.innerHTML = `Bedanke dich bei ${dataRow[4]} mit einem Kaffe per Twint an die Nummer ${dataRow[5]} `;
+ infoText.appendChild(p);
+
+ //infoText.innerHTML = "Bedanke dich bei " + dataRow[4] + " mit einem Kaffe per Twint an die Nummer " + dataRow[5];
+ }
+
+
+
+
+
+
+
+
+
+
+ /*let cellSpende = row.insertCell();
+ cellSpende.innerHTML = "Download ";
+
+ function spende(dataRow){
+ console.log("hat funktioniert");
+
+ let spendeButton = document.querySelector("#spendeButton");
+ console.log(spendeButton);
+
+ /*spendeButton.addEventListener("click", spendeText)
+
+ function spendeText(){
+
+ let infoText = document.querySelector("#infoText");
+
+ infoText.innerHTML = "";
+
+ infoText.innerHTML = "Bedanke dich bei " + dataRow[4] + " mit einem Kaffe per Twint an die Nummer " + dataRow[5];
+
+ };
+
+
+ } */
+
+
+
+
+
+
+
+
+
+
+ //let cellSpende = row.insertCell();
+ // cellSpende.innerHTML = "Download "
+
+ // ADD CELL
+
+ // CLICK ON CELL TO DO SOMETHING
+ // cell.onclick = FUNCTION;
+
+ // TO PASS IN A RUNNING NUMBER OR PARAMETER
+ // cell.onclick = () => { console.log(i); };
+
+ // BREAK INTO NEXT ROW
+
+
+ row = tabelleBody.insertRow();
+
+
+ /* let next = i + 1;
+ if (next%perrow==0 && next!=data.length) { row = tabelle.insertRow(); } */
+
+});
+
+// (D) ATTACH TABLE TO CONTAINER
+tabelle.appendChild(tabelleBody);
+
+tabelleBereich.appendChild(tabelle);
+
+
+}
+
+
diff --git a/js/login.js b/js/login.js
new file mode 100644
index 0000000..fa8b643
--- /dev/null
+++ b/js/login.js
@@ -0,0 +1,51 @@
+
+
+
+
+console.log('Hello Login');
+
+function login(){
+ let email = document.querySelector("#email").value;
+ let passwort = document.querySelector("#passwort").value;
+ console.log('Hallo ' + email + passwort);
+
+
+ //FormData = Box für unsere Formulardaten
+ let formData = new FormData();
+ formData.append('email', email);
+ formData.append('passwort', passwort);
+
+
+//Adresse eingeben, wo das Packet hinsoll
+fetch("https://450731-3.web.fhgr.ch/php/login.php",
+ {
+ body: formData,
+ //methode bestimmen, get auch möglich. So holen wir im php die Daten $_Post
+ method: "post",
+ })
+
+ //Warten auf Response=res
+ .then((res) => {
+ //wir wollen einen Text erhalten, andere Daten manchmal JSON
+
+ return res.json();
+
+ })
+ .then((data) => {
+ console.log(data);
+ document.querySelector('#nachricht').innerHTML = data[0];
+
+ //Platziere benutzerID an 1. Stelle und Token an 2. Stelle im localstorage
+ localStorage.setItem("benutzerID", data[1]);
+ localStorage.setItem("token", data[2]);
+
+ //Wenn ID und Token nicht 0 ist, also der benutzer eingeloggt ist, öffne die neue Seite(Startseite)
+ if (data[1] != 0 && data[2] != 0){
+
+ window.location.href = "https://450731-3.web.fhgr.ch/upload.html";
+
+
+ }
+
+ })
+ }
diff --git a/js/profil.js b/js/profil.js
new file mode 100644
index 0000000..aada9b8
--- /dev/null
+++ b/js/profil.js
@@ -0,0 +1,204 @@
+var profilID;
+
+holeProfildaten();
+
+function holeProfildaten() {
+
+ // get authentication variables from localstorage
+ let benutzerID = localStorage.getItem('benutzerID');
+ let token = localStorage.getItem('token');
+
+ let formData = new FormData();
+ formData.append('benutzerID', benutzerID);
+
+ fetch("https://450731-3.web.fhgr.ch/php/holeProfildaten.php",
+ {
+ body: formData,
+ method: "post",
+ headers: {
+
+ 'Authorization': 'Basic ' + btoa(benutzerID + ':' + token),
+
+ }
+ })
+
+ .then((res) => {
+
+ // error handling if session is expired
+ if (res.status >= 200 && res.status < 300) {
+
+ return res.json();
+
+ } else {
+
+ alert('Deine Sitzung ist abgelaufen. Du wirst auf die Login-Seite weitergeleitet.');
+ window.location = "/login.html"
+
+ }
+
+ })
+ .then((data) => {
+
+ console.log(data);
+
+ // falls es noch keine WG zu diesem User gibt
+ // falls es noch keine WG zu diesem User gibt
+ // falls es noch keine WG zu diesem User gibt
+ //if (data.length == 0) {
+
+ // zeige Infotext an
+ // document.querySelector('#infoText').innerHTML = "Fülle dieses Formular aus, um dein Profil zu erstellen."
+
+ // zeige den korrekten Button an
+// document.querySelector('#button-neue').classList.remove("hidden");
+
+ // falls es bereits eine WG zu diesem User gibt
+ // falls es bereits eine WG zu diesem User gibt
+ // falls es bereits eine WG zu diesem User gibt
+ // } else {
+
+ // speichere die wg ID in der globalen variable
+ // diese brauchen wir später zum aktualisieren und löschen der WG
+ profilID = data[0].ID;
+
+ // zeige Infotext an
+ // document.querySelector('#infoText').innerHTML = "Hier kannst du dein Profil bearbeiten:";
+
+ // zeige den korrekten Button an
+ // document.querySelector('#button-aktualisieren').classList.remove("hidden");
+ //document.querySelector('#button-loeschen').classList.remove("hidden");
+
+ // fülle das Formular mit den Werten aus der DB aus
+ document.querySelector('#name').value = data[0].name;
+ document.querySelector('#email').value = data[0].email;
+ document.querySelector('#handyNr').value = data[0].handyNr;
+ console.log(data);
+
+ })
+ }
+
+
+function aktualisiereProfil() {
+
+ // get authentication variables from localstorage
+ let benutzerID = localStorage.getItem('benutzerID');
+ let token = localStorage.getItem('token');
+
+ // Formulardaten in Body übertragen
+ let name = document.querySelector('#name').value;
+ let email = document.querySelector('#email').value;
+ let handyNr = document.querySelector('#handyNr').value;
+
+
+ let formData = new FormData();
+ //formData.append('benutzerID', benutzerID);
+ formData.append('name', name);
+ formData.append('email', email);
+ formData.append('handyNr', handyNr);
+
+
+ fetch("https://450731-3.web.fhgr.ch/php/aktualisiereProfil.php",
+ {
+ body: formData,
+ method: "post",
+ headers: {
+
+ 'Authorization': 'Basic ' + btoa(benutzerID + ':' + token),
+
+ }
+ })
+
+ .then((res) => {
+
+ // error handling if session is expired
+ if (res.status >= 200 && res.status < 300) {
+
+ return res.text();
+
+ } else {
+
+ alert('Deine Sitzung ist abgelaufen. Du wirst auf die Login-Seite weitergeleitet.');
+ window.location = "/login.html"
+
+ }
+
+ })
+ .then((data) => {
+
+ // zeige die Nachricht an
+ document.querySelector('#nachricht').innerHTML = data;
+ document.querySelector('#nachricht').innerHTML = "Aktualisierung erfolgreich!";
+
+
+ })
+}
+
+
+function loescheProfil() {
+
+ // get authentication variables from localstorage
+ let benutzerID = localStorage.getItem('benutzerID');
+ let token = localStorage.getItem('token');
+
+ let formData = new FormData();
+ formData.append('benutzerID', benutzerID);
+ formData.append('profilID', profilID);
+
+ fetch("https://450731-3.web.fhgr.ch/php/loescheProfil.php",
+ {
+ body: formData,
+ method: "post",
+ headers: {
+
+ 'Authorization': 'Basic ' + btoa(benutzerID + ':' + token),
+
+ }
+ })
+
+ .then((res) => {
+
+ // error handling if session is expired
+ if (res.status >= 200 && res.status < 300) {
+
+ return res.text();
+
+ } else {
+
+ alert('Deine Daten sind gelöscht, registriere dich erneut, falls du alle Funktionen nutzen möchtest.');
+ window.location = "/index.html"
+
+ }
+
+ })
+ .then((data) => {
+
+ console.log(data);
+ document.querySelector('#nachricht').innerHTML = data;
+
+ // button aktualisieren
+ // document.querySelector('#button-neue').classList.remove("hidden");
+ // document.querySelector('#button-aktualisieren').classList.add("hidden");
+ // document.querySelector('#button-loeschen').classList.add("hidden");
+
+ // Formularfelder leeren
+ document.querySelector('#name').value = "";
+ document.querySelector('#email').value = "";
+ document.querySelector('#handyNr').value = "";
+
+
+
+ // Variablen leeren
+ profilID = "";
+
+
+
+ })
+}
+
+function logout(){
+
+ localStorage.clear();
+ window.location = "/index.html";
+
+
+}
\ No newline at end of file
diff --git a/js/registrieren.js b/js/registrieren.js
new file mode 100644
index 0000000..b399147
--- /dev/null
+++ b/js/registrieren.js
@@ -0,0 +1,58 @@
+console.log('hallo');
+function registrieren (){
+ let benutzername = document.querySelector("#benutzername").value;
+ let handyNr = document.querySelector("#handyNr").value;
+ let email = document.querySelector("#email").value;
+ let passwort = document.querySelector("#passwort").value;
+ // console.log('Hallo ' + benutzername + email + passwort);
+
+
+ //FormData = Box für unsere Formulardaten
+ let formData = new FormData();
+ formData.append('benutzername', benutzername);
+ formData.append('handyNr', handyNr);
+ formData.append('email', email);
+ formData.append('passwort', passwort);
+//Adresse eingeben, wo das Packet hinsoll
+ fetch("https://450731-3.web.fhgr.ch/php/registrieren.php",
+ {
+ body: formData,
+ //methode bestimmen, get auch möglich. So holen wir im php die Daten $_Post
+ method: "post",
+ })
+
+ //Warten auf Response=res
+ .then((res) => {
+ //wir wollen einen Text erhalten, andere Daten manchmal JSON
+ return res.text();
+
+
+ })
+ .then((data) => {
+ // console.log(data);
+ document.querySelector('#nachricht').innerHTML = data;
+
+ })
+ }
+/*
+ //Die Grundlage für einen Fetch. Fetch ist eine Funktion, die einen Request an einen Server sendet und das Ergebnis zurückgibt
+ //In der ersten Zeile wird der Link zur API definiert. Dieser kann immer angepasst werden.
+ let url = 'https://pokeapi.co/api/v2/pokemon?limit=151&offset=0';
+ //Hier startet der Fetch mit der definierten URL.
+ fetch(url)
+ //Wenn der Fetch erfolgreich war, wird die Antwort in ein Objekt gespeichert.
+ .then(response => response.json())
+ //Wenn das Objekt gespeichert wurde, wird es in eine Variable gespeichert. Diese Variable heisst "data".
+ .then(data => {
+ //Hier kann man mit der Variable arbeiten. Entweder das DOM mit Informationen erweitern, oder eine neue Funktion aufrufen.
+ //Mit "Console.log(data);" sieht man den Inhalt des Objekts.
+ console.log(data);
+ //Ab hier kann man entweder mit der Variable data arbeiten, oder eine funktion aufrufen mit data als Parameter.
+
+ //Beispiel eines Funktionsaufrufs
+ //"showSomething(data);"
+
+ })
+ //Bei einem Fehler wird dieser gefangen "catch" und eine Fehlermeldung in der Konsole ausgegeben.
+ .catch(error => console.log(error))
+ */
\ No newline at end of file
diff --git a/js/script.js b/js/script.js
new file mode 100644
index 0000000..ca9988a
--- /dev/null
+++ b/js/script.js
@@ -0,0 +1,103 @@
+holeBenutzer();
+//holeWGs();
+
+function holeBenutzer() {
+ //Benutzer ID und Token werden aus dem localstorage geholt.
+ let benutzerID = localStorage.getItem('benutzerID');
+ let token = localStorage.getItem('token');
+
+ //BenutzerID wird in die Form gefügt
+ let formData = new FormData();
+ formData.append('benutzerID', benutzerID);
+
+ //fetchen php file
+ fetch("https://450731-3.web.fhgr.ch/php/holeBenutzer.php",
+ {
+ body: formData,
+ method: "post",
+ headers: {
+ //Verschlüsset Id und Token
+ 'Authorization': 'Basic ' + btoa(benutzerID + ':' + token),
+
+ }
+ })
+
+ .then((res) => {
+
+ // falls die Sitzung nicht abgelaufen ist, verarbeite die JSON antwort, Fehlermeldung abgeklärt. zb 404 Error. 200 OK
+ if (res.status >= 200 && res.status < 300) {
+
+ return res.text();
+
+ } else {
+ //Rückleitung zu login.html
+ alert('Deine Sitzung ist abgelaufen. Du wirst auf die Login-Seite weitergeleitet.');
+ window.location = "/login.html"
+
+ }
+
+ })
+ .then((data) => {
+ //console.log(data);
+
+
+ // // mache etwas
+
+ console.log(data[0].name);
+
+ document.querySelector('#name').innerHTML = data[0].name;
+
+
+
+ })
+}
+
+
+/*function holeWGs(){
+
+
+ let benutzerID = localStorage.getItem('benutzerID');
+ let token = localStorage.getItem('token');
+
+ let formData = new FormData();
+ formData.append('benutzerID', benutzerID);
+
+ fetch("https://450731-3.web.fhgr.ch/php/holeWGs.php",
+ {
+ body: formData,
+ method: "post",
+ headers: {
+
+ 'Authorization': 'Basic ' + btoa(benutzerID + ':' + token),
+
+ }
+ })
+
+ .then((res) => {
+
+ // falls die Sitzung nicht abgelaufen ist, verarbeite die JSON antwort
+ if (res.status >= 200 && res.status < 300) {
+
+ return res.json();
+
+ } else {
+
+ alert('Deine Sitzung ist abgelaufen. Du wirst auf die Login-Seite weitergeleitet.');
+ window.location = "/login.html"
+
+ }
+
+ })
+ .then((data) => {
+
+ // mache etwas
+ console.log(data);
+
+ //WGsAnzeigen(data);
+
+ // console.log(data[0].name);
+
+
+ })
+
+ }*/
diff --git a/js/upload copy.js b/js/upload copy.js
new file mode 100644
index 0000000..4b22d28
--- /dev/null
+++ b/js/upload copy.js
@@ -0,0 +1,134 @@
+//ERSTELLEN von Drag&Drop
+
+ //FUNKTION Dag&Drop
+ //kopiert von https://dcode.domenade.com/tutorials/simple-drag-and-drop-file-upload-html-css-javascript
+ document.querySelectorAll(".ablageBereich_input").forEach((inputElement) => {
+ const ablageBereichElement = inputElement.closest(".ablageBereich");
+
+ ablageBereichElement.addEventListener("click", (e) => {
+ inputElement.click();
+ });
+
+ inputElement.addEventListener("change", (e) => {
+ if (inputElement.files.length) {
+ updateVorschau(ablageBereichElement, inputElement.files[0]);
+ }
+ });
+
+ ablageBereichElement.addEventListener("dragover", (e) => {
+ e.preventDefault();
+ ablageBereichElement.classList.add("ablageBereich--over");
+ });
+
+ ["dragleave", "dragend"].forEach((type) => {
+ ablageBereichElement.addEventListener(type, (e) => {
+ ablageBereichElement.classList.remove("ablageBereich--over");
+ });
+ });
+
+ ablageBereichElement.addEventListener("drop", (e) => {
+ e.preventDefault();
+
+ if (e.dataTransfer.files.length) {
+ inputElement.files = e.dataTransfer.files;
+ updateVorschau(ablageBereichElement, e.dataTransfer.files[0]);
+ }
+
+ ablageBereichElement.classList.remove("ablageBereich--over");
+ });
+ });
+
+ /**
+ * Update der Vorschau auf ein ablageBereichElement.
+ *
+ * @param {HTMLElement} ablageBereichElement
+ * @param {File} file
+ */
+
+ // FUNKTION updateVorschau
+ function updateVorschau(ablageBereichElement, file) {
+ let vorschauElement = ablageBereichElement.querySelector(".ablageBereich_vorschau");
+
+ //Erstes Mal-> info entfernen
+ if (ablageBereichElement.querySelector(".ablageBereich_info")) {
+ ablageBereichElement.querySelector(".ablageBereich_info").remove();
+ }
+
+ // Erstes Mal-> vorschauElement kreiren, wenn nicht vorhanden
+ if (!vorschauElement) {
+ vorschauElement = document.createElement("div");
+ vorschauElement.classList.add("ablageBereich_vorschau");
+ ablageBereichElement.appendChild(vorschauElement);
+ }
+
+ vorschauElement.dataset.label = file.name;
+
+ /*
+ //ANZEIGEN Vorschau wenn Bild Dokumente
+ if (file.type.startsWith("image/")) {
+ const reader = new FileReader();
+
+ reader.readAsDataURL(file);
+ reader.onload = () => {
+ vorschauElement.style.backgroundImage = `url('${reader.result}')`;
+ };
+ } else {
+ vorschauElement.style.backgroundImage = null;
+ }
+ */
+
+ }// ENDE FUNKTION updateVorschau
+
+
+
+
+
+//FUNKTION hochladen()
+
+function hochladen(){
+
+ // ABSPEICHERN Variabeln Inputs
+//let dokumentInput = document.querySelector("#ablageBereich_input");
+
+let kursInput = document.querySelector("#kurs_input").value;
+let standortInput = document.querySelector("#standort_input").value;
+
+//console.log(dokumentInput);
+console.log(kursInput);
+console.log(standortInput);
+
+//ERSTELLEN new FormData
+let formData = new FormData();
+
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+//formData.append("dokument", dokumentInput.files[0]);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("kurs", kursInput);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("standort", standortInput);
+
+
+
+// ABSENDEN FormData object an den Server
+fetch("https://450731-3.web.fhgr.ch/php/upload.php", {
+ method: "POST",
+ body: formData
+})
+
+.then((response) => {
+
+ return response.text(); //Form angeben in der Antwort erhalten wollen
+
+})
+
+.then((data) => {
+ console.log(data)
+
+ document.querySelector('#nachricht').innerHTML = data;
+
+})
+
+}; //ENDE FUNKTION hochladen()
\ No newline at end of file
diff --git a/js/upload.js b/js/upload.js
new file mode 100644
index 0000000..3fb3f1b
--- /dev/null
+++ b/js/upload.js
@@ -0,0 +1,299 @@
+let dokumentName;
+let token = localStorage.getItem('token');
+
+//ERSTELLEN von Drag&Drop auf ablageBereich_input
+dragDrop();
+
+
+//FUNKTION dragDrop
+ function dragDrop(){
+
+
+ //kopiert von https://dcode.domenade.com/tutorials/simple-drag-and-drop-file-upload-html-css-javascript
+ document.querySelectorAll("#ablageBereich_input").forEach((inputElement) => {
+ const ablageBereichElement = inputElement.closest(".ablageBereich");
+
+ ablageBereichElement.addEventListener("click", (e) => {
+ inputElement.click();
+ });
+
+ inputElement.addEventListener("change", (e) => {
+ if (inputElement.files.length) {
+ updateVorschau(ablageBereichElement, inputElement.files[0]);
+ }
+ });
+
+ ablageBereichElement.addEventListener("dragover", (e) => {
+ e.preventDefault();
+ ablageBereichElement.classList.add("ablageBereich--over");
+ });
+
+ ["dragleave", "dragend"].forEach((type) => {
+ ablageBereichElement.addEventListener(type, (e) => {
+ ablageBereichElement.classList.remove("ablageBereich--over");
+ });
+ });
+
+ ablageBereichElement.addEventListener("drop", (e) => {
+ e.preventDefault();
+
+ if (e.dataTransfer.files.length) {
+ inputElement.files = e.dataTransfer.files;
+ updateVorschau(ablageBereichElement, e.dataTransfer.files[0]);
+ }
+
+ ablageBereichElement.classList.remove("ablageBereich--over");
+ });
+ });
+
+ /**
+ * Update der Vorschau auf ein ablageBereichElement.
+ *
+ * @param {HTMLElement} ablageBereichElement
+ * @param {File} file
+ */
+
+ // FUNKTION updateVorschau
+ function updateVorschau(ablageBereichElement, file) {
+ let vorschauElement = ablageBereichElement.querySelector(".ablageBereich_vorschau");
+
+ //Erstes Mal-> info entfernen
+ if (ablageBereichElement.querySelector(".ablageBereich_info")) {
+ ablageBereichElement.querySelector(".ablageBereich_info").remove();
+ }
+
+ // Erstes Mal-> vorschauElement kreiren, wenn nicht vorhanden
+ if (!vorschauElement) {
+ vorschauElement = document.createElement("div");
+ vorschauElement.classList.add("ablageBereich_vorschau");
+ ablageBereichElement.appendChild(vorschauElement);
+ }
+
+ vorschauElement.dataset.label = file.name;
+
+ dokumentName = file.name;
+
+
+
+ /*
+ //ANZEIGEN Vorschau wenn Bild Dokumente
+ if (file.type.startsWith("image/")) {
+ const reader = new FileReader();
+
+ reader.readAsDataURL(file);
+ reader.onload = () => {
+ vorschauElement.style.backgroundImage = `url('${reader.result}')`;
+ };
+ } else {
+ vorschauElement.style.backgroundImage = null;
+ }
+ */
+
+ }// ENDE FUNKTION updateVorschau
+
+
+ };//ENDE FUNKTION dragDrop
+
+
+//holeStandorte();
+holeKurse();
+
+
+/*
+//FUNKTION holeStandorte
+function holeStandorte(){
+
+//ERSTELLEN formData Objekt
+let formData = new FormData();
+
+fetch("https://450731-3.web.fhgr.ch/php/holeStandorte.php",
+ {
+ body: formData,
+ method: "post",
+
+ })
+
+ .then((res) => {
+
+ return res.json();
+
+ })
+ .then((data) => {
+
+ console.log(data);
+
+ standorteAnzeigen(data);
+
+
+ })
+
+
+} //ENDE FUNKTION holeStandorte()
+
+
+
+//FUNKTION standorteAnzeigen()
+function standorteAnzeigen(data){
+ console.log("standorteAnzeigen")
+
+
+ let standortInput = document.querySelector("#standort_input");
+
+ //LOESCHEN Standorte
+ standortInput.innerHTML = "";
+
+ //forEach-Loop
+ data.forEach(standort => {
+
+ let standortInputOption = document.createElement('option');
+
+ console.log(standortInputOption);
+
+ standortInputOption.innerHTML = standort.standort;
+
+
+ standortInput.appendChild(standortInputOption);
+
+ });//ENDE forEach-Loop
+
+};//ENDE FUNKTION standorteAnzeigen()
+
+*/
+
+//FUNKTION holeKurse()
+function holeKurse(){
+
+//ERSTELLEN formData Objekt
+let formData = new FormData();
+
+fetch("https://450731-3.web.fhgr.ch/php/holeKurse.php",
+ {
+ body: formData,
+ method: "post",
+
+ })
+
+ .then((res) => {
+
+ return res.json();
+
+ })
+ .then((data) => {
+
+ console.log(data);
+
+ kurseAnzeigen(data);
+
+
+ })
+
+
+} //ENDE FUNKTION holeKurse()
+
+
+//FUNKTION kurseAnzeigen()
+function kurseAnzeigen(data){
+
+ console.log("kurseAnzeigen")
+
+
+ let kursInput = document.querySelector("#kurs_input");
+
+ //LOESCHEN Kurse
+ kursInput.innerHTML = "";
+
+ //forEach-Loop
+ data.forEach(kurs => {
+
+ let kursInputOption = document.createElement('option');
+
+ console.log(kursInputOption);
+
+ kursInputOption.innerHTML = kurs.name;
+
+
+ kursInput.appendChild(kursInputOption);
+
+ });//ENDE forEach-Loop
+
+};//ENDE FUNKTION kurseAnzeigen()
+
+
+
+
+//FUNKTION hochladen()
+function dokumentHochladen(){
+
+
+// ABSPEICHERN Variabeln Inputs
+//let dokumentInput = document.querySelector("#ablageBereich_input");
+let kursInput = document.querySelector("#kurs_input").value;
+let standortInputWert = document.querySelector("#standort_input").value;
+let benutzerID = localStorage.getItem("benutzerID");
+
+
+
+
+//console.log(dokumentInput);
+console.log(benutzerID);
+console.log(dokumentName);
+console.log(kursInput);
+console.log(standortInputWert);
+
+//ERSTELLEN new FormData
+let formData = new FormData();
+
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+//formData.append("dokument", dokumentInput.files[0]);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("kursName", kursInput);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("standort", standortInputWert);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("benutzer_ID", benutzerID);
+
+//HINZUFÜGEN inputELEMENT zu FormData object
+formData.append("dokumentName", dokumentName);
+
+
+
+// ABSENDEN FormData object an den Server
+fetch("https://450731-3.web.fhgr.ch/php/upload.php", {
+ method: "POST",
+ body: formData,
+ headers: {
+
+ 'Authorization': 'Basic ' + btoa(benutzerID + ':' + token),
+
+}
+})
+
+.then((response) => {
+
+ //console.log(formData);
+
+ return response.text(); //Form angeben in der Antwort erhalten wollen
+
+})
+
+.then((data) => {
+ //console.log(data)
+
+ document.querySelector('#nachricht').innerHTML = data;
+
+})
+
+}; //ENDE FUNKTION dokumentHochladen()
+
+//FUNKTOIN logout
+function logout(){
+
+ localStorage.clear();
+ window.location = "/index.html";
+
+
+}
\ No newline at end of file
diff --git a/login.html b/login.html
new file mode 100644
index 0000000..7d7ec82
--- /dev/null
+++ b/login.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ Login
+
+
+
+
+
+
+
Login
+
Schön bist du da! Um etwas hochzuladen, musst du dich zu erst anmelden. Falls du noch kein Konto hast, registriere dich.
+
+
+
E-Mail Adresse
+
+
+
Passwort
+
+
+
anmelden
+
+
+
registrieren
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/php/aktualisiereProfil.php b/php/aktualisiereProfil.php
new file mode 100644
index 0000000..1288641
--- /dev/null
+++ b/php/aktualisiereProfil.php
@@ -0,0 +1,15 @@
+prepare($sql);
+
+$erfolg = $stmt->execute([$name, $email, $handyNr]);
diff --git a/php/autorisieren.php b/php/autorisieren.php
new file mode 100644
index 0000000..26ec0ec
--- /dev/null
+++ b/php/autorisieren.php
@@ -0,0 +1,59 @@
+ (NOW() - INTERVAL 2 hour)";
+
+$stmt = $pdo->prepare($sql);
+
+$erfolg = $stmt->execute();
+
+if ($erfolg) {
+
+ $resultate = $stmt->fetchAll();
+
+ $sitzungsID = $resultate[0]['ID'];
+
+ $anzahlResultate = count($resultate);
+
+ if ($anzahlResultate == 1) {
+
+ //Sitzung verlängern
+ updateSession($sitzungsID);
+
+ } else {
+
+ //schicke eine Antwort ans Script «nicht eingeloggt», direkt an Login seite weiter
+ exit(http_response_code(401));
+
+ }
+
+}
+function updateSession($sitzungsID)
+{
+ require('config.php');
+
+ //setze den Timpstamp auf jetzt, wo die ID eine ID ist
+ $sql = "UPDATE Session SET timestamp = now() WHERE ID=?";
+ $stmt = $pdo->prepare($sql);
+ $stmt->execute([$sitzungsID]);
+}
+
+function loescheSessions()
+{
+ require('config.php');
+
+
+ //Bei Delete braucht es kein Stern für all
+ $sql = "DELETE FROM Session WHERE timestamp < (NOW() - INTERVAL 2 HOUR)";
+
+ $stmt = $pdo->prepare($sql);
+ $stmt->execute();
+
+}
\ No newline at end of file
diff --git a/php/config.php b/php/config.php
new file mode 100644
index 0000000..7c69ebc
--- /dev/null
+++ b/php/config.php
@@ -0,0 +1,9 @@
+exec("set names utf8");
diff --git a/php/holeBenutzer.php b/php/holeBenutzer.php
new file mode 100644
index 0000000..fb85f4e
--- /dev/null
+++ b/php/holeBenutzer.php
@@ -0,0 +1,22 @@
+prepare($sql);
+
+$erfolg = $stmt->execute();
+
+if ($erfolg) {
+
+ $array = $stmt->fetchAll();
+
+ $jsonArray = json_encode($array);
+
+ print_r($jsonArray);
+}
\ No newline at end of file
diff --git a/php/holeKurse.php b/php/holeKurse.php
new file mode 100644
index 0000000..79dddf0
--- /dev/null
+++ b/php/holeKurse.php
@@ -0,0 +1,32 @@
+prepare($sql);
+
+$erfolg = $stmt->execute();
+
+if ($erfolg) {
+
+ $array = $stmt->fetchAll();
+
+ $jsonArray = json_encode($array);
+
+ print_r($jsonArray);
+}
+
+
+
diff --git a/php/holeProfildaten.php b/php/holeProfildaten.php
new file mode 100644
index 0000000..8a27714
--- /dev/null
+++ b/php/holeProfildaten.php
@@ -0,0 +1,21 @@
+prepare($sql);
+
+$erfolg = $stmt->execute();
+
+if ($erfolg) {
+
+ $array = $stmt->fetchAll();
+
+ $jsonArray = json_encode($array);
+
+ print_r($jsonArray);
+}
\ No newline at end of file
diff --git a/php/holeStandorte.php b/php/holeStandorte.php
new file mode 100644
index 0000000..7a2c60b
--- /dev/null
+++ b/php/holeStandorte.php
@@ -0,0 +1,32 @@
+prepare($sql);
+
+$erfolg = $stmt->execute();
+
+if ($erfolg) {
+
+ $array = $stmt->fetchAll();
+
+ $jsonArray = json_encode($array);
+
+ print_r($jsonArray);
+}
+
+
+
diff --git a/php/holeUser b/php/holeUser
new file mode 100644
index 0000000..1ba5c04
--- /dev/null
+++ b/php/holeUser
@@ -0,0 +1,22 @@
+prepare($sql);
+
+$erfolg = $stmt->execute();
+
+if ($erfolg) {
+
+ $array = $stmt->fetchAll();
+
+ $jsonArray = json_encode($array);
+
+ print_r($jsonArray);
+}
\ No newline at end of file
diff --git a/php/holeUser.php b/php/holeUser.php
new file mode 100644
index 0000000..1ba5c04
--- /dev/null
+++ b/php/holeUser.php
@@ -0,0 +1,22 @@
+prepare($sql);
+
+$erfolg = $stmt->execute();
+
+if ($erfolg) {
+
+ $array = $stmt->fetchAll();
+
+ $jsonArray = json_encode($array);
+
+ print_r($jsonArray);
+}
\ No newline at end of file
diff --git a/php/index.php b/php/index.php
new file mode 100644
index 0000000..f520ccd
--- /dev/null
+++ b/php/index.php
@@ -0,0 +1,32 @@
+prepare($sql);
+
+$erfolg = $stmt->execute();
+
+if ($erfolg) {
+
+ $array = $stmt->fetchAll();
+
+ $jsonArray = json_encode($array);
+
+ print_r($jsonArray);
+}
+
+
+
diff --git a/php/loescheProfil.php b/php/loescheProfil.php
new file mode 100644
index 0000000..f34f653
--- /dev/null
+++ b/php/loescheProfil.php
@@ -0,0 +1,63 @@
+prepare($sql);
+$erfolg = $stmt->execute([$benutzerID]);
+
+
+$sql = "DELETE FROM Benutzer WHERE ID = ?";
+$stmt = $pdo->prepare($sql);
+$erfolg = $stmt->execute([$benutzerID]);
+
+
+if ($erfolg) {
+
+ print_r('Erfolgreich gelöscht');
+
+} else {
+
+ print_r($erfolg);
+
+};
+
+// falls erfolg true bzw. 1 ist
+// lösche ebenfalls die Hashtags zur WG
+/*
+if ($erfolg) {
+
+ loescheHashtags($wgID);
+
+} else {
+
+ print_r($erfolg);
+};
+
+
+function loescheHashtags($wgID){
+
+ require('config.php');
+
+ // lösche die alten hashtags
+ $sql = "DELETE FROM wg_hat_hashtag WHERE wg_id = ?";
+ $stmt = $pdo->prepare($sql);
+
+ $erfolg = $stmt->execute([$wgID]);
+
+ if ($erfolg){
+
+ echo 'WG und Hashtags wurden gelöscht.';
+ } else {
+
+ $erfolg;
+
+ }
+
+}
+*/
\ No newline at end of file
diff --git a/php/login.php b/php/login.php
new file mode 100644
index 0000000..8354e8d
--- /dev/null
+++ b/php/login.php
@@ -0,0 +1,119 @@
+prepare($sql);
+
+$erfolg = $stmt->execute();
+
+//Wenn Statement erfolgreich…
+if ($erfolg) {
+
+ //gehe in Datenbank und hole alle Resultate
+ $array = $stmt->fetchAll();
+
+ //Hier werden die Resultate gezählt, welche übereinstimmen. Das ist eine Php Funktion
+ $anzahlResultate = count($array);
+
+
+ if ($anzahlResultate == 1){
+
+ //Wenn Resultat == 1, nimm was in der Tabelle bei Passwort steht und gebe den Wert an die Variabel Passwort
+ $dbPasswort = $array[0]['passwort'];
+ //Das gleiche mit der ID
+ $benutzerID = $array[0]['ID'];
+ //diese Parameter geben wir der Funktion prüfe PAsswort weiter
+ pruefepasswort($passwort, $dbPasswort, $benutzerID);
+
+
+ } else {
+ //Fehlermeldung wenn Email nicht korrekt. ID und Token als 0, weil undefind = nicht eingeloggt. Wird im localstorage als 0/0 ausgegeben.
+ sendeAntwort('Diese E-Mail existiert nicht.', 0, 0);
+
+
+
+ }
+
+
+}
+
+function pruefepasswort($benutzerPasswort, $dbPasswort, $benutzerID){
+
+ //Püft, ob das Benutzer Passwort mit dem Datenbankpasswort überein stimmt. Prüfen öb beide den gleichen Hash zurück geben.
+ if (password_verify($benutzerPasswort, $dbPasswort)) {
+
+ //erstelle einen Token, wenn Email und Passwort korrekt. BenutzerID schicken wir gleich weiter an die Funktion erstelleToken
+ erstelleToken($benutzerID);
+
+
+
+ } else {
+
+ sendeAntwort('Ungültiges Passwort', 0, 0);
+
+
+ }
+
+}
+
+//Eintrag in Sessiontabelle
+function erstelleToken($benutzerID){
+
+ require('config.php');
+
+ //Rufe die Funktion generate… mit dem Parameter 42 auf, und speichere den Return in die Variable 'Token', dieser wird in die Tabelle eingefügt.
+
+ $token = generateRandomString(42);
+
+ //Infos werden in die Session Tabelle eingefügt. Passende Benutzer ID und Token Nummer, Timestamp erfolgt automatisch
+ $sql = "INSERT INTO Session (benutzer_ID, token) VALUES (:benutzer_ID, :token)";
+
+ /*pdo=Datenbankverbindung die wir im config definiert haben. bereite dich vor, dieses SQL Statement auszuführen*/
+ $stmt = $pdo->prepare($sql);
+
+ $erfolg = $stmt->execute(array('benutzer_ID' => $benutzerID, 'token' => $token));
+ if ($erfolg) {
+ //wenn alles geklappt hat
+ // print_r('Session erfolgreich erstellt.');
+ sendeAntwort('Session erfolgreich erstellt.', $benutzerID, $token);
+
+ } else {
+ //Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+
+ sendeAntwort('Datenbankfehlerw: ' . $erfolg, 0, 0);
+
+ };
+
+
+}
+
+
+//Funktion zum einem Random String erstellen
+function generateRandomString($length) {
+ //alle Characters, aus den ein Hash generiert werden soll
+ $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
+ $charactersLength = strlen($characters);
+ $randomString = '';
+ for ($i = 0; $i < $length; $i++) {
+ $randomString .= $characters[rand(0, $charactersLength - 1)];
+ }
+ //Return heisst es gibt was zurück, dort wo man es angefragt hat.
+ return $randomString;
+}
+
+function sendeAntwort($nachricht, $benutzerID, $token){
+
+ $antwort = [$nachricht, $benutzerID, $token];
+
+ $antwort = json_encode($antwort);
+
+ print($antwort);
+
+}
diff --git a/php/login_copy1.php b/php/login_copy1.php
new file mode 100644
index 0000000..8354e8d
--- /dev/null
+++ b/php/login_copy1.php
@@ -0,0 +1,119 @@
+prepare($sql);
+
+$erfolg = $stmt->execute();
+
+//Wenn Statement erfolgreich…
+if ($erfolg) {
+
+ //gehe in Datenbank und hole alle Resultate
+ $array = $stmt->fetchAll();
+
+ //Hier werden die Resultate gezählt, welche übereinstimmen. Das ist eine Php Funktion
+ $anzahlResultate = count($array);
+
+
+ if ($anzahlResultate == 1){
+
+ //Wenn Resultat == 1, nimm was in der Tabelle bei Passwort steht und gebe den Wert an die Variabel Passwort
+ $dbPasswort = $array[0]['passwort'];
+ //Das gleiche mit der ID
+ $benutzerID = $array[0]['ID'];
+ //diese Parameter geben wir der Funktion prüfe PAsswort weiter
+ pruefepasswort($passwort, $dbPasswort, $benutzerID);
+
+
+ } else {
+ //Fehlermeldung wenn Email nicht korrekt. ID und Token als 0, weil undefind = nicht eingeloggt. Wird im localstorage als 0/0 ausgegeben.
+ sendeAntwort('Diese E-Mail existiert nicht.', 0, 0);
+
+
+
+ }
+
+
+}
+
+function pruefepasswort($benutzerPasswort, $dbPasswort, $benutzerID){
+
+ //Püft, ob das Benutzer Passwort mit dem Datenbankpasswort überein stimmt. Prüfen öb beide den gleichen Hash zurück geben.
+ if (password_verify($benutzerPasswort, $dbPasswort)) {
+
+ //erstelle einen Token, wenn Email und Passwort korrekt. BenutzerID schicken wir gleich weiter an die Funktion erstelleToken
+ erstelleToken($benutzerID);
+
+
+
+ } else {
+
+ sendeAntwort('Ungültiges Passwort', 0, 0);
+
+
+ }
+
+}
+
+//Eintrag in Sessiontabelle
+function erstelleToken($benutzerID){
+
+ require('config.php');
+
+ //Rufe die Funktion generate… mit dem Parameter 42 auf, und speichere den Return in die Variable 'Token', dieser wird in die Tabelle eingefügt.
+
+ $token = generateRandomString(42);
+
+ //Infos werden in die Session Tabelle eingefügt. Passende Benutzer ID und Token Nummer, Timestamp erfolgt automatisch
+ $sql = "INSERT INTO Session (benutzer_ID, token) VALUES (:benutzer_ID, :token)";
+
+ /*pdo=Datenbankverbindung die wir im config definiert haben. bereite dich vor, dieses SQL Statement auszuführen*/
+ $stmt = $pdo->prepare($sql);
+
+ $erfolg = $stmt->execute(array('benutzer_ID' => $benutzerID, 'token' => $token));
+ if ($erfolg) {
+ //wenn alles geklappt hat
+ // print_r('Session erfolgreich erstellt.');
+ sendeAntwort('Session erfolgreich erstellt.', $benutzerID, $token);
+
+ } else {
+ //Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+
+ sendeAntwort('Datenbankfehlerw: ' . $erfolg, 0, 0);
+
+ };
+
+
+}
+
+
+//Funktion zum einem Random String erstellen
+function generateRandomString($length) {
+ //alle Characters, aus den ein Hash generiert werden soll
+ $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
+ $charactersLength = strlen($characters);
+ $randomString = '';
+ for ($i = 0; $i < $length; $i++) {
+ $randomString .= $characters[rand(0, $charactersLength - 1)];
+ }
+ //Return heisst es gibt was zurück, dort wo man es angefragt hat.
+ return $randomString;
+}
+
+function sendeAntwort($nachricht, $benutzerID, $token){
+
+ $antwort = [$nachricht, $benutzerID, $token];
+
+ $antwort = json_encode($antwort);
+
+ print($antwort);
+
+}
diff --git a/php/registrieren.php b/php/registrieren.php
new file mode 100644
index 0000000..5a7aedd
--- /dev/null
+++ b/php/registrieren.php
@@ -0,0 +1,38 @@
+prepare($sql);
+/*definiert nochmals, was wir ausführen möchten, mit welchen Namen, also Variabel Email greiffen wir auf Email zu,
+Platzhalter ohne Dollarzeichen, Wir definieren Variabeln und nutzen sie im execute
+Wenn alles geklappt hat, wir erfolg = 1 = true */
+$erfolg = $stmt->execute(array('Name' => $benutzername, 'HandyNr' => $handyNr, 'Email' => $email, 'Passwort' => $passwort));
+//Könnte auch schreiben if erfolg==1
+if ($erfolg) {
+
+ print_r('Registrierung erfolgreich.');
+
+} else {
+//Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+};
\ No newline at end of file
diff --git a/php/upload.php b/php/upload.php
new file mode 100644
index 0000000..e1fe017
--- /dev/null
+++ b/php/upload.php
@@ -0,0 +1,23 @@
+prepare($sql);
+$erfolg = $stmt->execute(array('Standort' => $standort, 'KursName' => $kursName,'Benutzer_ID' => $benutzer_ID,'dokumentName' => $dokumentName));
+
+if ($erfolg) {
+ print_r('Upload erfolgreich.');
+} else {
+ print_r($erfolg);
+};
+
diff --git a/php/upload_wip3.php b/php/upload_wip3.php
new file mode 100644
index 0000000..e4aac57
--- /dev/null
+++ b/php/upload_wip3.php
@@ -0,0 +1,198 @@
+prepare($sql);
+$erfolg = $stmt->execute(array('Standort' => $standort, 'KursName' => $kursName,'Benutzer_ID' => $benutzer_ID,'dokumentName' => $dokumentName));
+
+if ($erfolg) {
+ print_r('Registrierung erfolgreich.');
+} else {
+ print_r($erfolg);
+};
+
+
+
+
+//INSERT Variable $standort-----------------------------------------------------------------------------------------------------------------
+// //ABSPEICHERN Variable $standort
+$standort = $_POST['standort'];
+
+ //$standort = "testOrt";
+
+ //EINFUEGEN in Tabelle PDF in Spalte standort Platzhalter :Standort
+ /*$sql = "INSERT INTO PDF (standort) VALUES (:Standort) AND
+ INSERT INTO PDF (kurs_ID) SELECT ID FROM Kurs WHERE name = (:kursName) ";
+*/
+ $sql = "INSERT INTO PDF (standort) VALUES (:Standort)";
+
+ //VORBEREITEN SQL-Statement auszuführen, *pdo=Datenbankverbindung, im config definiert
+ $stmt = $pdo->prepare($sql);
+
+ //AUSFUEHREN PDO-Statement, mit welcher Variabel erfolgt Zugriff auf Platzhalter ohne Dollarzeichen
+ $erfolg = $stmt->execute(array('Standort' => $standort) );
+
+ //$erfolg = $stmt->execute(array('Standort' => $standort) );
+
+ //PRUEFEN ob Zugriff auf DB erfolgreich, Meldung ausgeben
+ //Könnte auch schreiben if erfolg==1
+ if ($erfolg) {
+
+ print_r('Upload erfolgreich.');
+
+ } else {
+ //Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+ };
+
+
+
+//INSERT Variable $kursName-----------------------------------------------------------------------------------------------------------------
+// //ABSPEICHERN Variable $kursName
+$kursName = $_POST['kursName'];
+
+ //$standort = "testOrt";
+
+ //EINFUEGEN in Tabelle PDF in Spalte standort Platzhalter :Standort
+ /*$sql = "INSERT INTO PDF (standort) VALUES (:Standort) AND
+ INSERT INTO PDF (kurs_ID) SELECT ID FROM Kurs WHERE name = (:kursName) ";
+*/
+ $sql = "INSERT INTO PDF (kurs_ID) SELECT ID FROM Kurs WHERE name = (:kursName)";
+
+ //VORBEREITEN SQL-Statement auszuführen, *pdo=Datenbankverbindung, im config definiert
+ $stmt = $pdo->prepare($sql);
+
+ //AUSFUEHREN PDO-Statement, mit welcher Variabel erfolgt Zugriff auf Platzhalter ohne Dollarzeichen
+ $erfolg = $stmt->execute(array('kursName' => $kursName) );
+
+ //$erfolg = $stmt->execute(array('Standort' => $standort) );
+
+ //PRUEFEN ob Zugriff auf DB erfolgreich, Meldung ausgeben
+ //Könnte auch schreiben if erfolg==1
+ if ($erfolg) {
+
+ print_r('Upload erfolgreich.');
+
+ } else {
+ //Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+ };
+
+
+//INSERT Variable $benutzer_ID-----------------------------------------------------------------------------------------------------------------
+// //ABSPEICHERN Variable $benutzer_ID
+$benutzer_ID = $_POST['benutzer_ID'];
+
+ //$standort = "testOrt";
+
+ //EINFUEGEN in Tabelle PDF in Spalte standort Platzhalter :Standort
+ /*$sql = "INSERT INTO PDF (standort) VALUES (:Standort) AND
+ INSERT INTO PDF (kurs_ID) SELECT ID FROM Kurs WHERE name = (:kursName) ";
+*/
+$sql = "INSERT INTO PDF (benutzer_ID) VALUES (:Benutzer_ID)";
+
+ //VORBEREITEN SQL-Statement auszuführen, *pdo=Datenbankverbindung, im config definiert
+ $stmt = $pdo->prepare($sql);
+
+ //AUSFUEHREN PDO-Statement, mit welcher Variabel erfolgt Zugriff auf Platzhalter ohne Dollarzeichen
+ $erfolg = $stmt->execute(array('Benutzer_ID' => $benutzer_ID) );
+
+ //$erfolg = $stmt->execute(array('Standort' => $standort) );
+
+ //PRUEFEN ob Zugriff auf DB erfolgreich, Meldung ausgeben
+ //Könnte auch schreiben if erfolg==1
+ if ($erfolg) {
+
+ print_r('Upload erfolgreich.');
+
+ } else {
+ //Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+ };
+
+
+
+
+
+
+/*
+
+//INSERT Variable $dokumentName-----------------------------------------------------------------------------------------------------------------
+// //ABSPEICHERN Variable $dokumentName
+
+
+
+ //$standort = "testOrt";
+
+ //EINFUEGEN in Tabelle PDF in Spalte standort Platzhalter :Standort
+ /*$sql = "INSERT INTO PDF (standort) VALUES (:Standort) AND
+ INSERT INTO PDF (kurs_ID) SELECT ID FROM Kurs WHERE name = (:kursName) ";
+
+
+*/
+
+$dokumentName = $_POST['dokumentName'];
+
+$sql = "INSERT INTO PDF (dokument) VALUES (:DokumentName)";
+
+ //VORBEREITEN SQL-Statement auszuführen, *pdo=Datenbankverbindung, im config definiert
+ $stmt = $pdo->prepare($sql);
+
+ //AUSFUEHREN PDO-Statement, mit welcher Variabel erfolgt Zugriff auf Platzhalter ohne Dollarzeichen
+ $erfolg = $stmt->execute(array('DokumentName' => $dokumentName) );
+
+ //$erfolg = $stmt->execute(array('Standort' => $standort) );
+
+ //PRUEFEN ob Zugriff auf DB erfolgreich, Meldung ausgeben
+ //Könnte auch schreiben if erfolg==1
+ if ($erfolg) {
+
+ print_r('Upload erfolgreich.');
+
+ } else {
+ //Fehlermeldung, wenn nicht erfolgreich
+ print_r($erfolg);
+ };
+
+
+
+/*
+//SELECT Infos Standort-----------------------------------------------------------------------------------------------------------------
+
+
+//EINFUEGEN in Tabelle PDF in Spalte standort Platzhalter :Standort
+$sql = "SELECT DISTINCT standort FROM PDF";
+
+$stmt = $pdo->prepare($sql);
+
+$erfolg = $stmt->execute();
+
+if ($erfolg) {
+
+ $array = $stmt->fetchAll();
+
+ $jsonArray = json_encode($array);
+
+ print_r($jsonArray);
+}
+
+
+
+*/
\ No newline at end of file
diff --git a/profil.html b/profil.html
new file mode 100644
index 0000000..b121dea
--- /dev/null
+++ b/profil.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+ Profil
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ E-Mail
+
+
+ Handynummer
+
+
+
+
+ Profil aktualisieren
+ Profil löschen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/registrieren.html b/registrieren.html
new file mode 100644
index 0000000..0106137
--- /dev/null
+++ b/registrieren.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ Registrierung
+
+
+
+
+
+
Registrierung
+
willkommen bei ZAEMMP Registriere dich hier!
+
+
Benutzername
+
+
+
Handy Nummer
+
+
+
+
E-Mail Adresse
+
+
+
Passwort
+
+
+
registrieren
+
+
+
anmelden
+
+
+
+
+
+
+
diff --git a/robots.txt b/robots.txt
new file mode 100644
index 0000000..7d329b1
--- /dev/null
+++ b/robots.txt
@@ -0,0 +1 @@
+User-agent: *
diff --git a/standard_index.html b/standard_index.html
new file mode 100644
index 0000000..266094d
--- /dev/null
+++ b/standard_index.html
@@ -0,0 +1,60 @@
+
+
+
+ Welcome!
+
+
+
+
+
+
+
+
+
+
This is the default index page of your website.
+
This file may be deleted or overwritten without any difficulty. This is produced by the file index.html in the web directory.
+
For questions or problems please contact support.
+
+
+
+
+
diff --git a/test.html b/test.html
new file mode 100644
index 0000000..e69de29
diff --git a/upload.html b/upload.html
new file mode 100644
index 0000000..7012636
--- /dev/null
+++ b/upload.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+ zaeMMP
+
+
+
+
+
+
+
+
+
+ Upload
+
+
+ Zusammenfassung
+
+
+ reinziehen oder klicken um auszuwählen
+
+
+
+
+
+
+
+
+ Kurs
+
+ IM
+
+
+
+
+
+
+
+ Studienort
+
+ Bern
+ Zuerich
+ Chur
+
+
+
+
+
+
+
+ Hochladen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file