Compare commits

..

No commits in common. "master_stand_10_05_23" and "master" have entirely different histories.

91 changed files with 6013 additions and 2955 deletions

View File

@ -1,2 +0,0 @@
ErrorDocument 404 http://bib-candle.com/404.html

View File

@ -1,3 +0,0 @@
{
"liveServer.settings.port": 5501
}

View File

@ -1,96 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Abmelden</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberUns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<!--------------------------------------------------------------------->
<div class="mainContentContainer">
<div class="titleContainer">
<h1 id="logOffTitle">Abmelden</h1>
</div>
<div class="mainContent">
<p id="mainText">
Sie sind bereits angemeldet, wollen Sie sich jetzt abmelden?
<br><br>
<div class="buttonContainer">
<a id="backToHomeButton" href="abmelden_erfolgreich.html">Bestätigen</a>
<a id="logInAgainButton" href="meinebuecher.html">Abbrechen</a>
</div>
<br><br><br>
</div>
</div>
<!--------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

139
abmelden.php 100644
View File

@ -0,0 +1,139 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Abmelden</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<?php
session_start();
if(isset($_SESSION['eingeloggt']) && $_SESSION['eingeloggt'] == 1 ){
echo '
<!--------------------------------------------------------------------->
<div class="mainContentContainer">
<div class="titleContainer">
<h1 id="logOffTitle">Abmelden</h1>
</div>
<div class="mainContent">
<p id="mainText">
Sie sind bereits angemeldet, wollen Sie sich jetzt abmelden?
<br><br>
<div class="buttonContainer">
<a id="backToHomeButton" href="abmelden_erfolgreich.php">Bestätigen</a>
<a id="logInAgainButton" href="anmelden_meinebuecher.php">Abbrechen</a>
</div>
<br><br><br>
</div>
</div>
<!--------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>';
}else{
echo '
<html>
<!--------------------------------------------------------------------->
<div class="mainContentContainer">
<div class="titleContainer">
<h1 id="logOffTitle">Abmelden</h1>
</div>
<div class="mainContent">
<p id="mainText">
Sie sind noch nicht angemeldet.
<br><br>
<div class="buttonContainer">
<a id="backToHomeButton" href="index.php">Zurück zur Startseite</a>
</div>
<br><br><br>
</div>
</div>
<!--------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>';
exit();
}
?>

View File

@ -1,96 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberUns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<!--------------------------------------------------------------------->
<div class="mainContentContainer">
<div class="titleContainer">
<h1 id="logOffSuccessfulTitle">Erfolgreich abgemeldet</h1>
</div>
<div class="mainContent">
<p id="mainText">
Sie wurden abgemeldet.
<br><br>
<div class="buttonContainer">
<a id="backToHomeButton" href="index.html">Zur Startseite</a>
<a id="logInAgainButton" href="anmelden_meinebuecher.html">Erneut anmelden</a>
</div>
<br><br><br>
</div>
</div>
<!--------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

View File

@ -0,0 +1,89 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<?php
session_start();
session_unset();
session_destroy();
echo '
<!--------------------------------------------------------------------->
<div class="mainContentContainer">
<div class="titleContainer">
<h1 id="logOffSuccessfulTitle">Erfolgreich abgemeldet</h1>
</div>
<div class="mainContent">
<p id="mainText">
Sie wurden abgemeldet.
<br><br>
<div class="buttonContainer">
<a id="backToHomeButton" href="index.php">Zur Startseite</a>
<a id="logInAgainButton" href="anmelden_meinebuecher.php">Erneut anmelden</a>
</div>
<br><br><br>
</div>
</div>
<!--------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>';
?>

122
anmelden.php 100644
View File

@ -0,0 +1,122 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Anmeldung</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<?php
session_start();
if(isset($_SESSION['eingeloggt']) && $_SESSION['eingeloggt'] == 1 ){
require_once "reservierung.php";
}else{
echo '
<div class="anmeldung">
<h1 class="anmeldung-überschriften" >Anmelden</h1>
<div class="anmeldung-rest">
<div class="anmeldung-text">
<p id="obererText">Über die Webseite werden personenbezogene Daten erhoben und genutzt.
Für Details, beziehen Sie sich bitte auf die Seite <a href="datenschutz.php">Datenschutz</a>.</p>
</div>
<div class="anmeldeInput">
<h2 class="anmeldung-überschriften">Angaben zur Anmeldung</h2>
<hr>
<div>
<form class="anmeldung-überschriften" accept-charset="UTF-8" action="anmeldesystem_warenkorb.php" method="POST">
Karten-ID <span id="question-mark">
<svg width="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256
256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3
52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280
264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5
12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4
0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224
352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"/></svg>
<span id="tooltip">Ihre Karten-ID befindet sich auf ihrem Bibliotheksausweis</span>
</span></br>
<input type="text" name="karten-id" required></br>
Passwort</br>
<input type="password" name="password" required></br>
<input id="anmeldebutton" type="submit" name="submit" value="Anmelden">
</form>
</div>
<div class="anmeldung-ausklappen">
<details>
<summary>Passwort vergessen / Passwort ändern</summary>
<p>Sollten Sie Ihr Passwort vergessen haben oder wollen Sie es ändern,
kommen Sie bitte mit ihrem Bibliotheksausweis zu uns in die Bibliothek</p>
</details>
<details>
<summary>Sie haben noch kein Konto?</summary>
<p><a href="registrierung.php">Jetzt registrieren</a></p>
</details>
</div>
</div>
</div>
</div>
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>';
}
?>

View File

@ -1,123 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Anmeldung</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
</head>
<body>
<script type="text/javascript">
sessionStorage.setItem("clicked-last", "meinebuecher.html")
</script>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="anmeldung">
<h1 class="anmeldung-überschriften" >Anmelden</h1>
<div class="anmeldung-rest">
<div class="anmeldung-text">
<p id="obererText">Über die Webseite werden personenbezogene Daten erhoben und genutzt.
Für Details, beziehen Sie sich bitte auf die Seite <a href="datenschutz.html">Datenschutz</a>.</p>
</div>
<div class="anmeldeInput">
<h2 class="anmeldung-überschriften">Angaben zur Anmeldung</h2>
<hr style=" ">
<div>
<form class="anmeldung-überschriften" action="meinebuecher.html">
Karten-ID <span id="question-mark">
<svg width="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256
256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3
52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280
264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5
12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4
0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224
352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"/></svg>
<span id="tooltip">Ihre Karten-ID befindet sich auf ihrem Bibliotheksausweis</span>
</span></br>
<input type="text" name="karten-id" required></br>
Passwort</br>
<input type="password" name="password" required></br>
<input id="anmeldebutton" type="submit" name="submit" value="Anmelden">
</form>
</div>
<div class="anmeldung-ausklappen">
<details>
<summary>Passwort vergessen / Passwort ändern</summary>
<p>Sollten Sie Ihr Passwort vergessen haben oder wollen Sie es ändern,
kommen Sie bitte mit ihrem Bibliotheksausweis zu uns in die Bibliothek</p>
</details>
<details>
<summary>Sie haben noch kein Konto?</summary>
<p><a href="registrierung.html">Jetzt registrieren</a></p>
</details>
</div>
</div>
</div>
</div>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

View File

@ -0,0 +1,119 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Anmeldung</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<?php
session_start();
if(isset($_SESSION['eingeloggt']) && $_SESSION['eingeloggt'] == 1 ){
require_once "meinebuecher.php";
}else{
echo '
<div class="anmeldung">
<h1 class="anmeldung-überschriften" >Anmelden</h1>
<div class="anmeldung-rest">
<div class="anmeldung-text">
<p id="obererText">Über die Webseite werden personenbezogene Daten erhoben und genutzt.
Für Details, beziehen Sie sich bitte auf die Seite <a href="datenschutz.php">Datenschutz</a>.</p>
</div>
<div class="anmeldeInput">
<h2 class="anmeldung-überschriften">Angaben zur Anmeldung</h2>
<hr>
<div>
<form class="anmeldung-überschriften" accept-charset="UTF-8" action="anmeldesystem_meinebuecher.php" method="POST">
Karten-ID <span id="question-mark">
<svg width="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256
256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3
52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280
264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5
12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4
0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224
352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"/></svg>
<span id="tooltip">Ihre Karten-ID befindet sich auf ihrem Bibliotheksausweis</span>
</span></br>
<input type="text" name="karten-id" required></br>
Passwort</br>
<input type="password" name="password" required></br>
<input id="anmeldebutton" type="submit" name="submit" value="Anmelden">
</form>
</div>
<div class="anmeldung-ausklappen">
<details>
<summary>Passwort vergessen / Passwort ändern</summary>
<p>Sollten Sie Ihr Passwort vergessen haben oder wollen Sie es ändern,
kommen Sie bitte mit ihrem Bibliotheksausweis zu uns in die Bibliothek</p>
</details>
<details>
<summary>Sie haben noch kein Konto?</summary>
<p><a href="registrierung.php">Jetzt registrieren</a></p>
</details>
</div>
</div>
</div>
</div>
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>';
}

View File

@ -1,123 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Anmeldung</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
</head>
<body>
<script type="text/javascript">
sessionStorage.setItem("clicked-last", "warenkorb.html")
</script>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="anmeldung">
<h1 class="anmeldung-überschriften" >Anmelden</h1>
<div class="anmeldung-rest">
<div class="anmeldung-text">
<p id="obererText">Über die Webseite werden personenbezogene Daten erhoben und genutzt.
Für Details, beziehen Sie sich bitte auf die Seite <a href="datenschutz.html">Datenschutz</a>.</p>
</div>
<div class="anmeldeInput">
<h2 class="anmeldung-überschriften">Angaben zur Anmeldung</h2>
<hr style=" ">
<div>
<form class="anmeldung-überschriften" action="warenkorb.html">
Karten-ID <span id="question-mark">
<svg width="20px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256
256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3
52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280
264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5
12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4
0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224
352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"/></svg>
<span id="tooltip">Ihre Karten-ID befindet sich auf ihrem Bibliotheksausweis</span>
</span></br>
<input type="text" name="karten-id" required></br>
Passwort</br>
<input type="password" name="password" required></br>
<input id="anmeldebutton" type="submit" name="submit" value="Anmelden">
</form>
</div>
<div class="anmeldung-ausklappen">
<details>
<summary>Passwort vergessen / Passwort ändern</summary>
<p>Sollten Sie Ihr Passwort vergessen haben oder wollen Sie es ändern,
kommen Sie bitte mit ihrem Bibliotheksausweis zu uns in die Bibliothek</p>
</details>
<details>
<summary>Sie haben noch kein Konto?</summary>
<p><a href="registrierung.html">Jetzt registrieren</a></p>
</details>
</div>
</div>
</div>
</div>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

View File

@ -0,0 +1,46 @@
<?php session_start();
$db_link = mysqli_connect('localhost', 'web_b-3', 'een7Ao6s', 'bibliothek_candle', '3306');
function runSQL($sql){
global $db_link;
$db_res = mysqli_query($db_link, $sql);
if(!$db_res){
header("Location: 404.html");
exit;
}
return $db_res;
}
if(isset($_POST['submit'])){
$kartenid = $_POST['karten-id'];
$passwort = $_POST['password'];
$existiert = runSQL("SELECT COUNT(*) FROM `benutzer` WHERE `KartenID` = '$kartenid' and `Passwort` = '$passwort'");
$row = mysqli_fetch_array($existiert);
$karteexistiert = runSQL("SELECT COUNT(*) FROM `benutzer` WHERE `KartenID` = '$kartenid'");
$zeile = mysqli_fetch_array($karteexistiert);
if($row['COUNT(*)'] > 0){
$_SESSION['eingeloggt'] = 1;
if(!isset($_SESSION['userID'])){
$sql = $db_link->prepare("SELECT benutzer.BenutzerID FROM benutzer WHERE benutzer.KartenID = ?;");
$sql->bind_param("i", $kartenid);
$sql->execute();
$result = $sql->get_result();
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$_SESSION['userID'] = $row['BenutzerID'];
}
}
}
header("Location: meinebuecher.php");
}else if($zeile['COUNT(*)'] > 0){
header("Location: passwort_stimmt_nicht.php");
}else{
header("Location: benutzer_existiert_nicht.php");
}
}else{
header("Location: 404.html");
}
?>

View File

@ -0,0 +1,47 @@
<?php session_start();
$db_link = mysqli_connect('localhost', 'web_b-3', 'een7Ao6s', 'bibliothek_candle', '3306');
function runSQL($sql){
global $db_link;
$db_res = mysqli_query($db_link, $sql);
if(!$db_res){
header("Location: 404.html");
exit;
}
return $db_res;
}
if(isset($_POST['submit'])){
$kartenid = $_POST['karten-id'];
$passwort = $_POST['password'];
$existiert = runSQL("SELECT COUNT(*) FROM `benutzer` WHERE `KartenID` = '$kartenid' and `Passwort` = '$passwort'");
$row = mysqli_fetch_array($existiert);
$karteexistiert = runSQL("SELECT COUNT(*) FROM `benutzer` WHERE `KartenID` = '$kartenid'");
$zeile = mysqli_fetch_array($karteexistiert);
if($row['COUNT(*)'] > 0){
$_SESSION['eingeloggt'] = 1;
if(!isset($_SESSION['userID'])){
$sql = $db_link->prepare("SELECT benutzer.BenutzerID FROM benutzer WHERE benutzer.KartenID = ?;");
$sql->bind_param("i", $kartenid);
$sql->execute();
$result = $sql->get_result();
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$_SESSION['userID'] = $row['BenutzerID'];
}
}
}
header("Location: reservierung.php");
}else if($zeile['COUNT(*)'] > 0){
header("Location: passwort_stimmt_nicht.php");
}else{
header("Location: benutzer_existiert_nicht.php");
}
}else{
header("Location: 404.html");
}
?>

View File

@ -0,0 +1,82 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Erfolgreich Registriert</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<!--------------------------------------------------------------------->
<div class="mainContentContainer">
<div class="titleContainer">
<h1 id="registeredTitle">Fehler</h1>
</div>
<div class="mainContent">
<p id="textFirstHalf">
Sie haben sich noch nicht registriert!
</p>
<a type="button" id="loginNowButton" href="registrierung.php"> Jetzt Registrieren </a>
<br><br><br>
</div>
</div>
<!--------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -0,0 +1,81 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Erfolgreich Registriert</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<!--------------------------------------------------------------------->
<div class="mainContentContainer">
<div class="titleContainer">
<h1 id="registeredTitle">Fehler</h1>
</div>
<div class="mainContent">
<p id="textFirstHalf">
Benutzer schon vorhanden!
</p>
<a type="button" id="loginNowButton" href="anmelden.php"> Anmelden </a>
<br><br><br>
</div>
</div>
<!--------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

View File

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

View File

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 196 KiB

View File

Before

Width:  |  Height:  |  Size: 667 KiB

After

Width:  |  Height:  |  Size: 667 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

96
buch_details.css 100644
View File

@ -0,0 +1,96 @@
/*TODO: Hintergrundfarben entfernen*/
.hauptcontainer {
/*Einzelne Elemente untereinander anzeigen.*/
flex-direction: column;
}
/*Container wird mit Daten aus der Datenbank gefüllt.*/
#bookInfo_container {
padding-left: 45px;
padding-right: 50px;
padding-bottom: 50px;
padding-top: 30px;
}
.book_container {
/*background-color: blueviolet;*/
display: flex;
/*Einzelne Elemente nebeneinander anzeigen.*/
flex-direction: row;
}
.bookCover_container {
/*background-color: blue;*/
display: flex;
/*Verbietet dem Container, seine Standardgröße (px) zu ändern.*/
flex: 0 0 150px;
align-items: center;
height: auto;
}
.bookCover {
/*Bild passt sich seinem Container an.*/
max-width:100%;
max-height:100%;
}
.bookDetails_container {
/* background-color: aquamarine; */
width: 100%;
display: flex;
flex-direction: column;
padding-left: 25px;
padding-right: 25px;
}
.bookTitle {
margin-bottom: 10px;
font-weight: 400;
}
.bookDetails {
margin-bottom: 10px;
}
.available_container {
width: fit-content;
/*Hintergrundfarbe wird an Inhalt angepasst.*/
background-color: #70AD47;
/*background-color: #F34343;*/
/*Element immer an der unteren Seite des Containers platzieren.*/
margin-top: auto;
}
.available {
color: white;
margin: 10px 25px;
}
.shoppingCart_container {
/* background-color: chartreuse; */
margin-left: auto;
margin-top: auto;
flex: 0 0 40px;
}
.shoppingCart {
background-image: url('pictures/shopping_cart.png');
width: 40px;
height: 40px;
background-size: contain;
background-repeat: no-repeat;
}
.shoppingCart:hover {
background-image: url('pictures/shopping_cart_hover.png');
cursor: pointer;
}
.content_container, .bookMoreDetails_container {
margin-top: 25px;
}
.bookContent_heading, .bookDetails_heading {
font-weight: 400;
}

243
buch_details.php 100644
View File

@ -0,0 +1,243 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="buch_details.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Details</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<!------------------------------------------------------------------------->
<div class="hauptcontainer">
<?php
$servername = "localhost";
$username = "web_b-3";
$password = "een7Ao6s";
$dbname = "bibliothek_candle";
$connection =
mysqli_connect($servername, $username, $password, $dbname);
if (!$connection) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
/* SQL-Befehl vorbereiten */
$sql = $connection->prepare("SELECT b.BuchID, b.Titel,
b.Erscheinungsjahr, b.Bild, b.Verlag,
GROUP_CONCAT(DISTINCT CONCAT(a.VorName, ' ', a.NachName)
SEPARATOR ', ') AS 'Autor',
GROUP_CONCAT(DISTINCT k.Name SEPARATOR ', ') AS 'Kategorie',
b.ISBN, b.Klappentext AS 'Inhalt', sp.Bezeichnung AS 'Sprache',
GROUP_CONCAT(DISTINCT st.Text SEPARATOR ', ') AS 'Stichwort',
IF(b.Anzahl!=0, 'Verfügbar', CONCAT('Verfügbar ab: ',
(SELECT DATE_FORMAT(DATE_ADD(ab.Enddatum, INTERVAL 1 DAY)
,'%d.%m.%Y') FROM `ausgeliehenes_buch` AS ab
WHERE ab.BuchID = b.BuchID
ORDER BY ab.Reserviert ASC, ab.Enddatum ASC LIMIT 1)))
AS 'Verfügbarkeit' FROM `buch` AS b
INNER JOIN `buch_verfasst_von_autor` AS bvva
ON b.BuchID = bvva.BuchID
INNER JOIN `autor` AS a ON bvva.AutorNr = a.AutorNr
INNER JOIN `buch_hat_kategorie` AS bhk ON bhk.BuchID = b.BuchID
INNER JOIN `kategorie` AS k ON k.KategorieID = bhk.KategorieID
INNER JOIN `sprache` AS sp ON sp.SprachenID = b.SprachenID
INNER JOIN `buch_hat_stichwort` AS bhs ON bhs.BuchID = b.BuchID
INNER JOIN `stichwort` AS st ON st.StichwortID = bhs.StichwortID
WHERE b.BuchID = ?
GROUP BY b.BuchID;");
// Parameter binden
$sql->bind_param("i", $ID);
// Übergebene ID des angeklickten Container speichern
$containerID = $_GET['bookID'];
// Buch ID abtrennen
$ID = str_replace('book_container', '', $containerID);
// SQL-Befehl ausführen
$sql->execute();
// Ergebnis speichern
$result = $sql->get_result();
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$bookID = $row['BuchID'];
$bookCover = $row['Bild'];
$bookTitle = $row['Titel'];
$bookPublishingYear = $row['Erscheinungsjahr'];
$bookPublisher = $row['Verlag'];
$bookAuthor = $row['Autor'];
$bookCategory = $row['Kategorie'];
$bookAvailability = $row['Verfügbarkeit'];
$bookContent = $row['Inhalt'];
$bookISBN = $row['ISBN'];
$bookLanguage = $row['Sprache'];
$bookKeywords = $row['Stichwort'];
/* TODO: OnClick auslagern. */
echo
"<div id='bookInfo_container'>
<div class='book_container'>
<div class='bookCover_container'>
<img class='bookCover'
src='book_covers/$bookCover'
alt='Kein Bild vorhanden'>
</div>
<div class='bookDetails_container'>
<h2 class='bookTitle'>$bookTitle</h2>
<div class='bookDetails'>
<p class='author'>Verfasser: $bookAuthor</p>
<p class='publishing_year'>Erscheinungsjahr:
$bookPublishingYear</p>
<p class='publisher'>Verlag:
$bookPublisher</p>
<p class='category'>Kategorie:
$bookCategory</p>
</div>
<div class='available_container'>
<p id='available_$bookID' class='available'>
$bookAvailability</p>
<!--TODO: Auslagern - Geht nicht - JS was PHP informationen braucht-->
<script type='text/javascript'
type='JavaScript'>
(function() {
var currentElement = document.
getElementById
('available_$bookID');
var parentDiv =
currentElement.parentElement;
if (currentElement.innerHTML.trim()
== 'Verfügbar') {
parentDiv.style.backgroundColor
= '#70AD47';
}
else {
parentDiv.style.backgroundColor
= '#F34343';
}
var newTitle =
'Candle Bibliothek | $bookTitle';
document.title = newTitle;
})();
</script>
</div>
</div>
<!--TODO: OnClick Event auslagern-->
<div class='shoppingCart_container'
id='shoppingCart$bookID'
onclick='addBookToCart(this.id)'>
<div class='shoppingCart'></div>
</div>
</div>
<div class='content_container'>
<h2 class='bookContent_heading'>Inhalt</h2>
<p class='bookContent'>$bookContent</p>
</div>
<div class='bookMoreDetails_container'>
<h2 class='bookDetails_heading'>Details</h2>
<p class='bookISBN'>ISBN: $bookISBN</p>
<p class='bookLanguage'>Sprache: $bookLanguage</p>
<p class='bookKeywords'>Stichwörter:
$bookKeywords</p>
</div>
</div>";
}
} else {
echo "Keine Infos vorhanden.";
}
if (!$result) {
die("Ungültige SQL-Abfrage: " . mysqli_connect_error());
}
mysqli_close($connection);
?>
</div>
<!------------------------------------------------------------------------->
<!-- TODO: Auslagern (falls möglich) -->
<script>
function addBookToCart(ID) {
// OnClick Event für open_bookDetails stoppen
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
// ID abtrennen
ID = ID.replace('shoppingCart', '');
var request = new XMLHttpRequest();
request.open('POST',
'http://141.19.142.11/warenkorb_funktionen.php', true);
// TODO: Handler erstellen
request.onload = function() {
console.log(this.responseText);
}
request.setRequestHeader('Content-type',
'application/x-www-form-urlencoded');
request.send(`function=addBookToCart&id=${ID}`);
}
</script>
<!------------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big,
it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -1,146 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Bücher</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="containerofbuecher">
<p id="büchertitel">Bücher</p>
<!--First Item-->
<div id="firstItem" class="items" >
<a href="percy.html"><img src="pictures/percy_jackson_diebe_im_olymp.jpg" width="125" height="200"/></a>
<h3 class="headerinItem">
<a href="percy.html">Percy Jackson: Diebe im Olymp</a>
</h3>
<p class="discinItem">Verfasser: Rick Riordan <br>
Erscheinungsjahr: 2010 <br>
Verlag: Carlsen <br>
Kategorie: Fantasy
</p>
<a class="greenbutton" href="percy.html">Verfügbar</a>
<a class="binPicture" href=""><img src="pictures/shopping_cart.png" width="25" height="25"></a>
<hr style="width: 92%;">
</div>
<!--Second Item-->
<div id="secondItem" class="items">
<a href="dalmatians.html"><img src="pictures/the_hundred_and_one_dalmatians.jpg" width="125" height="200"/></a>
<h3 class="headerinItem">
<a href="dalmatians.html">The Hundred and One Dalmatians</a>
</h3>
<p class="discinItem">Verfasser: Dodie Smith <br>
Erscheinungsjahr: 2015 <br>
Verlag: Farshore <br>
Kategorie: Kinderbuch
</p>
<a class="redbutton" href="dalmatians.html">Verfügbar ab: 30.04.2023</a>
<a class="binPicture" href=""><img src="pictures/shopping_cart.png" width="25" height="25"></a>
<hr style="width:92%;">
</div>
<!--Third Item-->
<div id="thirdItem" class="items">
<a href="penguin.html"><img src="pictures/penguin_highway.jpg" width="125" height="200"/></a>
<h3 class="headerinItem">
<a href="penguin.html">Penguin Highway</a>
</h3>
<p class="discinItem">Verfasser: Tomihiko Morimi <br>
Erscheinungsjahr: 2019 <br>
Verlag: Yen On <br>
Kategorie: Fantasy
</p>
<a class="greenbutton" href="penguin.html">Verfügbar</a>
<a class="binPicture" href=""><img src="pictures/shopping_cart.png" width="25" height="25"></a>
<hr style="width: 92%;">
</div>
<!--fourth Item-->
<div id="fourthItem" class="items" >
<a href="es.html"><img src="pictures/es.jpg" width="125" height="200"/></a>
<h3 class="headerinItem">
<a href="es.html">Es</a>
</h3>
<p class="discinItem">Verfasser: Stephen King <br>
Erscheinungsjahr: 2011 <br>
Verlag: Heyne <br>
Kategorie: Horror
</p>
<a class="redbutton" href="es.html" >Verfügbar ab: 10.05.2023</a>
<a class="binPicture" href=""><img src="pictures/shopping_cart.png" width="25" height="25"></a>
</div>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<!--Burger-->
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

222
buecher.php 100644
View File

@ -0,0 +1,222 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="suchergebnisse.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Bücher</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<div class="hauptcontainer">
<h1 id="searchResult_heading">Bücher</h1>
<div id="searchResult_container">
<?php
$sql = '';
// SQL-Befehl zusammenstellen
$sql = "SELECT b.BuchID, b.Titel, b.Erscheinungsjahr, b.Bild,
b.Verlag,
GROUP_CONCAT(DISTINCT CONCAT(a.VorName, ' ', a.NachName)
SEPARATOR ', ') AS 'Autor',
GROUP_CONCAT(DISTINCT k.Name SEPARATOR ', ') AS 'Kategorie',
b.ISBN, b.Klappentext AS 'Inhalt', sp.Bezeichnung AS 'Sprache',
GROUP_CONCAT(DISTINCT st.Text SEPARATOR ', ') AS 'Stichwort',
IF(b.Anzahl!=0, 'Verfügbar', CONCAT('Verfügbar ab: ',
(SELECT DATE_FORMAT(DATE_ADD(ab.Enddatum, INTERVAL 1 DAY)
,'%d.%m.%Y') FROM `ausgeliehenes_buch` AS ab
WHERE ab.BuchID = b.BuchID
ORDER BY ab.Reserviert ASC, ab.Enddatum ASC LIMIT 1)))
AS 'Verfügbarkeit' FROM `buch` AS b
INNER JOIN `buch_verfasst_von_autor` AS bvva
ON b.BuchID = bvva.BuchID
INNER JOIN `autor` AS a ON bvva.AutorNr = a.AutorNr
INNER JOIN `buch_hat_kategorie` AS bhk ON bhk.BuchID = b.BuchID
INNER JOIN `kategorie` AS k ON k.KategorieID = bhk.KategorieID
INNER JOIN `sprache` AS sp ON sp.SprachenID = b.SprachenID
INNER JOIN `buch_hat_stichwort` AS bhs ON bhs.BuchID = b.BuchID
INNER JOIN `stichwort` AS st ON st.StichwortID = bhs.StichwortID
GROUP BY b.BuchID
;";
$servername = "localhost";
$username = "web_b-3";
$password = "een7Ao6s";
$dbname = "bibliothek_candle";
$connection =
mysqli_connect($servername, $username, $password, $dbname);
if (!$connection) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
$result = mysqli_query($connection, $sql);
$counter = 0;
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$bookID = $row['BuchID'];
$bookCover = $row['Bild'];
$bookTitle = $row['Titel'];
$bookPublishingYear = $row['Erscheinungsjahr'];
$bookPublisher = $row['Verlag'];
$bookAuthor = $row['Autor'];
$bookCategory = $row['Kategorie'];
$bookAvailability = $row['Verfügbarkeit'];
if ($counter != 0) {
echo "<div class='divider'></div>";
}
// TODO: OnClick auslagern.
echo "<div id='book_container$bookID' class='book_container'
onclick='open_bookDetails(this.id)'>
<div class='bookCover_container'>
<img class='bookCover'
src='book_covers/$bookCover'
alt='Kein Bild vorhanden'>
</div>
<div class='bookDetails_container'>
<h2 class='bookTitle'>$bookTitle</h2>
<div class='bookDetails'>
<p class='author'>Verfasser: $bookAuthor</p>
<p class='publishing_year'>
Erscheinungsjahr: $bookPublishingYear</p>
<p class='publisher'>
Verlag: $bookPublisher</p>
<p class='category'>
Kategorie: $bookCategory</p>
</div>
<div class='available_container'>
<p id='available_$bookID' class='available'>
$bookAvailability</p>
<!--TODO: Auslagern-->
<script type='text/javascript'
type='JavaScript'>
(function() {
var currentElement = document.
getElementById('available_$bookID');
var parentDiv =
currentElement.parentElement;
if (currentElement.innerHTML.trim()
== 'Verfügbar') {
parentDiv.style.backgroundColor
= '#70AD47';
}
else {
parentDiv.style.backgroundColor
= '#F34343';
}
})();
</script>
</div>
</div>
<!--TODO: OnClick Event auslagern-->
<div class='shoppingCart_container'
id='shoppingCart$bookID'
onclick='addBookToCart(this.id)'>
<div class='shoppingCart'></div>
</div>
</div>";
$counter++;
}
} else {
echo "Keine Ergebnisse.";
}
if (!$result) {
die("Ungültige SQL-Abfrage: " . mysqli_connect_error());
}
mysqli_close($connection);
?>
</div>
</div>
<script>
function open_bookDetails(ID) {
var data = new URLSearchParams();
data.append("bookID", ID);
var url = "http://141.19.142.11/buch_details.php?" +
data.toString();
location.href = url;
}
function addBookToCart(ID) {
// OnClick Event für open_bookDetails stoppen
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
// ID abtrennen
ID = ID.replace('shoppingCart', '');
var request = new XMLHttpRequest();
request.open('POST',
'http://141.19.142.11/warenkorb_funktionen.php', true);
// TODO: Handler erstellen
request.onload = function() {
console.log(this.responseText);
}
request.setRequestHeader('Content-type',
'application/x-www-form-urlencoded');
request.send(`function=addBookToCart&id=${ID}`);
}
</script>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<script src="resize.js"></script>
<!--Burger-->
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -24,6 +24,14 @@ function openNav() {
opacity: 1;
}
#erweitertesuche{
position: fixed;
right: 450px;
top: 13px;
opacity: 1;
pointer-events: auto;
}
#nav-toggle {
opacity: 1;
pointer-events: auto;
@ -39,7 +47,7 @@ function openNav() {
.suchleiste{
position: fixed;
right: 280px;
right: 233px;
top: 0px;
}
#buttonID{

View File

@ -1,100 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | The Hundred and One Dalmatians</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="haupt">
<!--Second Item-->
<div id="secondItem" class="items" >
<img src="pictures/the_hundred_and_one_dalmatians.jpg" width="125" height="200"/>
<h3 class="headerinItem">
The Hundred and One Dalmatians
</h3>
<p class="discinItem">Verfasser: Dodie Smith <br>
Erscheinungsjahr: 2015 <br>
Verlag: Farshore <br>
Kategorie: Kinderbuch
</p>
<a class="redbutton" href="">Verfügbar ab: 03.04.2023</a>
<img id="shoppingwagen" src="pictures/shopping_cart.png" alt="shoppingwagen" href=""></a>
<p class="percypar">
<strong style="font-size: 25px;">Inhalt</strong> <br>
When Missis and Pongo's darling Dalmatian puppies are stolen, they know just who to suspect... the evil Cruella de Vil! She's enough to
scare the spots off a pup, and she would love nothing more than to turn them into a spotty fur coat! <br><br>
With the help of some fearless furry friends, the parents set off on a brave rescue attempt. But can the Dalmatian parents rescue their precious pups in time?
<br><br>
<strong style="font-size: 25px;">Details</strong> <br>
ISBN: 978-1-4052-7840-9 <br>
Sprache: Englisch <br>
Stichwörter: Dalmatiner, Hunde, England, Welpen
</p>
</div>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

View File

@ -1,96 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Datenschutz</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="homepage">
<img src="pictures/sidecandle.png" id="sidecandle" alt="sidecandle">
<p class="p2">
<span id="titlebraun"><strong> Datenschutz </strong></span>
<br><br>
<strong>Wir nehmen Datenschutz ernst</strong> <br>
Der Schutz Ihrer Privatsphäre bei der Verarbeitung persönlicher Daten ist für uns ein wichtiges Anliegen. Wenn Sie unsere Webseite besuchen, speichern unsere Webserver standardmäßig die IP Ihres Internet Service Provider, die Webseite, von der aus Sie uns besuchen, die Webseiten, die Sie bei uns besuchen sowie das Datum und die Dauer des Besuches. Diese Informationen sind für die technische Übertragung der Webseiten und den sicheren Serverbetrieb zwingend erforderlich. Eine personalisierte Auswertung dieser Daten erfolgt nicht.
<br><strong>Personenbezogene Daten</strong> <br>
Personenbezogene Daten sind Daten über Ihre Person. Diese beinhalten Ihren Namen und Ihre Email Adresse. Sie müssen auch keine personenbezogenen Daten preisgeben um unsere Internetseite besuchen zu können. <br>
In einigen Fällen benötigen wir Ihren Namen und Adresse sowie weitere Informationen um Ihnen die gewünschte Dienstleistung anbieten zu können. Wenn Sie einen unserer Services nutzen, sammeln wir in der Regel nur die Daten die notwendig sind um Ihnen unseren Service bieten zu können. Möglicherweise fragen wir Sie nach weiteren Informationen, die aber freiwilliger Natur sind. Wann immer wir personenbezogene Daten verarbeiten, tun wir dies um Ihnen unseren Service anbieten zu können oder um unsere kommerziellen Ziele zu verfolgen.
<br><strong>Automatisch gespeicherte nicht personenbezogene Daten</strong>
<br>Wenn Sie unsere Internetseiten besuchen, speichern wir aus administrativen und technischen Gründen bestimmte Informationen. Diese sind: Typ und Version des verwendeten Browsers, Datum und Uhrzeit des Zugriffs, sowie die IP Adresse.
Diese Daten werden anonymisiert und lediglich für statistische Zwecke bzw. dafür verwendet, unsere Internet- und Onlinedienste zu verbessern.
<br>Diese anonymisierten Daten werden getrennt von personenbezogenen Daten auf sicheren Systemen gespeichert und können keinen individuellen Personen zugeordnet werden. Das bedeutet, dass Ihre personenbezogenen Daten jederzeit geschützt bleiben.
<br><strong>Cookies</strong> <br>Wenn Sie unsere Internetseiten besuchen speichern wir möglicherweise Informationen auf Ihrem Computer in Form von Cookies. Cookies sind kleine Dateien die von einem Internetserver an Ihren Browser übertragen und auf dessen Festplatte gespeichert werden. Die Rechtsgrundlage für die Verwendung von Cookies stellt dabei Art. 6 Abs. 1 lit f DSGVO dar.
Lediglich die Internet Protokoll Adresse wird hierbei gespeichert keine sonstigen personenbezogenen Daten. Diese Information die in den Cookies gespeichert wird erlaubt es, Sie bei dem nächsten Besuch auf unserer Internetseite automatisch wiederzuerkennen, wodurch Ihnen die Nutzung erleichtert wird.
<br>Natürlich können Sie unsere Internetseiten auch besuchen ohne Cookies zu akzeptieren. Wenn Sie nicht möchten, dass Ihr Computer beim nächsten Besuch wiedererkannt wird können Sie die Verwendung von Cookies auch ablehnen indem Sie die Einstellungen in Ihrem Browser auf „Cookies ablehnen“ ändern. Die jeweilige Vorgehensweise finden Sie in der Bedienungsanleitung Ihres jeweiligen Browsers. Wenn Sie die Verwendung von Cookies ablehnen, kann es jedoch zu Einschränkungen in der Nutzung mancher Bereiche unserer Internetseiten kommen.
Rechtsgrundlage für den Einsatz der Cookies ist unser berechtigtes Interesse gem. Art. 6 Abs. 1 lit. f DSGVO.
<br><strong>Sicherheit</strong><br>Wir haben technische und administrative Sicherheitsvorkehrungen getroffen um Ihre personenbezogenen Daten gegen Verlust, Zerstörung, Manipulation und unautorisierten Zugriff zu schützen. All unsere Mitarbeiter sowie für uns tätige Dienstleister sind auf die gültigen Datenschutzgesetze verpflichtet.
<br>Wann immer wir personenbezogene Daten sammeln und verarbeiten werden diese verschlüsselt bevor sie übertragen werden. Das heißt, dass Ihre Daten nicht von Dritten missbraucht werden können. Unsere Sicherheitsvorkehrungen unterliegen dabei einem ständigen Verbesserungsprozess und unsere Datenschutzerklärungen werden ständig überarbeitet. Bitte stellen Sie sicher, dass Ihnen die aktuellste Version vorliegt.
<br> <strong>Bettroffenenrechte</strong> <br>Bitte kontaktieren Sie uns jederzeit, wenn Sie sich informieren möchten welche personenbezogenen Daten wir über Sie speichern bzw. wenn Sie diese berichtigen oder löschen lassen wollen. Desweiteren haben Sie das Recht auf Einschränkung der Verarbeitung (Art. 18 DSGVO), ein Widerspruchsrechts gegen die Verarbeitung (Art. 21 DSGVO) sowie das Recht auf Datenübertragbarkeit (Art. 20 DSGVO).In diesen Fällen wenden Sie sich bitte direkt an uns.
<br><strong>Änderungen dieser Datenschutzerklärung</strong><br>Wir behalten uns das Recht vor, unsere Datenschutzerklärungen zu ändern falls dies aufgrund neuer Technologien notwendig sein sollte. Bitte stellen Sie sicher, dass Ihnen die aktuellste Version vorliegt. Werden an dieser Datenschutzerklärung grundlegende Änderungen vorgenommen, geben wir diese auf unserer Website bekannt.
</p>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

182
datenschutz.php 100644
View File

@ -0,0 +1,182 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="buch_details.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Details</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<!------------------------------------------------------------------------->
<div class="homepage">
<img src="pictures/sidecandle.png" id="sidecandle" alt="sidecandle">
<p class="p2">
<span id="titlebraun"><strong> Datenschutz </strong></span>
<br><br>
<strong>Wir nehmen Datenschutz ernst</strong><br>
Der Schutz Ihrer Privatsphäre bei der Verarbeitung persönlicher
Daten ist für uns ein wichtiges Anliegen.
Wenn Sie unsere Webseite besuchen,
speichern unsere Webserver standardmäßig die IP
Ihres Internet Service Provider, die Webseite,
von der aus Sie uns besuchen, die Webseiten,
die Sie bei uns besuchen sowie das Datum
und die Dauer des Besuches.
Diese Informationen sind für die technische Übertragung der
Webseiten und den sicheren Serverbetrieb zwingend erforderlich.
Eine personalisierte Auswertung dieser Daten erfolgt nicht.
<br><strong>Personenbezogene Daten</strong> <br>
Personenbezogene Daten sind Daten über Ihre Person.
Diese beinhalten Ihren Namen und Ihre Email Adresse.
Sie müssen auch keine personenbezogenen Daten preisgeben
um unsere Internetseite besuchen zu können. <br>
In einigen Fällen benötigen wir Ihren Namen und Adresse
sowie weitere Informationen um Ihnen die gewünschte
Dienstleistung anbieten zu können.
Wenn Sie einen unserer Services nutzen,
sammeln wir in der Regel nur die Daten die notwendig sind
um Ihnen unseren Service bieten zu können.
Möglicherweise fragen wir Sie nach weiteren Informationen,
die aber freiwilliger Natur sind.
Wann immer wir personenbezogene Daten verarbeiten,
tun wir dies um Ihnen unseren Service anbieten zu können
oder um unsere kommerziellen Ziele zu verfolgen.
<br><strong>Automatisch gespeicherte
nicht personenbezogene Daten</strong>
<br>Wenn Sie unsere Internetseiten besuchen,
speichern wir aus administrativen und technischen Gründen
bestimmte Informationen.
Diese sind: Typ und Version des verwendeten Browsers,
Datum und Uhrzeit des Zugriffs, sowie die IP Adresse.
Diese Daten werden anonymisiert und lediglich
für statistische Zwecke bzw. dafür verwendet,
unsere Internet- und Onlinedienste zu verbessern.
<br>Diese anonymisierten Daten werden getrennt von
personenbezogenen Daten auf sicheren Systemen gespeichert
und können keinen individuellen Personen zugeordnet werden.
Das bedeutet,
dass Ihre personenbezogenen Daten jederzeit geschützt bleiben.
<br><strong>Cookies</strong><br>
Wenn Sie unsere Internetseiten besuchen speichern wir
möglicherweise Informationen auf Ihrem Computer
in Form von Cookies.
Cookies sind kleine Dateien die von einem Internetserver
an Ihren Browser übertragen und auf dessen
Festplatte gespeichert werden.
Die Rechtsgrundlage für die Verwendung von Cookies
stellt dabei Art. 6 Abs. 1 lit f DSGVO dar.
Lediglich die Internet Protokoll Adresse wird hierbei
gespeichert keine sonstigen personenbezogenen Daten.
Diese Information die in den Cookies gespeichert wird
erlaubt es,
Sie bei dem nächsten Besuch auf unserer Internetseite
automatisch wiederzuerkennen,
wodurch Ihnen die Nutzung erleichtert wird.
<br>Natürlich können Sie unsere Internetseiten auch besuchen
ohne Cookies zu akzeptieren.
Wenn Sie nicht möchten, dass Ihr Computer beim nächsten Besuch
wiedererkannt wird können Sie die Verwendung von Cookies
auch ablehnen indem Sie die Einstellungen in Ihrem Browser
auf „Cookies ablehnen“ ändern.
Die jeweilige Vorgehensweise finden Sie in
der Bedienungsanleitung Ihres jeweiligen Browsers.
Wenn Sie die Verwendung von Cookies ablehnen,
kann es jedoch zu Einschränkungen in der Nutzung
mancher Bereiche unserer Internetseiten kommen.
Rechtsgrundlage für den Einsatz der Cookies ist
unser berechtigtes Interesse gem. Art. 6 Abs. 1 lit. f DSGVO.
<br><strong>Sicherheit</strong><br>
Wir haben technische und administrative Sicherheitsvorkehrungen
getroffen um Ihre personenbezogenen Daten
gegen Verlust, Zerstörung, Manipulation
und unautorisierten Zugriff zu schützen.
All unsere Mitarbeiter sowie für uns tätige Dienstleister
sind auf die gültigen Datenschutzgesetze verpflichtet.
<br>Wann immer wir personenbezogene Daten sammeln
und verarbeiten werden diese verschlüsselt
bevor sie übertragen werden.
Das heißt,
dass Ihre Daten nicht von Dritten missbraucht werden können.
Unsere Sicherheitsvorkehrungen unterliegen dabei
einem ständigen Verbesserungsprozess und unsere
Datenschutzerklärungen werden ständig überarbeitet.
Bitte stellen Sie sicher,
dass Ihnen die aktuellste Version vorliegt.
<br> <strong>Bettroffenenrechte</strong><br>
Bitte kontaktieren Sie uns jederzeit,
wenn Sie sich informieren möchten welche personenbezogenen
Daten wir über Sie speichern bzw. wenn Sie diese berichtigen
oder löschen lassen wollen.
Desweiteren haben Sie das Recht auf Einschränkung
der Verarbeitung (Art. 18 DSGVO),
ein Widerspruchsrechts gegen die Verarbeitung (Art. 21 DSGVO)
sowie das Recht auf Datenübertragbarkeit (Art. 20 DSGVO).
In diesen Fällen wenden Sie sich bitte direkt an uns.
<br><strong>Änderungen dieser Datenschutzerklärung</strong><br>
Wir behalten uns das Recht vor,
unsere Datenschutzerklärungen zu ändern falls dies aufgrund
neuer Technologien notwendig sein sollte.
Bitte stellen Sie sicher,
dass Ihnen die aktuellste Version vorliegt.
Werden an dieser Datenschutzerklärung grundlegende Änderungen
vorgenommen, geben wir diese auf unserer Website bekannt.
</p>
</div>
<!------------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big,
it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -1,138 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Erweiterte Suche</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="hauptcontainer">
<span id="titelerweitertesuche" > Erweiterte Suche </span> <br><br>
<form action="">
<input type="search" value="Titel" class="buchtitel" list="Titel">
<datalist id="Titel">
<option value="Titel"></option>
</datalist>
<input type="text" class="buchtiteloptions" list="buchtiteloptionen">
<input type="search" value="und" class="und-wort1" list="Und">
<datalist id="Und">
<option value="und"></option>
<option value="oder"></option>
</datalist>
<input type="search" value="Autor" class="autor" list="Autor">
<datalist id="Autor">
<option value="Autor"></option>
</datalist>
<input type="text" class="autoroptions" list="autoroptionen">
<input type="search" value="und" class="und-wort2" list="Und" >
<datalist id="Und">
<option value="und"></option>
<option value="oder"></option>
</datalist>
<input type="search" value="Stichwort" class="stichwort" list="Stichwort">
<datalist id="Stichwort">
<option value="Stichwort"></option>
</datalist>
<input type="text" class="stichwörteroptions" list="stichwörteroptionen">
<span id="weiteresuchkriterien" style> Weitere Suchkriterien</span><br><br></p>
<span class="jahrvon">Jahr von </span>
<input type="date" class="anfangsdatum" name="Buchdatum1">
<span class="bis">bis </span>
<input type="date" class="endsdatum" name="Buchdatum2">
<span class="sprache">Sprache </span>
<input type="search" class="spracheingabe" list="sprachoptionen">
<datalist id="sprachoptionen">
<option value="Deutsch"></option>
<option value="Englisch"></option>
<option value="Arabisch"></option>
<option value="Französisch"></option>
</datalist>
<span class="verfügbarkeit">Verfügbarkeit</span>
<input type="checkbox" class="checkbox" name="status" value="verfügbareBücher">
<span class="kommentar">verfügbare Bücher</span>
<a id="suchen" href="">suchen</a>
<a id="suchfelderleeren" href="">Suchfelder leeren</a>
</form>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

129
erweitertesuche.php 100644
View File

@ -0,0 +1,129 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Erweiterte Suche</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<div class="hauptcontainer">
<span id="titelerweitertesuche" > Erweiterte Suche </span> <br><br>
<form action="suchergebnisse.php" method="get">
<input type="hidden" name="searchType" value="extended">
<select id="dropdown1" name="dropdown1" class="buchtitel">
<option selected="selected">Titel</option>
<option>Autor</option>
<option>Verlag</option>
<option>Stichwort</option>
<option>Kategorie</option>
</select>
<input type="search" name="search1" class="buchtiteloptions">
<select id="and_or" name="and_or1" class="und-wort1">
<option>und</option>
<option>oder</option>
</select>
<select id="dropdown2" name="dropdown2" class="autor">
<option>Titel</option>
<option selected="selected">Autor</option>
<option>Verlag</option>
<option>Stichwort</option>
<option>Kategorie</option>
</select>
<input type="search" name="search2" class="autoroptions">
<select id="and_or" name="and_or2" class="und-wort2">
<option>und</option>
<option>oder</option>
</select>
<select id="dropdown3" name="dropdown3" class="stichwort">
<option>Titel</option>
<option>Autor</option>
<option>Verlag</option>
<option selected="selected">Stichwort</option>
<option>Kategorie</option>
</select>
<input type="search" name="search3" class="stichwörteroptions">
<span id="weiteresuchkriterien" style>
Weitere Suchkriterien</span><br><br></p>
<span class="jahrvon">Jahr von </span>
<input type="date" class="anfangsdatum" name="Buchdatum1">
<span class="bis">bis </span>
<input type="date" class="endsdatum" name="Buchdatum2">
<span class="sprache">Sprache </span>
<select id="language" name="language" class="spracheingabe">
<option>Alle Sprachen</option>
<option>Deutsch</option>
<option>Englisch</option>
<option>Französisch</option>
<option>Arabisch</option>
</select>
<span class="verfügbarkeit">Verfügbarkeit</span>
<input type="checkbox" class="checkbox"
name="status" value="verfügbareBücher">
<span class="kommentar">verfügbare Bücher</span>
<input type="submit" id="suchen" value="Suchen">
<a id="suchfelderleeren" href="">Suchfelder leeren</a>
</form>
</div>
<!------------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big,
it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

100
es.html
View File

@ -1,100 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Es</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="haupt">
<!--fourth Item-->
<div id="firstItem" class="items" >
<img src="pictures/es.jpg" width="125" height="200"/>
<h3 class="headerinItem">
Es
</h3>
<p class="discinItem">Verfasser: Stephen King <br>
Erscheinungsjahr: 2011 <br>
Verlag: Heyne <br>
Kategorie: Horror
</p>
<a class="redbutton" href="">Verfügbar ab: 10.05.2023</a>
<img id="shoppingwagen" src="pictures/shopping_cart.png" alt="shoppingwagen" href=""></a>
<p class="percypar">
<strong style="font-size: 25px;">Inhalt</strong> <br>
Inhalt:
In Derry, Maine, schlummert das Böse in der Kanalisation: Alle 28 Jahre wacht es auf und muss fressen.
Jetzt taucht »Es« wieder empor. Sieben Freunde entschließen sich, dem Grauen entgegenzutreten und ein Ende zu setzen.
<br><br>
<strong style="font-size: 25px;">Details</strong> <br>
ISBN: 978-3-453-43577-3 <br>
Sprache: Deutsch <br>
Stichwörter: Horror, Clown, Teenager, Monster
</p>
</div>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

View File

@ -1,90 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Impressum</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div>
<img src="pictures/sidecandle.png" id="sidecandle" alt="sidecandle" >
<div class="impressum-container">
<h1>Impressum</h1>
<h2>Firmensitz</h2>
<p class="impressum-text">
Bibliothek Candle GmbH <br>
Paul-Wittsack-Straße 10 <br>
68163 Mannheim <br>
</p>
<h2>Kontaktdaten</h2>
<p class="impressum-text">
Telefon: +49XXXXXXXX Montag bis Freitag von 9 bis 18 Uhr <br>
Telefax: 069 54 732122 <br>
E-Mail: 2211780@stud.hs-mannheim.de <br>
</p>
</div>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

86
impressum.php 100644
View File

@ -0,0 +1,86 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="suchergebnisse.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Suchergebnisse</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<!------------------------------------------------------------------------->
<div>
<img src="pictures/sidecandle.png" id="sidecandle" alt="sidecandle" >
<div class="impressum-container">
<h1>Impressum</h1>
<h2>Firmensitz</h2>
<p class="impressum-text">
Bibliothek Candle GmbH <br>
Paul-Wittsack-Straße 10 <br>
68163 Mannheim <br>
</p>
<h2>Kontaktdaten</h2>
<p class="impressum-text">
Telefon: +49XXXXXXXX Montag bis Freitag von 9 bis 18 Uhr <br>
Telefax: 069 54 732122 <br>
E-Mail: 2211780@stud.hs-mannheim.de <br>
</p>
</div>
</div>
<!------------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big,
it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -1,98 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Home</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="homepage">
<img src="pictures/sidecandle.png" id="sidecandle" alt="sidecandle">
<p class="p1">
<span class="titleschwarz">HERZLICH WILLKOMMEN!</span>
<br><br>
Die Bibliothek CANDLE begrüßt Sie ganz herzlich auf ihren Internetseiten. <br> <br>
Nutzen Sie unser umfangreiches Angebot aus den beliebtesten Büchern. <br> <br>
Wir freuen uns auf Ihren Besuch!
<br><br>
<span class="titleschwarz">VERANSTALTUNGEN!</span>
<br><br>
Leserunde | jeden Mittwoch | 17:30 Uhr
<br><br>
<span style="color: #000;" >HARRY POTTER-REIHE (aktuell) </span>
<br><br>
<span style="color: #000;">
Die erfolgreiche Buchreihe um den Zauberlehrling Harry James Potter umfasst insgesamt sieben Bände.
In jedem wird ein Schul- und Lehrjahr von Harry und seinen Freunden auf dem Zauberinternat Hogwarts erzählt.
Neben alltäglichen Problemen eines Jugendlichen, wird Harry immer wieder mit dem bösen Magier Lord Voldemort und seinen Gefolgsleuten,
den sogenannten Todessern, konfrontiert.
</span>
<br>
<a href="" style="font-style: italic; text-decoration: none; color: #000;" >mehr dazu...</a>
</p>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

100
index.php 100644
View File

@ -0,0 +1,100 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="buch_details.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Details</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<!------------------------------------------------------------------------->
<div class="homepage">
<img src="pictures/sidecandle.png" id="sidecandle" alt="sidecandle">
<p class="p1">
<span class="titleschwarz">HERZLICH WILLKOMMEN!</span>
<br><br>
Die Bibliothek CANDLE begrüßt Sie
ganz herzlich auf ihren Internetseiten.<br><br>
Nutzen Sie unser umfangreiches Angebot aus den beliebtesten Büchern.
<br><br>Wir freuen uns auf Ihren Besuch!
<br><br>
<span class="titleschwarz">VERANSTALTUNGEN!</span>
<br><br>
Leserunde | jeden Mittwoch | 17:30 Uhr
<br><br>
<span style="color: #000;" >HARRY POTTER-REIHE (aktuell) </span>
<br><br>
<span style="color: #000;">
Die erfolgreiche Buchreihe um den Zauberlehrling
Harry James Potter umfasst insgesamt sieben Bände.
In jedem wird ein Schul- und Lehrjahr von Harry
und seinen Freunden auf dem Zauberinternat Hogwarts erzählt.
Neben alltäglichen Problemen eines Jugendlichen,
wird Harry immer wieder mit dem bösen Magier Lord Voldemort
und seinen Gefolgsleuten, den sogenannten Todessern, konfrontiert.
</span>
<br>
<a href=""
style="font-style: italic; text-decoration: none; color: #000;">
mehr dazu...</a>
</p>
</div>
<!------------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big,
it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -1,82 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Kontakt</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="homepage">
<img src="pictures/sidecandle.png" id="sidecandle" alt="sidecandle" >
<p class="p2">
<span id="titlebraun"><strong> Kontakt </strong></span>
<br><br>
Kundenservice: +49XXXXXXXXX <br>
Telefax: 069 54 732122 <br>
E-Mail: 2211780@stud.hs-mannheim.de <br>
</p>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

79
kontakt.php 100644
View File

@ -0,0 +1,79 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="buch_details.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Details</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<!------------------------------------------------------------------------->
<div class="homepage">
<img src="pictures/sidecandle.png" id="sidecandle" alt="sidecandle">
<p class="p2">
<span id="titlebraun"><strong> Kontakt </strong></span>
<br><br>
Kundenservice: +49XXXXXXXXX <br>
Telefax: 069 54 732122 <br>
E-Mail: 2211780@stud.hs-mannheim.de <br>
</p>
</div>
<!------------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big,
it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -1,87 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Löschen Erfolgreich Meine Bücher</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="hauptcontainer" id="verlängerung">
<h1 id="verlängerungH1">Buch erfolgreich entfernt</h1>
<div id="verlängerungContent">
<p id="möchten-sie">Die Reservierung wurde erfolgreich aufgehoben.</p>
<div id="verlängerungButtonContainer">
<a id = "verlängerungErfolgreichButton1" href="meinebuecher.html">Zurück zum Warennkorb</a>
</div>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

View File

@ -1,87 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Löschen Erfolgreich</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="hauptcontainer" id="verlängerung">
<h1 id="verlängerungH1">Buch erfolgreich entfernt</h1>
<div id="verlängerungContent">
<p id="möchten-sie">Das Buch wurde aus Ihrem Warenkorb entfernt.</p>
<div id="verlängerungButtonContainer">
<a id = "verlängerungErfolgreichButton1" href="warenkorb.html">Zurück zum Warennkorb</a>
</div>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

View File

@ -0,0 +1,169 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Löschen Erfolgreich Meine Bücher</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<?php
$BookID = $_GET['buchID'];
$servername = "localhost";
$username = "web_b-3";
$password = "een7Ao6s";
$dbname = "bibliothek_candle";
$connection =
mysqli_connect($servername, $username, $password, $dbname);
if (!$connection) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
$sqlDelete = $connection->prepare("
DELETE FROM `ausgeliehenes_buch` WHERE `ausgeliehenes_buch`.`AusleihID` = ?;");
$sqlDelete->bind_param("i", $ID);
$ID = $_GET['ausleihID'];
// SQL-Befehl ausführen
$sqlDelete->execute();
$sqlGetQuantity = $connection->prepare(
"SELECT Anzahl, MaxAnzahl FROM `buch` WHERE BuchID = ?;");
$sqlGetQuantity->bind_param("i", $BookID);
$sqlGetQuantity->execute();
// Ergebnis speichern
$resultGetQuantity = $sqlGetQuantity->get_result();
if (mysqli_num_rows($resultGetQuantity) > 0) {
while($rowGetQuantity = mysqli_fetch_assoc($resultGetQuantity)) {
$bookQuantity = $rowGetQuantity['Anzahl'];
$bookMaxQuantity = $rowGetQuantity['MaxAnzahl'];
$bookTempQuantity = $bookQuantity + 1;
$bookTempQuantityNew = $bookMaxQuantity - $bookTempQuantity;
$sqlGetBorrowedQuantity = $connection->prepare(
"SELECT COUNT(*) AS Ausgeliehen
FROM `ausgeliehenes_buch` WHERE BuchID = ?;"
);
$sqlGetBorrowedQuantity->bind_param("i", $BookID);
$sqlGetBorrowedQuantity->execute();
// Ergebnis speichern
$resultGetBorrowedQuantity = $sqlGetBorrowedQuantity->get_result();
if (mysqli_num_rows($resultGetBorrowedQuantity) > 0) {
while($rowGetBorrowedQuantity = mysqli_fetch_assoc($resultGetBorrowedQuantity)) {
$bookBorrowedQuantity = $rowGetBorrowedQuantity['Ausgeliehen'];
if ($bookBorrowedQuantity == $bookTempQuantityNew) {
$sqlUpdateBook = $connection->prepare(
"UPDATE buch SET Anzahl = Anzahl+1
WHERE buch.BuchID = ? ;"
);
$sqlUpdateBook->bind_param("i", $BookID);
$sqlUpdateBook->execute();
}
else {
$sqlGetBorrowedID = $connection->prepare(
"SELECT AusleihID
FROM `ausgeliehenes_buch`
WHERE BuchID = ?
AND Reserviert=1
ORDER BY Enddatum
DESC LIMIT 1;"
);
$sqlGetBorrowedID->bind_param("i", $BookID);
$sqlGetBorrowedID->execute();
// Ergebnis speichern
$resultGetBorrowedID = $sqlGetBorrowedID->get_result();
if (mysqli_num_rows($resultGetBorrowedID) > 0) {
while($rowGetBorrowedID = mysqli_fetch_assoc($resultGetBorrowedID)) {
$bookBorrowedID = $rowGetBorrowedID['AusleihID'];
$sqlUpdateBookID = $connection->prepare(
"UPDATE `ausgeliehenes_buch`
SET `Verlängerbar` = '1',
`Reserviert` = '0'
WHERE `ausgeliehenes_buch`.`AusleihID` = ?;"
);
$sqlUpdateBookID->bind_param("i", $bookBorrowedID);
$sqlUpdateBookID->execute();
}
}
}
}
}
}
}
?>
<div class="hauptcontainer" id="verlängerung">
<h1 id="verlängerungH1">Buch erfolgreich entfernt</h1>
<div id="verlängerungContent">
<p id="möchten-sie">Die Reservierung wurde erfolgreich aufgehoben.</p>
<div id="verlängerungButtonContainer">
<a id = "verlängerungErfolgreichButton1" href="meinebuecher.php">Zurück zum Warennkorb</a>
</div>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -0,0 +1,78 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Löschen Erfolgreich</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<div class="hauptcontainer" id="verlängerung">
<h1 id="verlängerungH1">Buch erfolgreich entfernt</h1>
<div id="verlängerungContent">
<p id="möchten-sie">Das Buch wurde aus Ihrem Warenkorb entfernt.</p>
<div id="verlängerungButtonContainer">
<a id = "verlängerungErfolgreichButton1" href="warenkorb.php">Zurück zum Warennkorb</a>
</div>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -1,97 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Löschen Meine Bücher</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="hauptcontainer" id="verlängerung">
<h1 id="verlängerungH1">Reservierung stornieren</h1>
<div id="verlängerungContent">
<p id="möchten-sie">Möchten Sie die Reservierung für das folgende Buch wirklich stornieren?</p>
<div class="item" id="verlängerungItem">
<img src="pictures/the_hundred_and_one_dalmatians.jpg" alt="The Hundred and One Dalmatians" height="200">
<div class="beschreibung">
<h2>The Hundred and One Dalmatians</h2>
<h3>von Dodie Smith</h3>
<div class="b2 red">Abholbereit am: 03.05.2023</div>
</div>
</div>
<div id="verlängerungButtonContainer">
<a id = "verlängerungButton1" href="loeschenErfolgreich_meine_buecher.html">Bestätigen</a>
<a id = "verlängerungButton2" href="meinebuecher.html">Abbrechen</a>
</div>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

View File

@ -0,0 +1,220 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="suchergebnisse.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Löschen Meine Bücher</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<div class="hauptcontainer">
<h1 id="searchResult_heading">Reservierung stornieren</h1>
<div id="searchResult_container">
<?php
$servername = "localhost";
$username = "web_b-3";
$password = "een7Ao6s";
$dbname = "bibliothek_candle";
$connection =
mysqli_connect($servername, $username, $password, $dbname);
if (!$connection) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
/* SQL-Befehl vorbereiten */
$sql = $connection->prepare("SELECT ab.AusleihID, ab.BuchID, b.Titel, b.Bild, ab.Verlängerbar, DATE_FORMAT(ab.Anfangsdatum, '%d.%m.%Y') as Anfangsdatum, DATE_FORMAT(ab.Enddatum, '%d.%m.%Y') as Enddatum,
GROUP_CONCAT(DISTINCT CONCAT(a.VorName, ' ', a.NachName)
SEPARATOR ', ') AS 'Autor',
IF(
(SELECT ausgeliehenes_buch.Anfangsdatum FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID) = Curdate(), 'Sofort Abholbereit',
(
IF(
(SELECT ausgeliehenes_buch.Anfangsdatum FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID) > Curdate(),
CONCAT(
'Abholbereit am: ', (
SELECT DATE_FORMAT(
ausgeliehenes_buch.Anfangsdatum , '%d.%m.%Y'
) FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID
)
)
, CONCAT(
'Rückgabe am: ', (
SELECT DATE_FORMAT(
ausgeliehenes_buch.Enddatum , '%d.%m.%Y'
) FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID
)
))
)
)
AS 'Verfügbarkeit'
FROM ausgeliehenes_buch AS ab
INNER JOIN buch as b
ON ab.BuchID = b.BuchID
INNER JOIN `buch_verfasst_von_autor` AS bvva
ON b.BuchID = bvva.BuchID
INNER JOIN `autor` AS a ON bvva.AutorNr = a.AutorNr
WHERE ab.AusleihID=?
GROUP BY ab.AusleihID;;");
// Parameter binden
$sql->bind_param("i", $ID);
// Übergebene ID des angeklickten Container speichern
$containerID = $_GET['ausleihID'];
// Buch ID abtrennen
$ID = str_replace('placeholder_container', '', $containerID);
// SQL-Befehl ausführen
$sql->execute();
// Ergebnis speichern
$result = $sql->get_result();
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$bookID = $row['BuchID'];
$ausleihID = $row['AusleihID'];
$bookCover = $row['Bild'];
$bookTitle = $row['Titel'];
$bookAuthor = $row['Autor'];
$bookAvailability = $row['Verfügbarkeit'];
$bookExtendable = $row['Verlängerbar'];
$bookStartdate = $row['Anfangsdatum'];
$bookEnddate = $row['Enddatum'];
$bookStartdatePlusSeven = $bookStartdate +7;
/* TODO: OnClick auslagern. */
echo "<div id='book_container$bookID+$ausleihID' class='book_container'
onclick='open_bookDetails(this.id)'>
<div class='bookCover_container'>
<img class='bookCover' src='book_covers/$bookCover'
alt='Kein Bild vorhanden'>
</div>
<div class='bookDetails_container'>
<h2 class='bookTitle'>$bookTitle</h2>
<div class='bookDetails'>
<p class='author'>von $bookAuthor</p>
</div>
<div class='available_container'>
<p id='available_$ausleihID' class='available'>
$bookAvailability</p>
</div>
<div>
<p id='bestellungsInfo$ausleihID'></p>
</div>
</div>
<div class='placeholder_container' id='placeholder_container$ausleihID'>
<div class='placeholder' id='placeholder$ausleihID'></div>
</div>
<script type='text/javascript'
language='JavaScript'>
(function() {
var currentElement = document.
getElementById('available_$ausleihID');
var parentDiv = currentElement.parentElement;
// Sofort Abholbereit
if (currentElement.innerHTML.trim() === 'Sofort Abholbereit') {
parentDiv.style.backgroundColor
= '#70AD47';
document.getElementById('bestellungsInfo$ausleihID').innerHTML = 'Diese Reservierung verfällt, wenn das Buch nicht bis zum $bookStartdatePlusSeven abgeholt wurde.';
}
else
// Noch nicht Ausgeliehen
{
parentDiv.style.backgroundColor
= '#F34343';
document.getElementById('bestellungsInfo$ausleihID').innerHTML = 'Dieses Buch ist für sie Reserviert.';
document.getElementById('placeholder$ausleihID').classList.add('bin');
}
})();
</script>
</div>";
}
} else {
echo "Keine Infos vorhanden.";
echo $_POST['ausleihID'];
}
if (!$result) {
die("Ungültige SQL-Abfrage: " . mysqli_connect_error());
}
echo "
<div id='verlängerungButtonContainer'>
<a id = 'verlängerungButton1' href='loeschen_erfolgreich_meine_buecher.php?ausleihID=$ID&buchID=$bookID'>Bestätigen</a>
<a id = 'verlängerungButton2' href='meinebuecher.php'>Abbrechen</a>
</div>";
mysqli_close($connection);
?>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -1,97 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Löschen Warenkorb</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="hauptcontainer" id="verlängerung">
<h1 id="verlängerungH1">Buch entfernen</h1>
<div id="verlängerungContent">
<p id="möchten-sie">Möchten Sie das folgende Buch wirklich aus Ihrem Warenkorb entfernen?</p>
<div class="item" id="verlängerungItem">
<img src="pictures/the_hundred_and_one_dalmatians.jpg" alt="The Hundred and One Dalmatians" height="200">
<div class="beschreibung">
<h2>The Hundred and One Dalmatians</h2>
<h3>von Dodie Smith</h3>
<div class="b2 red">Verfügbar ab: 03.05.2023</div>
</div>
</div>
<div id="verlängerungButtonContainer">
<a id = "verlängerungButton1" href="loeschenErfolgreich_warenkorb.html">Bestätigen</a>
<a id = "verlängerungButton2" href="warenkorb.html">Abbrechen</a>
</div>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

View File

@ -0,0 +1,88 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Löschen Warenkorb</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<div class="hauptcontainer" id="verlängerung">
<h1 id="verlängerungH1">Buch entfernen</h1>
<div id="verlängerungContent">
<p id="möchten-sie">Möchten Sie das folgende Buch wirklich aus Ihrem Warenkorb entfernen?</p>
<div class="item" id="verlängerungItem">
<img src="pictures/the_hundred_and_one_dalmatians.jpg" alt="The Hundred and One Dalmatians" height="200">
<div class="beschreibung">
<h2>The Hundred and One Dalmatians</h2>
<h3>von Dodie Smith</h3>
<div class="b2 red">Verfügbar ab: 03.05.2023</div>
</div>
</div>
<div id="verlängerungButtonContainer">
<a id = "verlängerungButton1" href="loeschenErfolgreich_warenkorb.html">Bestätigen</a>
<a id = "verlängerungButton2" href="warenkorb.php">Abbrechen</a>
</div>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -1,136 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Meine Bücher</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="containerofmeinebuecher">
<p id="meinebüchertitel">Meine Bücher</p>
<!--first item-->
<div id="firstItem" class="items" >
<a href="percy.html"><img src="pictures/percy_jackson_diebe_im_olymp.jpg" width="125" height="200"/></a>
<h3 class="headerinItem">
<a href="percy.html">Percy Jackson: Diebe im Olymp</a>
</h3>
<p class="discinItem">von Rick Riordan <br>
</p>
<a class="greenbutton" href="">Sofort Abholbereit</a>
<a class="binPicture" href="loeschen_meine_buecher.html"><img src="pictures/bin.png" width="25" height="25"></a>
<p class="message">Diese Reservierung verfällt, wenn das Buch nicht bis zum 24.04.2023 abgeholt wurde.</p>
<hr style="width: 92%;">
</div>
<!--Second Item-->
<div id="secondItem" class="items">
<a href="dalmatians.html"><img src="pictures/the_hundred_and_one_dalmatians.jpg" width="125" height="200"/></a>
<h3 class="headerinItem">
<a href="dalmatians.html">The Hundred and One Dalmatians</a>
</h3>
<p class="discinItem">von Dodie Smith <br>
</p>
<a class="redbutton" href="">Abholbereit am: 03.05.2023</a>
<a class="binPicture" href="loeschen_meine_buecher.html"><img src="pictures/bin.png" width="25" height="25"></a>
<p class="message">Dieses Buch ist für Sie reserviert.</p>
<hr style="width:92%;">
</div>
<!--Third Item-->
<div id="thirdItem" class="items">
<a href="penguin.html"><img src="pictures/penguin_highway.jpg" width="125" height="200"/></a>
<h3 class="headerinItem">
<a href="penguin.html">Penguin Highway</a>
</h3>
<p class="discinItem">von Tomihiko Morimi <br>
</p>
<a class="greenbutton" href="">Rückgabe am: 03.05.2023</a>
<hr style="width: 92%;">
</div>
<!--fourth Item-->
<div id="fourthItem" class="items" >
<a href="es.html"><img src="pictures/es.jpg" width="125" height="200"/></a>
<h3 class="headerinItem">
<a href="es.html">Es</a>
</h3>
<p class="discinItem">von Stephen King <br>
</p>
<a class="redbutton" href="verlaengerung.html" >Rückgabe am: 03.05.2023</a>
<a class="binPicture" href="verlaengerung.html"><img src="pictures/extend.png" width="25" height="25"></a>
</div>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<!--Burger-->
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

260
meinebuecher.php 100644
View File

@ -0,0 +1,260 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="suchergebnisse.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Meine Bücher</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<?php
session_start();
$db_link = mysqli_connect('localhost', 'web_b-3', 'een7Ao6s', 'bibliothek_candle', '3306');
echo '
<div class="hauptcontainer">
<h1 id="searchResult_heading">Meine Bücher</h1>
<div id="searchResult_container">';
$sql = $db_link->prepare(
"SELECT ab.AusleihID, ab.BuchID, b.Titel, b.Bild, ab.Verlängerbar, DATE_FORMAT(ab.Anfangsdatum, '%d.%m.%Y') as Anfangsdatum, DATE_FORMAT(ab.Enddatum, '%d.%m.%Y') as Enddatum,
GROUP_CONCAT(DISTINCT CONCAT(a.VorName, ' ', a.NachName)
SEPARATOR ', ') AS 'Autor',
IF(
(SELECT ausgeliehenes_buch.Anfangsdatum FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID) = Curdate(), 'Sofort Abholbereit',
(
IF(
(SELECT ausgeliehenes_buch.Anfangsdatum FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID) > Curdate(),
CONCAT(
'Abholbereit am: ', (
SELECT DATE_FORMAT(
ausgeliehenes_buch.Anfangsdatum , '%d.%m.%Y'
) FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID
)
)
, CONCAT(
'Rückgabe am: ', (
SELECT DATE_FORMAT(
ausgeliehenes_buch.Enddatum , '%d.%m.%Y'
) FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID
)
))
)
)
AS 'Verfügbarkeit'
FROM ausgeliehenes_buch AS ab
INNER JOIN buch as b
ON ab.BuchID = b.BuchID
INNER JOIN `buch_verfasst_von_autor` AS bvva
ON b.BuchID = bvva.BuchID
INNER JOIN `autor` AS a ON bvva.AutorNr = a.AutorNr
WHERE ab.BenutzerID=?
GROUP BY ab.AusleihID;");
$sql->bind_param("i", $BenutzerID);
$BenutzerID = $_SESSION['userID'];
$sql->execute();
$result = $sql->get_result();
$connection = $db_link;
if (!$connection) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
$counter = 0;
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$bookID = $row['BuchID'];
$ausleihID = $row['AusleihID'];
$bookCover = $row['Bild'];
$bookTitle = $row['Titel'];
$bookAuthor = $row['Autor'];
$bookAvailability = $row['Verfügbarkeit'];
$bookExtendable = $row['Verlängerbar'];
$bookStartdate = $row['Anfangsdatum'];
$bookEnddate = $row['Enddatum'];
$bookStartdatePlusSeven = $bookStartdate +7;
if ($counter != 0) {
echo "<div class='divider'></div>";
}
// TODO: OnClick auslagern.
echo "<div id='book_container$bookID+$ausleihID' class='book_container'
onclick='open_bookDetails(this.id)'>
<div class='bookCover_container'>
<img class='bookCover' src='book_covers/$bookCover'
alt='Kein Bild vorhanden'>
</div>
<div class='bookDetails_container'>
<h2 class='bookTitle'>$bookTitle</h2>
<div class='bookDetails'>
<p class='author'>von $bookAuthor</p>
</div>
<div class='available_container'>
<p id='available_$ausleihID' class='available'>
$bookAvailability</p>
</div>
<div>
<p id='bestellungsInfo$ausleihID'></p>
</div>
</div>
<div class='placeholder_container' id='placeholder_container$ausleihID'>
<div class='placeholder' id='placeholder$ausleihID'></div>
</div>
<script type='text/javascript'
language='JavaScript'>
(function() {
var currentElement = document.
getElementById('available_$ausleihID');
var parentDiv = currentElement.parentElement;
// Sofort Abholbereit
if (currentElement.innerHTML.trim() === 'Sofort Abholbereit') {
parentDiv.style.backgroundColor
= '#70AD47';
document.getElementById('bestellungsInfo$ausleihID').innerHTML = 'Diese Reservierung verfällt, wenn das Buch nicht bis zum $bookStartdatePlusSeven abgeholt wurde.';
document.getElementById('placeholder$ausleihID').classList.add('bin');
document.getElementById('placeholder_container$ausleihID').addEventListener('click', function(){
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
ID = this.id;
var data = new URLSearchParams();
data.append('ausleihID', ID);
var url = 'http://141.19.142.11/loeschen_meine_buecher.php?' + data.toString();
location.href = url;
});
}
// Ausgeliehen und Verlängerbar
else if (currentElement.innerHTML.trim().includes('Rückgabe') && $bookExtendable === 1){
parentDiv.style.backgroundColor
= '#70AD47';
document.getElementById('placeholder$ausleihID').classList.add('extend');
document.getElementById('placeholder_container$ausleihID').addEventListener('click', function(){
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
ID = this.id;
var data = new URLSearchParams();
data.append('ausleihID', ID);
var url = 'http://141.19.142.11/verlaengerung.php?' + data.toString();
location.href = url;
});
}
// Ausgeliehen und nicht Verlängerbar
else if (currentElement.innerHTML.trim().includes('Rückgabe') && $bookExtendable === 0){
parentDiv.style.backgroundColor
= '#F34343';
} else
// Noch nicht Ausgeliehen
{
parentDiv.style.backgroundColor
= '#F34343';
document.getElementById('bestellungsInfo$ausleihID').innerHTML = 'Dieses Buch ist für sie Reserviert.';
document.getElementById('placeholder$ausleihID').classList.add('bin');
document.getElementById('placeholder_container$ausleihID').addEventListener('click', function(){
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
ID = this.id;
var data = new URLSearchParams();
data.append('ausleihID', ID);
var url = 'http://141.19.142.11/loeschen_meine_buecher.php?' + data.toString();
location.href = url;
});
}
})();
</script>
</div>";
$counter++;
}
} else {
echo "Keine Ergebnisse.";
}
if (!$result) {
die("Ungültige SQL-Abfrage: " . mysqli_connect_error());
}
mysqli_close($connection);
?>
</div>
</div>
<script>
function open_bookDetails(ID) {
var data = new URLSearchParams();
ID = ID.substr(0, ID.lastIndexOf('+'));
data.append("bookID", ID);
var url = "http://141.19.142.11/buch_details.php?" +
data.toString();
location.href = url;
}
function bin (ID){
// OnClick Event für open_bookDetails stoppen
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
alert(ID)
}
</script>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<script src="resize.js"></script>
<!--Burger-->
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -0,0 +1,50 @@
// document.getElementById("header").innerHTML = `
// <h1 class='kopf' >
// <br><br>
// Bibliothek
// <a href='index.php' id='bildID'>
// <img id='CandleID' src='pictures/candle.png'
// alt='Bild von einer Kerze' width='200' height='192'/></a>
// <br><br>
// Candle
// </h1>
// <div>
// <a id='uberuns' href='uberuns.php'>Über Uns</a>
// <a id='buecher' href='buecher.php'>Bücher</a>
// <a id='meinebuecher' href='anmelden_meinebuecher.php'>
// Meine Bücher</a>
// <a id='abmelden' href='abmelden.php'>Abmelden</a>
// <form action='suchergebnisse.php'>
// <input type="hidden" name="searchType" value="simple">
// <input name="searchFor" class='suchleiste' type='search'
// placeholder='Suche...'>
// <button type='submit' id='buttonID' class='searchButton'>
// <i class='fa fa-search'></i>
// </button>
// </form>
// <a id='erweitertesuche' href='erweitertesuche.php'>
// Erweiterte Suche</a>
// <a href='anmelden.php' id='warenKorbID'>
// <img id='shoppingCard' src='pictures/einkaufswagen.png'
// alt='Bild von einem Wagen' width='50' height='50'/>
// </a>
// </div>`;
document.getElementById("footer").innerHTML = `
<div>
<a id="impressum" href="impressum.php">Impressum</a>
<a id="kontakt" href="kontakt.php">Kontakt</a>
<a id="datenschutz" href="datenschutz.php">Datenschutz</a>
</div>`;
document.getElementById("activeid").innerHTML = `
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle"
type="checkbox" onclick="openNav()">
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>`;

View File

@ -0,0 +1,81 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Erfolgreich Registriert</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<!--------------------------------------------------------------------->
<div class="mainContentContainer">
<div class="titleContainer">
<h1 id="registeredTitle">Fehler</h1>
</div>
<div class="mainContent">
<p id="textFirstHalf">
Das Passwort ist falsch!
</p>
<a type="button" id="loginNowButton" href="anmelden.php"> Erneut Versuchen </a>
<br><br><br>
</div>
</div>
<!--------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -1,99 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Penguin Highway</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="haupt">
<!--Third Item-->
<div id="firstItem" class="items" >
<img src="pictures/penguin_highway.jpg" width="125" height="200"/>
<h3 class="headerinItem">
Penguin Highway
</h3>
<p class="discinItem">Verfasser: Tomihiko Morimi <br>
Erscheinungsjahr: 2019 <br>
Verlag: Yen On <br>
Kategorie: Fantasy
</p>
<a class="greenbutton" href="">Verfügbar</a>
<img id="shoppingwagen" src="pictures/shopping_cart.png" alt="shoppingwagen" href=""></a>
<p class="percypar">
<strong style="font-size: 25px;">Inhalt</strong> <br>
I may only be in fourth grade, but I know more than most adults. I take notes every day and read all kinds of books, so I have a solid grasp on the world
around me. But suddenly, there are penguins in my town! I know it has something to do with the lady at the dentist and her weird powers, and I'm going to get to the bottom of it...
<br><br>
<strong style="font-size: 25px;">Details</strong> <br>
ISBN: 978-1-9753-8260-5 <br>
Sprache: Englisch <br>
Stichwörter: Penguine, Freundschaft, Meer, Küste
</p>
</div>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

View File

@ -1,102 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Percy Jackson: Diebe im Olymp</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="haupt">
<!--First Item-->
<div id="firstItem" class="items" >
<img src="pictures/percy_jackson_diebe_im_olymp.jpg" width="125" height="200"/>
<h3 class="headerinItem">
Percy Jackson: Diebe im Olymp
</h3>
<p class="discinItem">Verfasser: Rick Riordan <br>
Erscheinungsjahr: 2010 <br>
Verlag: Carlsen <br>
Kategorie: Fantasy
</p>
<a class="greenbutton" href="">Verfügbar</a>
<img id="shoppingwagen" src="pictures/shopping_cart.png" alt="shoppingwagen" href=""></a>
<p class="percypar">
<strong style="font-size: 25px;">Inhalt</strong> <br>
Percy versteht die Welt nicht mehr. Jedes Jahr fliegt er von einer anderen Schule. Ständig passieren ihm seltsame Unfälle. Und jetzt soll er
auch noch an dem Tornado schuld sein! Langsam wird ihm klar: Irgendjemand hat es auf ihn abgesehen. Als Percy sich mit Hilfe seines Freundes Grover vor
einem Minotaurus ins Camp Half-Blood rettet, erfährt er die Wahrheit: Sein Vater ist der Meeresgott Poseidon, Percy also ein Halbgott. Und er hat einen mächtigen
Feind: Kronos, den Titanen. Die Götter stehen Kopf- und Percy und seine Freunde vor einem unglaublichen Abenteuer...
<br><br>
<strong style="font-size: 25px;">Details</strong> <br>
ISBN: 978-3-551-55661-5 <br>
Sprache: Deutsch <br>
Stichwörter: Griechenland, Griechische Sagen, Griechische Götter, Zeus, Demeter, Persephone, Hera, Hades, Poseidon, Athene, Aphrodite, Ares, Hephaistos,
Apollo, Artemis, Hermes, Dionysos, Sage, Sagen
</p>
</div>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

BIN
pictures/add.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

BIN
pictures/remove.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -0,0 +1,180 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Erfolgreich Registriert</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<?php
session_start();
$db_link = mysqli_connect('localhost', 'web_b-3', 'een7Ao6s', 'bibliothek_candle', '3306');
function runSQL($sql){
global $db_link;
$db_res = mysqli_query($db_link, $sql);
if(!$db_res){
header("Location: 404.html");
exit;
}
return $db_res;
}
function register($vorname,
$nachname ,
$email,
$passwort, $strasse, $hausnummer, $ort, $plz){
global $db_link;
$vorname = mysqli_real_escape_string($db_link, $vorname);
$nachname = mysqli_real_escape_string($db_link, $nachname);
$email = mysqli_real_escape_string($db_link, $email);
$passwort = mysqli_real_escape_string($db_link, $passwort);
$ort = mysqli_real_escape_string($db_link, $ort);
$plz = mysqli_real_escape_string($db_link, $plz);
$strasse = mysqli_real_escape_string($db_link, $strasse);
$hausnummer = mysqli_real_escape_string($db_link, $hausnummer);
//Benutzer schon vorhanden?
$db_res = runSQL("SELECT COUNT(*) FROM `benutzer` WHERE `E-MailAdresse`='$email'");
$row = mysqli_fetch_array($db_res);
if($row['COUNT(*)'] > 0)
{
header("Location: benutzer_schon_existiert.php");
return 'Es gibt schon einen Benutzer mit der angegebenen E-Mail Adresse';
}else{
$zweiterbefehl = runSQL("INSERT INTO `benutzer` (`VorName`, `NachName`, `KartenID`, `E-MailAdresse`, `AdressenID`, `Passwort`)
VALUES ('$vorname', '$nachname', '100', '$email', '1', '$passwort')");
$dritterbefehl = runSQL("UPDATE `benutzer`
SET `KartenID` = 1000000000 + (SELECT `BenutzerID` FROM `benutzer` WHERE `E-MailAdresse` = '$email')
WHERE `E-MailAdresse` = '$email'");
$adr = runSQL("SELECT COUNT(*) FROM `adresse` WHERE `Stadt` = '$ort' and `Postleitzahl` = '$plz' and `Straße`='$strasse' and `Hausnummer` ='$hausnummer'");
$zeile = mysqli_fetch_array($adr);
if($zeile['COUNT(*)'] > 0){
$vierterbefehl = runSQL("UPDATE `benutzer` b
INNER JOIN `adresse` a ON a.`Stadt` = '$ort' AND a.`Postleitzahl` = '$plz'
AND a.`Straße` = '$strasse' AND a.`Hausnummer` = '$hausnummer'
SET b.`AdressenID` = a.`AdressenID`
WHERE b.`E-MailAdresse` = '$email'");
}else{
$ersterbefehl = runSQL("INSERT INTO `adresse` (`Stadt`, `Postleitzahl`, `Straße`, `Hausnummer`)
VALUES ('$ort', '$plz', '$strasse', '$hausnummer')");
$vierterbefehl = runSQL("UPDATE `benutzer` b
INNER JOIN `adresse` a ON a.`Stadt` = '$ort' AND a.`Postleitzahl` = '$plz'
AND a.`Straße` = '$strasse' AND a.`Hausnummer` = '$hausnummer'
SET b.`AdressenID` = a.`AdressenID`
WHERE b.`E-MailAdresse` = '$email'");
}
// SQL-Abfrage ausführen
$sql = "SELECT `KartenID` FROM `benutzer` WHERE `E-MailAdresse` = '$email'";
$result = runSQL($sql);
// Überprüfen, ob die Abfrage erfolgreich war
if ($result->num_rows > 0) {
// Den Wert aus dem Ergebnis abrufen
$row = $result->fetch_assoc();
$kartenid = $row["KartenID"];
}
echo '
<!--------------------------------------------------------------------->
<div class="mainContentContainer">
<div class="titleContainer">
<h1 id="registeredTitle">Erfolgreich registriert</h1>
</div>
<div class="mainContent">
<p id="textFirstHalf">
Sie wurden erfolgreich registriert.
<br><br>Ihre Karten-ID ist</p>
<!--TODO: Placeholder entfernen
und durch ID aus Datenbank ersetzen-->
<p id="cardID">' . htmlspecialchars($kartenid) .'</p>
<br><br>
<p id="textLastHalf">
Mit dieser ID und Ihrem Passwort
können Sie sich direkt auf unserer Website anmelden und,
bei Bedarf, bereits Bücher für eine Ausleihe reservieren.
<br><br>Die Karten-ID findet sich auf Ihrem
Bibliotheksausweis wieder, welchen Sie bei Ihrem ersten
Besuch in unserer Bibliothek erhalten.
<br>Der Bibliotheksausweis kostet 10 Euro und muss jedes Jahr
vor Ort für den gleichen Preis verlängert werden.
<br>Bitte beachten Sie, dass ohne Vorlage eines
gültigen Ausweises, keine Bücher abgeholt werden können.
</p>
<br>
<a type="button" id="loginNowButton" href="anmelden_meinebuecher.php"> Jetzt anmelden </a>
<br><br><br>
</div>
</div>
<!--------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>';
}
}
?>

View File

@ -1,175 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Registrierung</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberUns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="hauptcontainer">
<!--Bei action wird später eine php-Datei eingefügt,
welche sich um die Verarbeitung der Daten kümmert.-->
<form id="registrierungForm" action="">
<div class="container">
<span id="registrierungTitel" > Registrierung </span>
<br>
<p id="datenSchutzHinweisRegistrierung" > Über diese Webseite werden personenbezogene Daten erhoben und genutzt. Für Details, beziehen Sie sich bite auf die Seite Datenschutz.</p>
<h4 id="registrierungAngabenZurRegistrierung">Angaben zur Registrierung<hr id="registrierungHr"></h4>
<br>
<div id="registrierungInputDiv" >
<div class="field">
<label for="vorName"><b>Vorname</b></label>
<br>
<input type="text" name="vorName" id="vorName" class="registrierenNormalesTextfeld"><br>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="nachName"><b>Nachname</b></label>
<br>
<input type="text" name="nachName" id="nachName" class="registrierenNormalesTextfeld"><br>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="strasse"><b>Straße und Hausnummer</b></label>
<br>
<input type="text" name="strasse" id="strasse">
<input type="text" name="hausnummer" id="hausNummer"><br>
<p class="errorMessage"></p>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="postleitzahl"><b>Postleitzahl und Ort</b></label>
<br>
<input type="text" name="postleitzahl" id="postleitzahl">
<input type="text" name="ort" id="ort"><br>
<p class="errorMessage"></p>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="email"><b>E-Mail-Adresse</b></label>
<br>
<input type="email" name="email" id="email" class="registrierenNormalesTextfeld"><br>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="emailRep"><b>E-Mail-Adresse bestätigen</b></label>
<br>
<input type="email" name="emailRep" id="emailRep" class="registrierenNormalesTextfeld"><br>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="passwort"><b>Passwort</b></label>
<br>
<input type="password" name="passwort" id="passwort" class="registrierenNormalesTextfeld"><br>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="passwortRep"><b>Passwort bestätigen</b></label>
<br>
<input type="password" name="passwortRep" id="passwortRep" class="registrierenNormalesTextfeld"><br>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<input type="button" value="Registrieren" id="registrierenKnopf" class="registrierenKnopf">
</div>
<br><br>
<details>
<summary>Sie habe bereits ein Konto?</summary>
<p id="registrierenAusklappe"> <a href="anmelden_warenkorb.html"> Jetzt anmelden</a></p>
</details>
</div>
</div>
</form>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
<script src="registrierung_verhalten.js"></script>
</body>
</html>

168
registrierung.php 100644
View File

@ -0,0 +1,168 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Registrierung</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<?php
session_start();
echo '
<div class="hauptcontainer">
<!--Bei action wird später eine php-Datei eingefügt,
welche sich um die Verarbeitung der Daten kümmert.-->
<form id="registrierungForm" action="registrierung_erfolgreich.php" method="Post">
<div class="container">
<span id="registrierungTitel" > Registrierung </span>
<br>
<p id="datenSchutzHinweisRegistrierung" > Über diese Webseite werden personenbezogene Daten erhoben und genutzt. Für Details, beziehen Sie sich bite auf die Seite Datenschutz.</p>
<h4 id="registrierungAngabenZurRegistrierung">Angaben zur Registrierung<hr id="registrierungHr"></h4>
<br>
<div id="registrierungInputDiv" >
<div class="field">
<label for="vorName"><b>Vorname</b></label>
<br>
<input type="text" name="vorName" id="vorName" class="registrierenNormalesTextfeld"><br>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="nachName"><b>Nachname</b></label>
<br>
<input type="text" name="nachName" id="nachName" class="registrierenNormalesTextfeld"><br>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="strasse"><b>Straße und Hausnummer</b></label>
<br>
<input type="text" name="strasse" id="strasse">
<input type="text" name="hausnummer" id="hausNummer"><br>
<p class="errorMessage"></p>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="postleitzahl"><b>Postleitzahl und Ort</b></label>
<br>
<input type="text" name="postleitzahl" id="postleitzahl">
<input type="text" name="ort" id="ort"><br>
<p class="errorMessage"></p>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="email"><b>E-Mail-Adresse</b></label>
<br>
<input type="email" name="email" id="email" class="registrierenNormalesTextfeld"><br>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="emailRep"><b>E-Mail-Adresse bestätigen</b></label>
<br>
<input type="email" name="emailRep" id="emailRep" class="registrierenNormalesTextfeld"><br>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="passwort"><b>Passwort</b></label>
<br>
<input type="password" name="passwort" id="passwort" class="registrierenNormalesTextfeld"><br>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<label for="passwortRep"><b>Passwort bestätigen</b></label>
<br>
<input type="password" name="passwortRep" id="passwortRep" class="registrierenNormalesTextfeld"><br>
<p class="errorMessage"></p>
<br>
</div>
<div class="field">
<input type="submit" value="Registrieren" name="Registrieren" id="registrierenKnopf" class="registrierenKnopf">
</div>
<br><br>
<details>
<summary>Sie habe bereits ein Konto?</summary>
<p id="registrierenAusklappe"> <a href="anmelden.php"> Jetzt anmelden</a></p>
</details>
</div>
</div>
</form>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<<footer id="footer" class="fuss" ></footer>
<script src="registrierung_verhalten.js"></script>
</body>
</html>';
?>

View File

@ -1,120 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Erfolgreich Registriert</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberUns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<!--------------------------------------------------------------------->
<div class="mainContentContainer">
<div class="titleContainer">
<h1 id="registeredTitle">Erfolgreich registriert</h1>
</div>
<div class="mainContent">
<p id="textFirstHalf">
Sie wurden erfolgreich registriert.
<br><br>Ihre Karten-ID ist</p>
<!--TODO: Placeholder entfernen
und durch ID aus Datenbank ersetzen-->
<p id="cardID">XXXXXX.</p>
<br><br>
<p id="textLastHalf">
Mit dieser ID und Ihrem Passwort
können Sie sich direkt auf unserer Website anmelden und,
bei Bedarf, bereits Bücher für eine Ausleihe reservieren.
<br><br>Die Karten-ID findet sich auf Ihrem
Bibliotheksausweis wieder, welchen Sie bei Ihrem ersten
Besuch in unserer Bibliothek erhalten.
<br>Der Bibliotheksausweis kostet 10€ und muss jedes Jahr
vor Ort für den gleichen Preis verlängert werden.
<br>Bitte beachten Sie, dass ohne Vorlage eines
gültigen Ausweises, keine Bücher abgeholt werden können.
</p>
<br>
<!--TODO: Event für den Button befindet sich momentan
noch hier in der Datei. Soll die Funktion in eine
andere Datei verschoben werden, da sich eigentlich keine
EventListener in der HTML-Datei befinden sollen?-->
<input type="button" id="loginNowButton" value="Jetzt anmelden"
onclick="linkToLoginPage()">
<script>
function linkToLoginPage() {
window.location.replace("anmelden_meinebuecher.html");
}
</script>
<br><br><br>
</div>
</div>
<!--------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

View File

@ -0,0 +1,94 @@
<?php
session_start();
header('Content-Type: text/html; charset=UTF-8');
require('registriersystem.php');
if(isset($_POST['Registrieren'])){
$vorname = $_POST["vorName"];
$nachname = $_POST['nachName'];
$strasse = $_POST['strasse'];
$hausnummer = $_POST['hausnummer'];
$plz = $_POST['postleitzahl'];
$ort = $_POST['ort'];
$emailrep = $_POST['emailRep'];
$email = $_POST['email'];
$passwort = $_POST['passwort'];
$passwortrep = $_POST['passwortRep'];
if(empty($vorname) || empty($nachname) || empty($strasse) ||
empty($hausnummer) || empty($plz) || empty($ort) ||
empty($emailrep) || empty($email) || empty($passwort) || empty($passwortrep))
{
header("Location: registrierung_wiederholen.php");
}elseif (!preg_match("/^[A-Za-zÄÖÜäöüß -]*$/", $vorname)
|| !preg_match("/.{2,}/", $vorname)
|| preg_match("/(?:([- ])\1{1,}|( -)|(- ))/", $vorname)
|| !preg_match("/^([A-ZÄÖÜa-zäöüß]{2,}[ -]?)+$/", $vorname)
|| !preg_match("/[a-zäöüß]$/", $vorname)
|| !preg_match("/^[A-ZÄÖÜ][a-zäöüß]+([- ][A-ZÄÖÜ][a-zäöüß]+)*$/", $vorname)
|| preg_match("/(\w)\1{2,}/", $vorname)) {
header("Location: registrierung_wiederholen.php");
}elseif (!preg_match("/^[A-Za-zÄÖÜäöüß -]*$/", $nachname)
|| !preg_match("/.{2,}/", $nachname)
|| preg_match("/([-])\1{1,}/", $nachname)
|| !preg_match("/^([A-ZÄÖÜa-zäöüß]{2,}[ -]?)+$/", $nachname)
|| !preg_match("/[a-zäöüß]$/", $nachname)
|| preg_match("/[A-ZÄÖÜ][a-zäöüß]+[ ]+[A-ZÄÖÜ][a-zäöüß]+/", $nachname)
|| !preg_match("/^(von( der)?|zu|van)[ ][A-ZÄÖÜ]|^[A-ZÄÖÜ]/", $nachname)
|| !preg_match("/(^(von( der)?|zu|van)[ ][A-ZÄÖÜ][a-zäöüß]+|^[A-ZÄÖÜ][a-zäöüß]+)([-][A-ZÄÖÜ][a-zäöüß]+)?$/", $nachname)
|| preg_match("/(\w)\1{2,}/", $nachname)) {
header("Location: registrierung_wiederholen.php");
}elseif ( !preg_match("/.{2,}/", $strasse)
|| !preg_match("/^[^0-9]*$|[0-9]$/", $strasse)
|| !preg_match("/^[A-Za-z0-9ÄÖÜäöüß' -]+$/", $strasse)
|| !preg_match("/^[A-ZÄÖÜ][ -]?[a-zäöü0-9ß']+([ -]?[A-ZÄÖÜ0-9][A-Za-z0-9ÄÖÜäöüß']+)*$/", $strasse)
|| !preg_match("/[0-9]$|[a-zäöüß]$/", $strasse)) {
header("Location: registrierung_wiederholen.php");
}elseif ( !preg_match("/^[0-9]/", $hausnummer)
|| preg_match("/^0/", $hausnummer)
|| !preg_match("/^[1-9][0-9]{0,3}[a-z]?$/", $hausnummer)){
header("Location: registrierung_wiederholen.php");
}elseif ( !preg_match("/^(0100[1-9]|010[1-9][0-9]|01[1-9][0-9]{2}|0[2-9][0-9]{3}|[1-9][0-9]{4})$/", $plz)){
header("Location: registrierung_wiederholen.php");
}elseif ( !preg_match("/.{2,}/", $ort)
|| preg_match("/[ \/-][ \/-]/", $ort)
|| !preg_match("/^[A-ZÄÖÜa-zäöüß \/-]+$/", $ort)
|| preg_match("/(\w)\1{2,}/", $ort)
|| !preg_match("/^[A-ZÄÖÜ]/", $ort)
|| !preg_match("/[a-zäöüß]$/", $ort)
|| !preg_match("/^[A-ZÄÖÜ][a-zäöüß]+([ -\/][A-ZÄÖÜa-zäöü][a-zäöüß]+)*$/", $ort)){
header("Location: registrierung_wiederholen.php");
}elseif ( !preg_match("/[A-Za-z0-9_!#$%&'*+-\/=?^_`.{|}~]+[@][A-Za-z0-9-]+[.][A-Za-z]{2,}/", $email)){
header("Location: registrierung_wiederholen.php");
}elseif($email != $emailrep){
header("Location: registrierung_wiederholen.php");
}elseif (!preg_match("/^(?=.*[A-ZÄÖÜ])(?=.*[a-zäöüß])(?=.*[0-9])(?=.*[!°`´@#$%^&*()_+\-=\[\]{};':\"\\|,.<>\/?]).{6,}$/", $passwort)
|| !preg_match("/.{6,}/", $passwort)){
header("Location: registrierung_wiederholen.php");
}elseif($passwort != $passwortrep){
header("Location: registrierung_wiederholen.php");
}else{
register($vorname,
$nachname ,
$email,
$passwort, $strasse, $hausnummer, $ort, $plz);
}
}
?>

View File

@ -48,6 +48,8 @@ function checkIfElementHasValue(element) {
|| regex_onlyWhitespaces.test(element.value)) {
return false;
}
else {
return true;
}
@ -247,7 +249,7 @@ function checkLastName() {
return false;
}
// Fehlermeldung Groß- und Kleinschreibung
else if (!(/(^(von( der)?|zu)[ ][A-ZÄÖÜ][a-zäöüß]+|^[A-ZÄÖÜ][a-zäöüß]+)([-][A-ZÄÖÜ][a-zäöüß]+)?$/.test(lastName.value))) {
else if (!(/(^(von( der)?|zu|van)[ ][A-ZÄÖÜ][a-zäöüß]+|^[A-ZÄÖÜ][a-zäöüß]+)([-][A-ZÄÖÜ][a-zäöüß]+)?$/.test(lastName.value))) {
showErrorMessage(lastName, 0,
"Jeder Teil eines Nachnamens, bis auf den möglichen Namenszusatz am Anfang, "
+ "muss mit einem Großbuchstaben beginnen. "
@ -585,7 +587,7 @@ function checkPassword() {
return false;
}
// Fehlermeldung Anzahl Zeichen
else if (!(/.{6,}/.test(password))) {
else if (!(/^.{6,}$/.test(password.value))) {
showErrorMessage(password, 0,
"Ihr Passwort muss eine Länge von mindestens sechs Zeichen haben.");
return false;
@ -630,7 +632,7 @@ function checkRepeat_Password() {
* Ist dies der Fall, werden die Daten verarbeitet
* und der Nutzer wird auf die Seite "Erfolgreich registriert" weitergeleitet.
*/
function checkForPossibleSubmit() {
/*function checkForPossibleSubmit() {
var firstName = checkFirstName();
var lastName = checkLastName();
var streetName = checkStreetName();
@ -644,7 +646,7 @@ function checkForPossibleSubmit() {
if (firstName && lastName && streetName && houseNumber && plz && city &&
emailAddress && repeatEmailAddress && password && repeatPassword) {
// TODO: Formular submitten.
window.location.replace("registrierung_erfolgreich.html");
window.location.replace("registrierung_erfolgreich.php");
}
else
@ -652,4 +654,4 @@ function checkForPossibleSubmit() {
// TODO: Soll irgendetwas passieren?
return false;
}
}
}*/

View File

@ -0,0 +1,81 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Erfolgreich Registriert</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<!--------------------------------------------------------------------->
<div class="mainContentContainer">
<div class="titleContainer">
<h1 id="registeredTitle">Fehler</h1>
</div>
<div class="mainContent">
<p id="textFirstHalf">
Füllen Sie bitte alle Felder aus.
</p>
<a type="button" id="loginNowButton" href="registrierung.php"> Erneut Versuchen </a>
<br><br><br>
</div>
</div>
<!--------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -1,93 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Reservierungsbestätigung</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div id="reservierung">
<h1>Reservierung erfolgreich bestätigt</h1>
<div id="reservierung-left">
<p id="erklärung">Ihre Reservierung wurde bestätigt. Einen Überblick über Ihre reservierten Bücher
sowie die Informationen darüber, ab wann ein Buch verfügbar ist und bis wann es spätestens abgeholt
werden muss, finden Sie auf der Seite "<a href="meinebuecher.html">Meine Bücher</a>".</p>
<div id="button-container">
<a href="meinebuecher.html">Meine Bücher</a>
</div>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

130
reservierung.css 100644
View File

@ -0,0 +1,130 @@
/*TODO: Hintergrundfarben entfernen*/
.hauptcontainer {
/*Einzelne Elemente untereinander anzeigen.*/
flex-direction: column;
}
#reservationConfirmation_heading {
/* background-color: #70AD47; */
margin-top: 30px;
margin-left: 30px;
margin-bottom: 25px;
margin-right: 50px;
font-weight: 500;
}
#reservationConfirmation_subHeading {
margin-left: 45px;
margin-bottom: 20px;
font-weight: 500;
font-size: 20px;
}
/*Container wird mit Daten aus der Datenbank gefüllt.*/
#booksToReserve_container {
padding-left: 45px;
padding-right: 50px;
padding-bottom: 30px;
}
.book_container {
/* background-color: blueviolet; */
display: flex;
/*Einzelne Elemente nebeneinander anzeigen.*/
flex-direction: row;
cursor: pointer;
}
.bookCover_container {
/*background-color: blue;*/
display: flex;
/*Verbietet dem Container, seine Standardgröße (px) zu ändern.*/
flex: 0 0 75px;
align-items: center;
height: auto;
}
.bookCover {
/*Bild passt sich seinem Container an.*/
max-width:100%;
max-height:100%;
}
.bookDetails_container {
/* background-color: aquamarine; */
width: 100%;
display: flex;
flex-direction: column;
padding-left: 15px;
padding-right: 15px;
}
.bookTitle {
margin-bottom: 10px;
font-weight: 500;
font-size: 16px;
}
.available_container {
width: fit-content;
/*Hintergrundfarbe wird an Inhalt angepasst.*/
background-color: #70AD47;
/*background-color: #F34343;*/
/*Element immer an der unteren Seite des Containers platzieren.*/
margin-top: auto;
}
.available {
color: white;
margin: 10px 25px;
}
.divider {
margin-top: 15px;
margin-bottom: 15px;
background-color: #987554;
width: 100%;
height: 1px;
}
#reservationConfirmationText {
margin-left: 45px;
margin-right: 50px;
}
#meinebuecher_link {
color: inherit;
}
#button_container {
margin-top: 20px;
padding-left: 45px;
padding-right: 50px;
margin-bottom: 50px;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.reserve_button {
background-color: #664220;
color:white;
text-align: center;
border-radius: 10px;
font-size: medium;
border-width: 0px;
padding: 15px;
}
#backToCart_button {
margin-right: auto;
cursor: pointer;
}
#confirm_button {
margin-left: auto;
cursor: pointer;
}

242
reservierung.php 100644
View File

@ -0,0 +1,242 @@
<!--
TODO (optional):
- 80 Zeichen
-->
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="reservierung.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Reservierungsbestätigung</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<!------------------------------------------------------------------------->
<div class="hauptcontainer">
<h1 id="reservationConfirmation_heading">Reservierungsbestätigung</h1>
<h2 id="reservationConfirmation_subHeading">
Möchten Sie die folgenden Bücher reservieren?
</h2>
<div id="booksToReserve_container">
<?php
session_start();
// Counter für Divider
$counter = 0;
// Überprüfen, ob Bücher im Warenkorb liegen
if(isset($_SESSION['cart']) && !empty($_SESSION['cart'])) {
// Es liegen Bücher im Warenkorb
// Alle Elemente im Warenkorb durchgehen
foreach ($_SESSION["cart"] as $key=>$item) {
$quantity = $item['quantity'];
$sql = '';
$servername = "localhost";
$username = "web_b-3";
$password = "een7Ao6s";
$dbname = "bibliothek_candle";
$connection =
mysqli_connect($servername, $username, $password, $dbname);
if (!$connection) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
/* SQL-Befehl vorbereiten */
$sql = $connection->prepare("SELECT b.BuchID, b.Titel,
b.Bild,
IF(b.Anzahl!=0, 'Verfügbar', CONCAT('Verfügbar ab: ',
(SELECT DATE_FORMAT(DATE_ADD(ab.Enddatum, INTERVAL 1 DAY)
,'%d.%m.%Y') FROM `ausgeliehenes_buch` AS ab
WHERE ab.BuchID = b.BuchID
ORDER BY ab.Reserviert ASC, ab.Enddatum ASC LIMIT 1)))
AS 'Verfügbarkeit' FROM `buch` AS b
WHERE b.BuchID = ?
GROUP BY b.BuchID;");
// Parameter binden
$sql->bind_param("i", $ID);
// ID festlegen
$ID = $key;
// SQL-Befehl ausführen
$sql->execute();
// Ergebnis speichern
$result = $sql->get_result();
if ($counter != 0) {
echo "<div class='divider'></div>";
}
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$bookID = $row['BuchID'];
$bookCover = $row['Bild'];
$bookTitle = $row['Titel'];
$bookAuthor = $row['Autor'];
$bookAvailability = $row['Verfügbarkeit'];
// TODO: OnClick auslagern.
echo "<div id='book_container$bookID' class='book_container'
onclick='open_bookDetails(this.id)'>
<div class='bookCover_container'>
<img class='bookCover'
src='book_covers/$bookCover'
alt='Kein Bild vorhanden'>
</div>
<div class='bookDetails_container'>
<h2 class='bookTitle'>$bookTitle</h2>
<div class='available_container'>
<p id='available_$bookID' class='available'>
$bookAvailability</p>
<!--TODO: Auslagern-->
<script type='text/javascript'
language='JavaScript'>
(function() {
var currentElement = document.
getElementById('available_$bookID');
var parentDiv =
currentElement.parentElement;
if (currentElement.innerHTML.trim()
== 'Verfügbar') {
parentDiv.style.backgroundColor
= '#70AD47';
}
else {
parentDiv.style.backgroundColor
= '#F34343';
}
})();
</script>
</div>
</div>
</div>";
$counter++;
}
} else {
echo "Keine Ergebnisse.";
}
if (!$result) {
die("Ungültige SQL-Abfrage: " . mysqli_connect_error());
}
mysqli_close($connection);
$counter++;
}
}
else {
// Es liegen keine Bücher im Warenkorb
echo
"Der Warenkorb ist leer,
bitte fügen Sie Bücher hinzu.";
}
?>
</div>
<p id="reservationConfirmationText">Bitte beachten Sie,
dass die Reservierung für ein Buch automatisch verfällt,
sollten Sie es nicht innerhalb von 7 Tagen abholen.
<br>
Die Informationen darüber, ab wann ein Buch verfügbar ist
und bis wann es spätestens abgeholt werden muss,
finden Sie nach einer erfolgreichen Reservierung auf der Seite
<a id="meinebuecher_link" href="meinebuecher.php">
„Meine Bücher“</a>.
</p>
<div id="button_container">
<input id="backToCart_button" class="reserve_button" type="button"
onclick="open_cart()" value="Zurück zum Warenkorb">
<input id="confirm_button" class="reserve_button" type="button"
onclick="open_reservationConfirmation()" value="Bestätigen">
</div>
</div>
<!------------------------------------------------------------------------->
<!-- TODO: Auslagern (falls möglich) -->
<script>
function open_bookDetails(ID) {
var data = new URLSearchParams();
data.append("bookID", ID);
var url = "http://141.19.142.11/buch_details.php?" +
data.toString();
location.href = url;
}
function open_reservationConfirmation() {
var url = "http://141.19.142.11/reservierung_bestaetigung.php";
location.href = url;
}
function open_cart() {
var url = "http://141.19.142.11/warenkorb.php";
location.href = url;
}
</script>
<!------------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big,
it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -0,0 +1,357 @@
<!--
TODO:
- 80 Zeichen
-->
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Reservierungsbestätigung</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<?php
session_start();
// Benutzer ID abholen
//$userID = ?;
$userID = $_SESSION['userID'];
// Überprüfen, ob Bücher im Warenkorb liegen
if(isset($_SESSION['cart']) && !empty($_SESSION['cart'])) {
// Jedes Buch im Warenkorb durchgehen
foreach ($_SESSION["cart"] as $key=>$item) {
// Ausgewählte Menge speichern
$quantity = $item['quantity'];
$sql = '';
$servername = "localhost";
$username = "web_b-3";
$password = "een7Ao6s";
$dbname = "bibliothek_candle";
$connection =
mysqli_connect($servername, $username, $password, $dbname);
if (!$connection) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
/* SQL-Befehl vorbereiten */
$sql = $connection->prepare("SELECT b.BuchID, b.Anzahl,
b.MaxAnzahl
FROM `buch` AS b
WHERE b.BuchID = ?
GROUP BY b.BuchID;");
// Parameter binden
$sql->bind_param("i", $ID);
// ID festlegen
$ID = $key;
// SQL-Befehl ausführen
$sql->execute();
// Ergebnis speichern
$result = $sql->get_result();
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$bookID = $row['BuchID'];
$bookQuantity = $row['Anzahl'];
$bookMaxQuantity = $row['MaxAnzahl'];
$quantityNew = $quantity;
// Überprüfen, ob die ausgewählte Menge vorhanden ist
if ($bookQuantity == 0) {
// Alle Bücher ausgeliehen
$sqlSearch = $connection->prepare(
"SELECT AusleihID,
Enddatum,
Reserviert
FROM `ausgeliehenes_buch`
WHERE BuchID=?
AND Reserviert=0
ORDER BY `Enddatum` LIMIT ?;");
// Parameter binden
$sqlSearch->bind_param("ii", $bookID, $quantity);
// SQL-Befehl ausführen
$sqlSearch->execute();
// Ergebnis speichern
$resultSearch = $sqlSearch->get_result();
// Alle Ergebnisse durchgehen
while($rowSearch = mysqli_fetch_assoc($resultSearch)) {
$borrowID = $rowSearch['AusleihID'];
$borrowEndDate = $rowSearch['Enddatum'];
//Buch zu `ausgeliehenes_buch` hinzufügen
$sqlInsert =
"INSERT INTO `ausgeliehenes_buch`
(`AusleihID`, `BenutzerID`, `BuchID`,
`Anfangsdatum`, `Enddatum`, `Verlängerbar`,
`Reserviert`)
VALUES
(NULL, '$userID', '$bookID',
DATE_ADD('$borrowEndDate', INTERVAL 1 DAY),
DATE_ADD(
DATE_ADD('$borrowEndDate', INTERVAL 1 DAY),
INTERVAL 14 DAY),
'1', '0');";
mysqli_query($connection, $sqlInsert);
// Anzahl des Buches in der Datenbank reduzieren
$sqlUpdate = $connection->prepare(
"UPDATE `ausgeliehenes_buch`
SET `Verlängerbar` = '0',
`Reserviert` = '1'
WHERE `AusleihID` = ?;");
// Parameter binden
$sqlUpdate->bind_param("i", $borrowID);
// SQL-Befehl ausführen
$sqlUpdate->execute();
}
}
else if ($quantity <= $bookQuantity) {
// Ausgewählte Menge ist komplett vorhanden
// Alle gleichen Bücher in die Datenbank einfügen
while ($quantityNew != 0) {
// Buch zu `ausgeliehenes_buch` hinzufügen
$sqlInsert =
"INSERT INTO `ausgeliehenes_buch`
(`AusleihID`, `BenutzerID`, `BuchID`,
`Anfangsdatum`, `Enddatum`, `Verlängerbar`,
`Reserviert`)
VALUES
(NULL, '$userID', '$bookID', CURDATE(),
DATE_ADD(CURDATE(), INTERVAL 14 DAY),
'1', '0'); ";
mysqli_query($connection, $sqlInsert);
$quantityNew--;
}
$bookQuantityNew = $bookQuantity - $quantity;
// Anzahl des Buches in der Datenbank reduzieren
$sqlReduce = $connection->prepare(
"UPDATE `buch`
SET `Anzahl` = '$bookQuantityNew'
WHERE `buch`.`BuchID` = ?;");
// Parameter binden
$sqlReduce->bind_param("i", $bookID);
// SQL-Befehl ausführen
$sqlReduce->execute();
}
else if ($quantity > $bookQuantity) {
// Bücher, welche noch vorhanden sind
// Alle gleichen Bücher in die Datenbank einfügen
$quantityNew = $quantity - $bookQuantity;
$quantityRest = $quantity;
while ($quantityNew != 0) {
//Buch zu `ausgeliehenes_buch` hinzufügen
$sqlInsert =
"INSERT INTO `ausgeliehenes_buch`
(`AusleihID`, `BenutzerID`, `BuchID`,
`Anfangsdatum`, `Enddatum`, `Verlängerbar`,
`Reserviert`)
VALUES
(NULL, '$userID', '$bookID', CURDATE(),
DATE_ADD(CURDATE(), INTERVAL 14 DAY),
'1', '0'); ";
mysqli_query($connection, $sqlInsert);
$quantityNew--;
$quantityRest--;
}
$bookQuantityNew =
$bookQuantity - ($quantity - $bookQuantity);
// Anzahl des Buches in der Datenbank reduzieren
$sqlReduce = $connection->prepare(
"UPDATE `buch`
SET `Anzahl` = '$bookQuantityNew'
WHERE `buch`.`BuchID` = ?;");
// Parameter binden
$sqlReduce->bind_param("i", $bookID);
// SQL-Befehl ausführen
$sqlReduce->execute();
// Bücher, welche bereits ausgeliehen wurden
$sqlSearch = $connection->prepare(
"SELECT AusleihID,
Enddatum,
Reserviert
FROM `ausgeliehenes_buch`
WHERE BuchID=?
AND Reserviert=0
ORDER BY `Enddatum` LIMIT ?;");
// Parameter binden
$sqlSearch->bind_param("ii", $bookID, $quantityRest);
// SQL-Befehl ausführen
$sqlSearch->execute();
// Ergebnis speichern
$resultSearch = $sqlSearch->get_result();
// Alle Ergebnisse durchgehen
while($rowSearch = mysqli_fetch_assoc($resultSearch)) {
$borrowID = $rowSearch['AusleihID'];
$borrowEndDate = $rowSearch['Enddatum'];
//Buch zu `ausgeliehenes_buch` hinzufügen
$sqlInsert =
"INSERT INTO `ausgeliehenes_buch`
(`AusleihID`, `BenutzerID`, `BuchID`,
`Anfangsdatum`, `Enddatum`, `Verlängerbar`,
`Reserviert`)
VALUES
(NULL, '$userID', '$bookID',
DATE_ADD('$borrowEndDate', INTERVAL 1 DAY),
DATE_ADD(
DATE_ADD('$borrowEndDate', INTERVAL 1 DAY),
INTERVAL 14 DAY),
'1', '0');";
mysqli_query($connection, $sqlInsert);
// Anzahl des Buches in der Datenbank reduzieren
$sqlUpdate = $connection->prepare(
"UPDATE `ausgeliehenes_buch`
SET `Verlängerbar` = '0',
`Reserviert` = '1'
WHERE `AusleihID` = ?;");
// Parameter binden
$sqlUpdate->bind_param("i", $borrowID);
// SQL-Befehl ausführen
$sqlUpdate->execute();
}
}
}
} else {
echo "Buch konnte nicht gefunden werden.";
}
mysqli_close($connection);
// Buch aus dem Warenkorb löschen
// Überprüfen, ob das Buch im Warenkorb liegt
if (isset($_SESSION['cart'][$bookID])) {
// Buch existiert im Warenkorb, kann gelöscht werden
unset($_SESSION['cart'][$bookID]);
}
}
}
?>
<div id="reservierung">
<h1>Reservierung erfolgreich bestätigt</h1>
<div id="reservierung-left">
<p id="erklärung">Ihre Reservierung wurde bestätigt. Einen Überblick über Ihre reservierten Bücher
sowie die Informationen darüber, ab wann ein Buch verfügbar ist und bis wann es spätestens abgeholt
werden muss, finden Sie auf der Seite "<a href="meinebuecher.php">Meine Bücher</a>".</p>
<div id="button-container">
<a href="meinebuecher.php">Meine Bücher</a>
</div>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -9,29 +9,45 @@
<title>Candle Bibliothek | Reservierung</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
</header>
@ -70,11 +86,11 @@
<p id="erklärung">Bitte beachten Sie, dass die Reservierung für ein Buch automatisch verfällt, sollten Sie es nicht
innerhalb von 7 Tagen abholen.</br>
Die Informationen darüber, ab wann ein Buch verfügbar ist und bis wann es spätestens abgeholt werden muss,
finden Sie nach einer erfolgreichen Reservierung auf der Seite "<a href="meinebuecher.html">Meine Bücher</a>".
finden Sie nach einer erfolgreichen Reservierung auf der Seite "<a href="meinebuecher.php">Meine Bücher</a>".
</p>
<div id="button-container">
<a href="warenkorb.html">Zurück zum Warenkorb</a>
<a href="warenkorb.php">Zurück zum Warenkorb</a>
<a href="reservierung-bestaetigung.html">Bestätigen</a>
</div>
@ -89,36 +105,11 @@
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
<script src="resize.js"></script>
</script>
<nav id="activeid" class="active"></nav>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

16
reset_counter.php 100644
View File

@ -0,0 +1,16 @@
<?php
$db_link = mysqli_connect('localhost', 'web_b-3', 'een7Ao6s', 'bibliothek_candle', '3306');
function runSQL($sql){
global $db_link;
$db_res = mysqli_query($db_link, $sql);
if(!$db_res){
header("Location: 404.html");
exit;
}
return $db_res;
}
runSQL("ALTER TABLE `benutzer` AUTO_INCREMENT = 1");
runSQL("ALTER TABLE `adresse` AUTO_INCREMENT = 1");
?>

8
resize.js 100644
View File

@ -0,0 +1,8 @@
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})

View File

@ -232,9 +232,16 @@ body{
top: 250px;
left: 60px;
}
.impressum-container h1 {
margin-bottom: 60px;
font-style: italic;
}
.impressum-container h2 {
font-style: italic;
}
.impressum-container p {
margin-bottom: 30px;
}
@ -253,7 +260,7 @@ body{
overflow-y: scroll;
position:absolute;
display:flex;
height: 62%;
height: 71%;
width: 100%;
top:200px;
}
@ -417,16 +424,18 @@ body{
left: 20px;
top: 380px;
width: 120px;
height: 35px;
font-size: 16px;
background-color:#664220 ;
color:rgb(255, 255, 255);
padding-right:10px;
padding-left: 8px;
padding-top: 15px;
padding-bottom: 0px;
padding-bottom: 15px;
text-align: center;
text-decoration: none;
border-radius: 8px;
border: none;
cursor: pointer;
}
@ -434,7 +443,7 @@ body{
position: absolute;
left: 180px;
top: 380px;
width: 220px;
width: 180px;
height: 35px;
background-color:#664220 ;
color:rgb(255, 255, 255);
@ -1232,6 +1241,7 @@ input[type=number] {
border-radius: 8px;
border: none;
cursor: pointer;
text-decoration: none;
}
/*----- Registrierung erfolgreich Ende -----*/
@ -1727,9 +1737,8 @@ input[type=number] {
}
/*Reposition*/
#erweitertesuche{
position: fixed;
right: 60px;
top: 15px;
opacity: 0;
pointer-events: none;
}
/*Burger Icon creation and position*/

146
suchergebnisse.css 100644
View File

@ -0,0 +1,146 @@
/*TODO: Hintergrundfarben entfernen*/
.hauptcontainer {
/*Einzelne Elemente untereinander anzeigen.*/
flex-direction: column;
}
#searchResult_heading {
/* background-color: #70AD47; */
margin-top: 30px;
margin-left: 30px;
margin-bottom: 25px;
margin-right: 50px;
font-weight: 500;
}
/*Container wird mit Daten aus der Datenbank gefüllt.*/
#searchResult_container {
padding-left: 45px;
padding-right: 50px;
padding-bottom: 50px;
}
.book_container {
/* background-color: blueviolet; */
display: flex;
/*Einzelne Elemente nebeneinander anzeigen.*/
flex-direction: row;
cursor: pointer;
}
.bookCover_container {
/*background-color: blue;*/
display: flex;
/*Verbietet dem Container, seine Standardgröße (px) zu ändern.*/
flex: 0 0 150px;
align-items: center;
height: auto;
}
.bookCover {
/*Bild passt sich seinem Container an.*/
max-width:100%;
max-height:100%;
}
.bookDetails_container {
/* background-color: aquamarine; */
width: 100%;
display: flex;
flex-direction: column;
padding-left: 15px;
padding-right: 15px;
}
.bookTitle {
margin-bottom: 10px;
font-weight: 400;
}
.bookDetails {
margin-bottom: 10px;
}
.available_container {
width: fit-content;
/*Hintergrundfarbe wird an Inhalt angepasst.*/
background-color: #70AD47;
/*background-color: #F34343;*/
/*Element immer an der unteren Seite des Containers platzieren.*/
margin-top: auto;
}
.available {
color: white;
margin: 10px 25px;
}
.shoppingCart_container {
/* background-color: chartreuse; */
margin-left: auto;
margin-top: auto;
flex: 0 0 40px;
}
.shoppingCart {
background-image: url('pictures/shopping_cart.png');
width: 40px;
height: 40px;
background-size: contain;
background-repeat: no-repeat;
}
.shoppingCart:hover {
background-image: url('pictures/shopping_cart_hover.png');
cursor: pointer;
}
.bin_container {
/* background-color: chartreuse; */
margin-left: auto;
margin-top: auto;
flex: 0 0 40px;
}
.bin {
background-image: url('pictures/bin.png');
width: 40px;
height: 40px;
background-size: contain;
background-repeat: no-repeat;
}
.bin:hover {
background-image: url('pictures/bin_hover.png');
cursor: pointer;
}
.extend {
background-image: url('pictures/extend.png');
width: 40px;
height: 40px;
background-size: contain;
background-repeat: no-repeat;
}
.extend:hover {
background-image: url('pictures/extend_hover.png');
cursor: pointer;
}
.placeholder_container {
/* background-color: chartreuse; */
margin-left: auto;
margin-top: auto;
flex: 0 0 40px;
}
.divider {
margin-top: 15px;
margin-bottom: 15px;
background-color: #987554;
width: 100%;
height: 1px;
}

339
suchergebnisse.php 100644
View File

@ -0,0 +1,339 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="suchergebnisse.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Suchergebnisse</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<!------------------------------------------------------------------------->
<div class="hauptcontainer">
<h1 id="searchResult_heading">Suchergebnisse</h1>
<div id="searchResult_container">
<?php
$sql = '';
$sourceForm = $_GET['searchType'];
// Überprüfen, welches Formular die Datei aufgerufen hat
if ($sourceForm == "simple") {
// Einfache Suche
// Eingegebene Daten in einer Variable speichern
$searchQuery = $_GET['searchFor'];
// Mögliche Whitspaces hinten und vorne entfernen
$searchQuery = trim($searchQuery, " \t\n\r\0\x0B");
// SQL-Befehl zusammenstellen
$sql = "SELECT b.BuchID, b.Titel, b.Erscheinungsjahr, b.Bild,
b.Verlag,
GROUP_CONCAT(DISTINCT CONCAT(a.VorName, ' ', a.NachName)
SEPARATOR ', ') AS 'Autor',
GROUP_CONCAT(DISTINCT k.Name SEPARATOR ', ') AS 'Kategorie',
b.ISBN, b.Klappentext AS 'Inhalt', sp.Bezeichnung AS 'Sprache',
GROUP_CONCAT(DISTINCT st.Text SEPARATOR ', ') AS 'Stichwort',
IF(b.Anzahl!=0, 'Verfügbar', CONCAT('Verfügbar ab: ',
(SELECT DATE_FORMAT(DATE_ADD(ab.Enddatum, INTERVAL 1 DAY)
,'%d.%m.%Y') FROM `ausgeliehenes_buch` AS ab
WHERE ab.BuchID = b.BuchID
ORDER BY ab.Reserviert ASC, ab.Enddatum ASC LIMIT 1)))
AS 'Verfügbarkeit' FROM `buch` AS b
INNER JOIN `buch_verfasst_von_autor` AS bvva
ON b.BuchID = bvva.BuchID
INNER JOIN `autor` AS a ON bvva.AutorNr = a.AutorNr
INNER JOIN `buch_hat_kategorie` AS bhk ON bhk.BuchID = b.BuchID
INNER JOIN `kategorie` AS k ON k.KategorieID = bhk.KategorieID
INNER JOIN `sprache` AS sp ON sp.SprachenID = b.SprachenID
INNER JOIN `buch_hat_stichwort` AS bhs ON bhs.BuchID = b.BuchID
INNER JOIN `stichwort` AS st ON st.StichwortID = bhs.StichwortID
GROUP BY b.BuchID
HAVING b.Titel LIKE '%$searchQuery%'
OR b.Erscheinungsjahr LIKE '%$searchQuery%'
OR b.Verlag LIKE '%$searchQuery%'
OR Autor LIKE '%$searchQuery%'
OR Kategorie LIKE '%$searchQuery%'
OR Inhalt LIKE '%$searchQuery%'
OR Sprache LIKE '%$searchQuery%'
OR Stichwort LIKE '%$searchQuery%';";
}
else if ($sourceForm == "extended") {
// Erweiterte Suche
// Eingegebene Daten in Variablen speichern
$dropdown1 = $_GET['dropdown1'];
$search1 = $_GET['search1'];
// Mögliche Whitspaces hinten und vorne entfernen
$search1 = trim($search1, " \t\n\r\0\x0B");
$andOr1 = $_GET['and_or1'];
if ($andOr1 == 'und') {
$andOr1 = 'AND';
}
else {
$andOr1 = 'OR';
}
$dropdown2 = $_GET['dropdown2'];
$search2 = $_GET['search2'];
// Mögliche Whitspaces hinten und vorne entfernen
$search2 = trim($search2, " \t\n\r\0\x0B");
$andOr2 = $_GET['and_or2'];
if ($andOr2 == 'und') {
$andOr2 = 'AND';
}
else {
$andOr2 = 'OR';
}
$dropdown3 = $_GET['dropdown3'];
$search3 = $_GET['search3'];
// Mögliche Whitspaces hinten und vorne entfernen
$search3 = trim($search3, " \t\n\r\0\x0B");
$startYear = $_GET['Buchdatum1'];
$startYear = substr($startYear, 0, 4);
$endYear = $_GET['Buchdatum2'];
$endYear = substr($endYear, 0, 4);
$yearQuery = '';
// Nur Startjahr
if ($startYear && !$endYear) {
$yearQuery = "WHERE b.Erscheinungsjahr > $startYear";
}
// Nur Endjahr
else if (!$startYear && $endYear) {
$yearQuery = "WHERE b.Erscheinungsjahr < $endYear";
}
// Start- und Endjahr
else if ($startYear && $endYear) {
$yearQuery = "WHERE b.Erscheinungsjahr
BETWEEN $startYear AND $endYear";
}
$language = $_GET['language'];
if ($language == 'Alle Sprachen') {
$language = '%%';
}
$available = isset($_GET['status']);
if ($available) {
$available = 'Verfügbar';
}
else {
$available = '%%';
}
// SQL-Befehl zusammenstellen
$sql = "SELECT b.BuchID, b.Titel, b.Erscheinungsjahr, b.Bild,
b.Verlag,
GROUP_CONCAT(DISTINCT CONCAT(a.VorName, ' ', a.NachName)
SEPARATOR ', ') AS 'Autor',
GROUP_CONCAT(DISTINCT k.Name SEPARATOR ', ') AS 'Kategorie',
b.ISBN, b.Klappentext AS 'Inhalt', sp.Bezeichnung AS 'Sprache',
GROUP_CONCAT(DISTINCT st.Text SEPARATOR ', ') AS 'Stichwort',
IF(b.Anzahl!=0, 'Verfügbar', CONCAT('Verfügbar ab: ',
(SELECT DATE_FORMAT(DATE_ADD(ab.Enddatum, INTERVAL 1 DAY)
,'%d.%m.%Y') FROM `ausgeliehenes_buch` AS ab
WHERE ab.BuchID = b.BuchID
ORDER BY ab.Reserviert ASC, ab.Enddatum ASC LIMIT 1)))
AS 'Verfügbarkeit' FROM `buch` AS b
INNER JOIN `buch_verfasst_von_autor` AS bvva
ON b.BuchID = bvva.BuchID
INNER JOIN `autor` AS a ON bvva.AutorNr = a.AutorNr
INNER JOIN `buch_hat_kategorie` AS bhk ON bhk.BuchID = b.BuchID
INNER JOIN `kategorie` AS k ON k.KategorieID = bhk.KategorieID
INNER JOIN `sprache` AS sp ON sp.SprachenID = b.SprachenID
INNER JOIN `buch_hat_stichwort` AS bhs ON bhs.BuchID = b.BuchID
INNER JOIN `stichwort` AS st ON st.StichwortID = bhs.StichwortID
$yearQuery
GROUP BY b.BuchID
HAVING $dropdown1 LIKE '%$search1%'
$andOr1 $dropdown2 LIKE '%$search2%'
$andOr2 $dropdown3 LIKE '%$search3%'
AND Sprache LIKE '$language'
AND Verfügbarkeit LIKE '$available';";
}
else {
// Form wurde nicht erkannt
}
$servername = "localhost";
$username = "web_b-3";
$password = "een7Ao6s";
$dbname = "bibliothek_candle";
$connection =
mysqli_connect($servername, $username, $password, $dbname);
if (!$connection) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
$result = mysqli_query($connection, $sql);
$counter = 0;
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$bookID = $row['BuchID'];
$bookCover = $row['Bild'];
$bookTitle = $row['Titel'];
$bookPublishingYear = $row['Erscheinungsjahr'];
$bookPublisher = $row['Verlag'];
$bookAuthor = $row['Autor'];
$bookCategory = $row['Kategorie'];
$bookAvailability = $row['Verfügbarkeit'];
if ($counter != 0) {
echo "<div class='divider'></div>";
}
// TODO: OnClick Event auslagern
echo "<div id='book_container$bookID' class='book_container'
onclick='open_bookDetails(this.id)'>
<div class='bookCover_container'>
<img class='bookCover'
src='book_covers/$bookCover'
alt='Kein Bild vorhanden'>
</div>
<div class='bookDetails_container'>
<h2 class='bookTitle'>$bookTitle</h2>
<div class='bookDetails'>
<p class='author'>Verfasser: $bookAuthor</p>
<p class='publishing_year'>
Erscheinungsjahr: $bookPublishingYear</p>
<p class='publisher'>
Verlag: $bookPublisher</p>
<p class='category'>
Kategorie: $bookCategory</p>
</div>
<div class='available_container'>
<p id='available_$bookID' class='available'>
$bookAvailability</p>
<!--TODO: Auslagern-->
<script type='text/javascript'
language='JavaScript'>
(function() {
var currentElement = document.
getElementById('available_$bookID');
var parentDiv =
currentElement.parentElement;
if (currentElement.innerHTML.trim()
== 'Verfügbar') {
parentDiv.style.backgroundColor
= '#70AD47';
}
else {
parentDiv.style.backgroundColor
= '#F34343';
}
})();
</script>
</div>
</div>
<!--TODO: OnClick Event auslagern-->
<div class='shoppingCart_container'
id='shoppingCart$bookID'
onclick='addBookToCart(this.id)'>
<div class='shoppingCart'></div>
</div>
</div>";
$counter++;
}
} else {
echo "Keine Ergebnisse.";
}
if (!$result) {
die("Ungültige SQL-Abfrage: " . mysqli_connect_error());
}
mysqli_close($connection);
?>
</div>
</div>
<!------------------------------------------------------------------------->
<!-- TODO: Auslagern (falls möglich) -->
<script>
function open_bookDetails(ID) {
var data = new URLSearchParams();
data.append("bookID", ID);
var url = "http://141.19.142.11/buch_details.php?" +
data.toString();
location.href = url;
}
function addBookToCart(ID) {
// OnClick Event für open_bookDetails stoppen
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
// ID abtrennen
ID = ID.replace('shoppingCart', '');
var request = new XMLHttpRequest();
request.open('POST',
'http://141.19.142.11/warenkorb_funktionen.php', true);
// TODO: Handler erstellen
request.onload = function() {
console.log(this.responseText);
}
request.setRequestHeader('Content-type',
'application/x-www-form-urlencoded');
request.send(`function=addBookToCart&id=${ID}`);
}
</script>
<!------------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big,
it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -1,88 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Über Uns</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="homepage">
<img src="pictures/sidecandle.png" id="sidecandle" alt="sidecandle">
<p class="p2">
<span id="titlebraun"><strong> &Uuml;ber uns</strong></span>
<br><br>
In einer Zeit, die von Digitalisierung dominiert wird, werden immer mehr physische
Medien in digitale Systeme integriert. <br> Auch wenn dieses Phänomen auf den ersten Blick nur positiv erscheint,
zieht es auch große Nachteile mit sich. So ist zum Beispiel nicht jeder Mensch in der finanziellen Lage,
sich die nötigen technischen Geräte zu leisten. <br>Selbst wenn die Technik vorhanden ist, kann oder will nicht jeder damit umgehen,
manche haben vielleicht sogar gesundheitliche Probleme, die es Ihnen nicht ermöglichen,
für längere Zeit auf einem Bildschirm zu schauen. <br>
Unsere Bibliothek Candle hat es sich deshalb zum Ziel gesetzt, Bücher in einem greifbaren Zustand anzubieten.
Ob „Hamlet“, „Harry Potter“ oder „Der große Gatsby“, bei uns kommt jeder Bücherwurm auf den Geschmack.
</p>
</div>
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

95
uberuns.php 100644
View File

@ -0,0 +1,95 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="suchergebnisse.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Suchergebnisse</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<!------------------------------------------------------------------------->
<div class="homepage">
<img src="pictures/sidecandle.png" id="sidecandle" alt="sidecandle">
<p class="p2">
<span id="titlebraun"><strong> &Uuml;ber uns</strong></span>
<br><br>
In einer Zeit, die von Digitalisierung dominiert wird,
werden immer mehr physische
Medien in digitale Systeme integriert.
<br>
Auch wenn dieses Phänomen auf den ersten Blick
nur positiv erscheint, zieht es auch große Nachteile mit sich.
So ist zum Beispiel nicht jeder Mensch in der finanziellen Lage,
sich die nötigen technischen Geräte zu leisten.
<br>
Selbst wenn die Technik vorhanden ist,
kann oder will nicht jeder damit umgehen,
manche haben vielleicht sogar gesundheitliche Probleme,
die es Ihnen nicht ermöglichen,
für längere Zeit auf einem Bildschirm zu schauen.
<br>
Unsere Bibliothek Candle hat es sich deshalb zum Ziel gesetzt,
Bücher in einem greifbaren Zustand anzubieten.
Ob „Hamlet“, „Harry Potter“ oder „Der große Gatsby“,
bei uns kommt jeder Bücherwurm auf den Geschmack.
</p>
</div>
<!------------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big,
it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -1,97 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Verlängerung</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="hauptcontainer" id="verlängerung">
<h1 id="verlängerungH1">Buch verlängern</h1>
<div id="verlängerungContent">
<p id="möchten-sie">Möchten Sie das folgende Buch um 7 Tage verlängern?</p>
<div class="item" id="verlängerungItem">
<img src="pictures/es.jpg" alt="Es" height="200">
<div class="beschreibung">
<h2>Es</h2>
<h3>von Stephen King</h3>
<div class="b2 green">Rückgabe am: 03.05.2023</div>
</div>
</div>
<div id="verlängerungButtonContainer">
<a id = "verlängerungButton1" href="verlaengerungErfolgreich.html">Bestätigen</a>
<a id = "verlängerungButton2" href="meinebuecher.html">Abbrechen</a>
</div>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

212
verlaengerung.php 100644
View File

@ -0,0 +1,212 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="suchergebnisse.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Verlängerung Meine Bücher</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<div class="hauptcontainer"id="verlängerung">
<h1 id="verlängerungH1">Buch verlängern</h1>
<div id="verlängerungContent">
<p id="möchten-sie">Möchten Sie das folgende Buch um 7 Tage verlängern?</p>
<div id="searchResult_container">
<?php
$servername = "localhost";
$username = "web_b-3";
$password = "een7Ao6s";
$dbname = "bibliothek_candle";
$connection =
mysqli_connect($servername, $username, $password, $dbname);
if (!$connection) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
/* SQL-Befehl vorbereiten */
$sql = $connection->prepare("SELECT ab.AusleihID, ab.BuchID, b.Titel, b.Bild, ab.Verlängerbar, DATE_FORMAT(ab.Anfangsdatum, '%d.%m.%Y') as Anfangsdatum, DATE_FORMAT(ab.Enddatum, '%d.%m.%Y') as Enddatum,
GROUP_CONCAT(DISTINCT CONCAT(a.VorName, ' ', a.NachName)
SEPARATOR ', ') AS 'Autor',
IF(
(SELECT ausgeliehenes_buch.Anfangsdatum FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID) = Curdate(), 'Sofort Abholbereit',
(
IF(
(SELECT ausgeliehenes_buch.Anfangsdatum FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID) > Curdate(),
CONCAT(
'Abholbereit am: ', (
SELECT DATE_FORMAT(
ausgeliehenes_buch.Anfangsdatum , '%d.%m.%Y'
) FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID
)
)
, CONCAT(
'Rückgabe am: ', (
SELECT DATE_FORMAT(
ausgeliehenes_buch.Enddatum , '%d.%m.%Y'
) FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID
)
))
)
)
AS 'Verfügbarkeit'
FROM ausgeliehenes_buch AS ab
INNER JOIN buch as b
ON ab.BuchID = b.BuchID
INNER JOIN `buch_verfasst_von_autor` AS bvva
ON b.BuchID = bvva.BuchID
INNER JOIN `autor` AS a ON bvva.AutorNr = a.AutorNr
WHERE ab.AusleihID=?
GROUP BY ab.AusleihID;;");
// Parameter binden
$sql->bind_param("i", $ID);
// Übergebene ID des angeklickten Container speichern
$containerID = $_GET['ausleihID'];
// Buch ID abtrennen
$ID = str_replace('placeholder_container', '', $containerID);
// SQL-Befehl ausführen
$sql->execute();
// Ergebnis speichern
$result = $sql->get_result();
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$bookID = $row['BuchID'];
$ausleihID = $row['AusleihID'];
$bookCover = $row['Bild'];
$bookTitle = $row['Titel'];
$bookAuthor = $row['Autor'];
$bookAvailability = $row['Verfügbarkeit'];
$bookExtendable = $row['Verlängerbar'];
$bookStartdate = $row['Anfangsdatum'];
$bookEnddate = $row['Enddatum'];
$bookStartdatePlusSeven = $bookStartdate +7;
/* TODO: OnClick auslagern. */
echo "<div id='book_container$bookID+$ausleihID' class='book_container'
onclick='open_bookDetails(this.id)'>
<div class='bookCover_container'>
<img class='bookCover' src='book_covers/$bookCover'
alt='Kein Bild vorhanden'>
</div>
<div class='bookDetails_container'>
<h2 class='bookTitle'>$bookTitle</h2>
<div class='bookDetails'>
<p class='author'>von $bookAuthor</p>
</div>
<div class='available_container'>
<p id='available_$ausleihID' class='available'>
$bookAvailability</p>
</div>
<div>
<p id='bestellungsInfo$ausleihID'></p>
</div>
</div>
<div class='placeholder_container' id='placeholder_container$ausleihID'>
<div class='placeholder' id='placeholder$ausleihID'></div>
</div>
<script type='text/javascript'
language='JavaScript'>
(function() {
var currentElement = document.
getElementById('available_$ausleihID');
var parentDiv = currentElement.parentElement;
// Ausgeliehen und Verlängerbar
parentDiv.style.backgroundColor
= '#70AD47';
})();
</script>
</div>";
}
} else {
echo "Keine Infos vorhanden.";
echo $_POST['ausleihID'];
}
if (!$result) {
die("Ungültige SQL-Abfrage: " . mysqli_connect_error());
}
echo "
<div id='verlängerungButtonContainer'>
<a id = 'verlängerungButton1' href='verlaengerung_erfolgreich.php?ausleihID=$ID&buchID=$bookID'>Bestätigen</a>
<a id = 'verlängerungButton2' href='meinebuecher.php'>Abbrechen</a>
</div>";
mysqli_close($connection);
?>
</div>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -1,97 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Verlängerung Bestätigung</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
</head>
<body>
<header>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweiterteSuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="hauptcontainer" id="verlängerung">
<h1 id="verlängerungH1">Buch erfolgreich verlängert</h1>
<div id="verlängerungContent">
<p id="möchten-sie">Das Buch wurde verlängert.<br>Neues Rückgabedatum: 10.05.2023</p>
<div class="item" id="verlängerungItem">
<img src="pictures/es.jpg" alt="Es" height="200">
<div class="beschreibung">
<h2>Es</h2>
<h3>von Stephen King</h3>
<div class="b2 green">Rückgabe am: 10.05.2023</div>
</div>
</div>
<div id="verlängerungButtonContainer">
<a id = "verlängerungErfolgreichButton1" href="meinebuecher.html">Zurück zu Meine Bücher</a>
</div>
</div>
</div>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

View File

@ -0,0 +1,206 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="suchergebnisse.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Verlängerung Bestätigung</title>
<link rel="icon" href="pictures/candle.png">
<script src="burgerIcon.js"></script>
<script src="notwendiges_laden.js" defer></script>
</head>
<body>
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.php">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.php">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<?php
$ID = $_GET['ausleihID'];
$BookID = $_GET['buchID'];
$servername = "localhost";
$username = "web_b-3";
$password = "een7Ao6s";
$dbname = "bibliothek_candle";
$connection =
mysqli_connect($servername, $username, $password, $dbname);
if (!$connection) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
$sql = $connection->prepare("
UPDATE `ausgeliehenes_buch` SET `Enddatum` = DATE_ADD(Enddatum,INTERVAL 7 DAY) WHERE `ausgeliehenes_buch`.`AusleihID` = ?;
");
$sql->bind_param("i", $ID);
$sql->execute();
$sql = $connection->prepare("SELECT ab.AusleihID, ab.BuchID, b.Titel, b.Bild, ab.Verlängerbar, DATE_FORMAT(ab.Anfangsdatum, '%d.%m.%Y') as Anfangsdatum, DATE_FORMAT(ab.Enddatum, '%d.%m.%Y') as Enddatum,
GROUP_CONCAT(DISTINCT CONCAT(a.VorName, ' ', a.NachName)
SEPARATOR ', ') AS 'Autor',
IF(
(SELECT ausgeliehenes_buch.Anfangsdatum FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID) = Curdate(), 'Sofort Abholbereit',
(
IF(
(SELECT ausgeliehenes_buch.Anfangsdatum FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID) > Curdate(),
CONCAT(
'Abholbereit am: ', (
SELECT DATE_FORMAT(
ausgeliehenes_buch.Anfangsdatum , '%d.%m.%Y'
) FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID
)
)
, CONCAT(
'Rückgabe am: ', (
SELECT DATE_FORMAT(
ausgeliehenes_buch.Enddatum , '%d.%m.%Y'
) FROM ausgeliehenes_buch WHERE ausgeliehenes_buch.AusleihID=ab.AusleihID
)
))
)
)
AS 'Verfügbarkeit'
FROM ausgeliehenes_buch AS ab
INNER JOIN buch as b
ON ab.BuchID = b.BuchID
INNER JOIN `buch_verfasst_von_autor` AS bvva
ON b.BuchID = bvva.BuchID
INNER JOIN `autor` AS a ON bvva.AutorNr = a.AutorNr
WHERE ab.AusleihID=?
GROUP BY ab.AusleihID;;");
// Parameter binden
$sql->bind_param("i", $ID);
// Übergebene ID des angeklickten Container speichern
$containerID = $_GET['ausleihID'];
// Buch ID abtrennen
$ID = str_replace('placeholder_container', '', $containerID);
// SQL-Befehl ausführen
$sql->execute();
// Ergebnis speichern
$result = $sql->get_result();
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$bookID = $row['BuchID'];
$ausleihID = $row['AusleihID'];
$bookCover = $row['Bild'];
$bookTitle = $row['Titel'];
$bookAuthor = $row['Autor'];
$bookAvailability = $row['Verfügbarkeit'];
$bookExtendable = $row['Verlängerbar'];
$bookStartdate = $row['Anfangsdatum'];
$bookEnddate = $row['Enddatum'];
$bookStartdatePlusSeven = $bookStartdate +7;
/* TODO: OnClick auslagern. */
echo " <div class='hauptcontainer'id='verlängerung'>
<h1 id='verlängerungH1'>Buch erfolgreich verlängert</h1>
<div id='verlängerungContent'>
<p id='möchten-sie'>Das Buch wurde verlängert.<br>Neues Rückgabedatum: $bookEnddate</p>
<div id='searchResult_container'>
<div id='book_container$bookID+$ausleihID' class='book_container'
onclick='open_bookDetails(this.id)'>
<div class='bookCover_container'>
<img class='bookCover' src='book_covers/$bookCover'
alt='Kein Bild vorhanden'>
</div>
<div class='bookDetails_container'>
<h2 class='bookTitle'>$bookTitle</h2>
<div class='bookDetails'>
<p class='author'>von $bookAuthor</p>
</div>
<div class='available_container'>
<p id='available_$ausleihID' class='available'>
$bookAvailability</p>
</div>
<div>
<p id='bestellungsInfo$ausleihID'></p>
</div>
</div>
<div class='placeholder_container' id='placeholder_container$ausleihID'>
<div class='placeholder' id='placeholder$ausleihID'></div>
</div>
<script type='text/javascript'
language='JavaScript'>
(function() {
var currentElement = document.
getElementById('available_$ausleihID');
var parentDiv = currentElement.parentElement;
// Ausgeliehen und Verlängerbar
parentDiv.style.backgroundColor
= '#70AD47';
})();
</script>
</div>
<div id='verlängerungButtonContainer'>
<a id = 'verlängerungErfolgreichButton1' href='meinebuecher.php'>Zurück zu Meine Bücher</a>
</div>
</div>
</div>
</div>";
}
} else {
echo "Keine Infos vorhanden.";
echo $_POST['ausleihID'];
}
if (!$result) {
die("Ungültige SQL-Abfrage: " . mysqli_connect_error());
}
?>
<!--Link JS file-->
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

217
warenkorb.css 100644
View File

@ -0,0 +1,217 @@
/*TODO: Hintergrundfarben entfernen*/
.hauptcontainer {
/*Einzelne Elemente untereinander anzeigen.*/
flex-direction: column;
background-color: #987554;
}
#shoppingCart_heading {
/* background-color: #70AD47; */
margin-top: 30px;
margin-left: 30px;
margin-right: 50px;
font-weight: 500;
color: white;
}
#secondary_container {
display: flex;
flex-direction: row;
margin-left: 30px;
margin-right: 50px;
margin-bottom: 50px;
}
/*Container wird mit Daten aus der Datenbank gefüllt.*/
#cartItems_container {
padding: 15px;
background-color: #E5D3B3;
overflow-y:auto
}
.book_container {
/* background-color: blueviolet; */
display: flex;
/*Einzelne Elemente nebeneinander anzeigen.*/
flex-direction: row;
cursor: pointer;
min-width: 0;
}
.bookCover_container {
/* background-color: blue; */
display: flex;
/*Verbietet dem Container, seine Standardgröße (px) zu ändern.*/
flex: 0 0 150px;
align-items: center;
height: auto;
}
.bookCover {
/*Bild passt sich seinem Container an.*/
max-width:100%;
max-height:100%;
}
.bookDetails_container {
/* background-color: aquamarine; */
width: 100%;
display: flex;
flex-direction: column;
padding-left: 15px;
padding-right: 15px;
}
.bookTitle {
margin-bottom: 10px;
font-weight: 400;
}
.bookDetails {
margin-bottom: 10px;
}
.available_container {
width: fit-content;
/*Hintergrundfarbe wird an Inhalt angepasst.*/
background-color: #70AD47;
/*background-color: #F34343;*/
/*Element immer an der unteren Seite des Containers platzieren.*/
margin-top: auto;
}
.available {
color: white;
margin: 10px 25px;
}
.quantity_container {
/* background-color: chartreuse; */
display: flex;
margin-left: auto;
margin-top: auto;
flex: 0 0 40px;
}
.reduce_container {
/* background-color: coral; */
display: flex;
align-items: center;
}
.reduce {
background-image: url('pictures/remove.png');
width: 30px;
height: 30px;
background-size: contain;
background-repeat: no-repeat;
}
.reduce:hover {
background-image: url('pictures/remove_hover.png');
cursor: pointer;
}
.quantityText_container {
width: 30px;
background-color: white;
border-color: black;
border-style: solid;
border-width: 1px;
display: flex;
justify-content: center;
align-items: center;
cursor: default;
margin-left: 10px;
margin-right: 10px;
}
.add_container {
/* background-color: coral; */
display: flex;
align-items: center;
}
.add {
background-image: url('pictures/add.png');
width: 30px;
height: 30px;
background-size: contain;
background-repeat: no-repeat;
}
.add:hover {
background-image: url('pictures/add_hover.png');
cursor: pointer;
}
.trashCan_container {
/* background-color: chartreuse; */
padding-left: 20px;
margin-left: auto;
margin-top: auto;
flex: 0 0 30px;
}
.trashCan {
background-image: url('pictures/bin.png');
width: 30px;
height: 30px;
background-size: contain;
background-repeat: no-repeat;
}
.trashCan:hover {
background-image: url('pictures/bin_hover.png');
cursor: pointer;
}
.divider {
margin-top: 15px;
margin-bottom: 15px;
background-color: #987554;
width: 100%;
height: 1px;
}
#totalQuantity_container {
background-color: #E5D3B3;
margin-left: 25px;
display: flex;
flex-direction: column;
align-items: center;
/* TODO: Elegantere Lösung finden */
min-width: 200px;
max-width: 200px;
min-height: 70px;
max-height: 70px;
padding: 15px;
}
#reserveNow {
margin-top: 10px;
background-color: #664220;
width: 160px;
height: 40px;
color:white;
text-align: center;
border-radius: 50px;
font-size: medium;
border-width: 0px;
cursor: pointer;
}
/*----------------------------------------------------------------------------*/
@media screen and (max-width: 800px) {
#secondary_container {
flex-direction: column;
align-items: center;
}
#totalQuantity_container {
margin-top: 30px;
margin-left: 0px;
}
}

View File

@ -1,222 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Warenkorb</title>
<link rel="icon" href="pictures/candle.png">
</head>
<body style="background-color:#987554;">
<header>
<script src="burgerIcon.js"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<h1 class="kopf" >
<br><br>
Bibliothek <a href="index.html" id="bildID"> <img id="CandleID" src="pictures/candle.png" alt="Bild von einer Kerze"
width="200" height="192"/> </a>
<br><br> Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.html">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.html">Meine Bücher</a>
<a id="abmelden" href="abmelden.html">Abmelden</a>
<form action="">
<input class="suchleiste" type="search" placeholder="Suche..." >
<button type="submit" id="buttonID" class="searchButton"><i class="fa fa-search"></i> </button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">Erweiterte Suche</a>
<a href="anmelden_warenkorb.html" id="warenKorbID"> <img id="shoppingCard" src="pictures/shopingcart.png" alt="Bild von einem Wagen"
width="50" height="50"/> </a>
</div>
</header>
<div class="main">
<h1 id="warenkorbHeader">
Warenkorb
</h1>
<div class="containerOfAll">
<script src="plusminusbutton.js" type="text/javascript"></script>
<!-- Change the `data-field` of buttons and `name` of input field's for multiple plus minus buttons-->
<!--First Item-->
<div id="firstItem" class="items" >
<img src="pictures/percy_jackson_diebe_im_olymp.jpg" width="125" height="200"/>
<h3 class="headerinItem">
<a href="percy.html">Percy Jackson: Diebe im Olymp</a>
</h3>
<p class="discinItem">von Rick Riordan</p>
<a class="greenbutton" href="percy.html">Verfügbar</a>
<!--Buttons-->
<div class="inputPlusMinus">
<div class="input-group plus-minus-input">
<div class="input-group-button">
<button type="button" class="button hollow circle" id="minusButton" data-quantity="minus" data-field="quantity">
<i class="fa fa-minus" style="opacity: 0.7;" aria-hidden="true"></i>
</button>
</div>
<input class="input-group-field" type="number" name="quantity" value="0">
<div class="input-group-button">
<button type="button" class="button hollow circle" id="plusButton" data-quantity="plus" data-field="quantity">
<i class="fa fa-plus" style="opacity: 0.7;" aria-hidden="true"></i>
</button>
</div>
</div>
<a class="binPicture" href="loeschen_warenkorb.html"><img src="pictures/bin.png" width="25" height="25"></a>
</div>
<hr style="width: 96%;">
</div>
<!--Second Item-->
<div id="secondItem" class="items">
<img src="pictures/the_hundred_and_one_dalmatians.jpg" width="125" height="200"/>
<h3 class="headerinItem">
<a href="dalmatians.html">The Hundred and One Dalmatians</a>
</h3>
<p class="discinItem">von Dodie Smith</p>
<a class="redbutton" href="dalmatians.html">Verfügbar ab: 30.04.2023</a>
<!--Buttons-->
<div class="inputPlusMinus">
<div class="input-group plus-minus-input">
<div class="input-group-button">
<button type="button" class="button hollow circle" id="minusButton" data-quantity="minus" data-field="quantity">
<i class="fa fa-minus" style="opacity: 0.7;" aria-hidden="true"></i>
</button>
</div>
<input class="input-group-field" type="number" name="quantity" value="0">
<div class="input-group-button">
<button type="button" class="button hollow circle" id="plusButton" data-quantity="plus" data-field="quantity">
<i class="fa fa-plus" style="opacity: 0.7;" aria-hidden="true"></i>
</button>
</div>
</div>
<a class="binPicture" href="loeschen_warenkorb.html"><img src="pictures/bin.png" width="25" height="25"></a>
</div>
<hr style="width: 96%;">
</div>
<!--Third Item-->
<div id="thirdItem" class="items">
<img src="pictures/penguin_highway.jpg" width="125" height="200"/>
<h3 class="headerinItem">
<a href="penguin.html">Penguin Highway</a>
</h3>
<p class="discinItem">von Tomihiko Morimi</p>
<a class="greenbutton" href="penguin.html">Verfügbar</a>
<!--Buttons-->
<div class="inputPlusMinus">
<div class="input-group plus-minus-input">
<div class="input-group-button">
<button type="button" class="button hollow circle" id="minusButton" data-quantity="minus" data-field="quantity">
<i class="fa fa-minus" style="opacity: 0.7;" aria-hidden="true"></i>
</button>
</div>
<input class="input-group-field" type="number" name="quantity" value="0">
<div class="input-group-button">
<button type="button" class="button hollow circle" id="plusButton" data-quantity="plus" data-field="quantity">
<i class="fa fa-plus" style="opacity: 0.7;" aria-hidden="true"></i>
</button>
</div>
</div>
<a class="binPicture" href="loeschen_warenkorb.html"><img src="pictures/bin.png" width="25" height="25"></a>
</div>
<hr style="width: 96%;">
</div>
<!--fourth Item-->
<div id="fourthItem" class="items" >
<img src="pictures/es.jpg" width="125" height="200"/>
<h3 class="headerinItem">
<a href="es.html">Es</a>
</h3>
<p class="discinItem">von Stephen King</p>
<a class="redbutton" href="es.html" >Verfügbar ab: 10.05.2023</a>
<!--Buttons-->
<div class="inputPlusMinus">
<div class="input-group plus-minus-input">
<div class="input-group-button">
<button type="button" class="button hollow circle" id="minusButton" data-quantity="minus" data-field="quantity">
<i class="fa fa-minus" style="opacity: 0.7;" aria-hidden="true"></i>
</button>
</div>
<input class="input-group-field" type="number" name="quantity" value="0">
<div class="input-group-button">
<button type="button" class="button hollow circle" id="plusButton" data-quantity="plus" data-field="quantity">
<i class="fa fa-plus" style="opacity: 0.7;" aria-hidden="true"></i>
</button>
</div>
</div>
<a class="binPicture" href="loeschen_warenkorb.html"><img src="pictures/bin.png" width="25" height="25"></a>
</div>
</div>
</div>
<!--Reservieren-->
<div id="reservieren">
<h2 id="ArtikelWarenkorb"> 3 Artikel</h2>
<a id="jetztReservieren" href="reservierung.html">Jetzt reservieren</a>
</div>
</div>
<!--If it was small and got big, it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active">
<div class="navLinks">
<input class="nav-toggleclass"id="nav-toggle" type="checkbox" onclick="openNav()";>
<label for="nav-toggle" class="icon-burger" >
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</label>
</div>
</nav>
<footer class="fuss" >
<div>
<a id="impressum" href="impressum.html">Impressum</a>
<a id="kontakt" href="kontakt.html">Kontakt</a>
<a id="datenschutz" href="datenschutz.html">Datenschutz</a>
</div>
</footer>
</body>
</html>

384
warenkorb.php 100644
View File

@ -0,0 +1,384 @@
<!--
TODO:
- Seite ist noch nicht erreichbar
- Löschbestätigung -> removeBookFromCart verschieben
TODO (optional, geringe Priorität):
- 80 Zeichen
- JS Funktionen größtmöglich auslagern
- Mengenfeld bearbeitbar machen
- Layout verbessern (z.B. resize)
-->
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="Stylesheet" type="text/css" href="warenkorb.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Warenkorb</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body onload="on_load()">
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.html" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<!------------------------------------------------------------------------->
<div class="hauptcontainer">
<h1 id="shoppingCart_heading">Warenkorb</h1>
<div id="secondary_container">
<div id='cartItems_container'>
<?php
session_start();
// Counter für Divider
$counter = 0;
// Überprüfen, ob Bücher im Warenkorb liegen
if(isset($_SESSION['cart']) && !empty($_SESSION['cart'])) {
// Es liegen Bücher im Warenkorb
// Alle Elemente im Warenkorb durchgehen
foreach ($_SESSION["cart"] as $key=>$item) {
$quantity = $item['quantity'];
$sql = '';
$servername = "localhost";
$username = "web_b-3";
$password = "een7Ao6s";
$dbname = "bibliothek_candle";
$connection =
mysqli_connect($servername, $username, $password, $dbname);
if (!$connection) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
/* SQL-Befehl vorbereiten */
$sql = $connection->prepare("SELECT b.BuchID, b.Titel,
b.Bild,
GROUP_CONCAT(DISTINCT CONCAT(a.VorName, ' ', a.NachName)
SEPARATOR ', ') AS 'Autor',
IF(b.Anzahl!=0, 'Verfügbar', CONCAT('Verfügbar ab: ',
(SELECT DATE_FORMAT(DATE_ADD(ab.Enddatum, INTERVAL 1 DAY)
,'%d.%m.%Y') FROM `ausgeliehenes_buch` AS ab
WHERE ab.BuchID = b.BuchID
ORDER BY ab.Reserviert ASC, ab.Enddatum ASC LIMIT 1)))
AS 'Verfügbarkeit' FROM `buch` AS b
INNER JOIN `buch_verfasst_von_autor` AS bvva
ON b.BuchID = bvva.BuchID
INNER JOIN `autor` AS a ON bvva.AutorNr = a.AutorNr
WHERE b.BuchID = ?
GROUP BY b.BuchID;");
// Parameter binden
$sql->bind_param("i", $ID);
// ID festlegen
$ID = $key;
// SQL-Befehl ausführen
$sql->execute();
// Ergebnis speichern
$result = $sql->get_result();
if ($counter != 0) {
echo "<div class='divider'></div>";
}
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$bookID = $row['BuchID'];
$bookCover = $row['Bild'];
$bookTitle = $row['Titel'];
$bookAuthor = $row['Autor'];
$bookAvailability = $row['Verfügbarkeit'];
// TODO: OnClick auslagern.
echo "<div id='book_container$bookID' class='book_container'
onclick='open_bookDetails(this.id)'>
<div class='bookCover_container'>
<img class='bookCover'
src='book_covers/$bookCover'
alt='Kein Bild vorhanden'>
</div>
<div class='bookDetails_container'>
<h2 class='bookTitle'>$bookTitle</h2>
<div class='bookDetails'>
<p class='author'>von $bookAuthor</p>
</div>
<div class='available_container'>
<p id='available_$bookID' class='available'>
$bookAvailability</p>
<!--TODO: Auslagern-->
<script type='text/javascript'
language='JavaScript'>
(function() {
var currentElement = document.
getElementById('available_$bookID');
var parentDiv =
currentElement.parentElement;
if (currentElement.innerHTML.trim()
== 'Verfügbar') {
parentDiv.style.backgroundColor
= '#70AD47';
}
else {
parentDiv.style.backgroundColor
= '#F34343';
}
})();
</script>
</div>
</div>
<!--TODO: OnClick Event auslagern-->
<div class='quantity_container'>
<div class='reduce_container'
id='reduce$bookID'
onclick='decreaseQuantity(this.id)'>
<div class='reduce'></div>
</div>
<div class='quantityText_container'>
<p class='quantityText'
id='quantityText$bookID'>$quantity</p>
</div>
<div class='add_container'
id='add$bookID'
onclick='increaseQuantity(this.id)'>
<div class='add'></div>
</div>
</div>
<div class='trashCan_container'
id='trashCan$bookID'
onclick='removeBookFromCart(this.id)'>
<div class='trashCan'></div>
</div>
</div>";
$counter++;
}
} else {
echo "Keine Ergebnisse.";
}
if (!$result) {
die("Ungültige SQL-Abfrage: " . mysqli_connect_error());
}
mysqli_close($connection);
$counter++;
}
}
else {
// Es liegen keine Bücher im Warenkorb
echo
"Der Warenkorb ist leer,
bitte fügen Sie Bücher hinzu.";
}
?>
</div>
<div id='totalQuantity_container'>
<div id='totalQuantityText_container'>
<p id='totalQuantityText'>? Artikel</p>
</div>
<input type='button' id='reserveNow'
onclick='open_reservation()' value='Jetzt reservieren'>
</div>
</div>
</div>
<!------------------------------------------------------------------------->
<!-- TODO: Auslagern (falls möglich) -->
<script>
/*
* Überprüft, ob Bücher im Warenkorb existieren.
* Ist die nicht der Fall, wird der "Jetzt reservieren" Button
* deaktiviert.
*/
function on_load() {
var book_container =
document.getElementsByClassName("book_container");
if (book_container.length > 0) {
// Bücher existieren, Button aktivieren
document.getElementById("reserveNow").disabled = false;
getTotalQuantity();
}
else {
// Bücher existieren nicht, Button deaktivieren
document.getElementById("reserveNow").disabled = true;
document.getElementById("totalQuantityText").innerHTML
= "0 Artikel";
}
}
function getTotalQuantity() {
const collection = document.getElementsByClassName("quantityText");
var totalAmount = 0;
for (var i = 0; i < collection.length; i++) {
totalAmount = totalAmount + parseInt(collection[i].innerHTML);
}
document.getElementById("totalQuantityText").innerHTML
= `${totalAmount} Artikel`;
}
function open_bookDetails(ID) {
var data = new URLSearchParams();
data.append("bookID", ID);
var url = "http://141.19.142.11/buch_details.php?" +
data.toString();
location.href = url;
}
function decreaseQuantity(ID) {
// OnClick Event für open_bookDetails stoppen
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
// ID abtrennen
ID = ID.replace('reduce', '');
var request = new XMLHttpRequest();
request.open('POST',
'http://141.19.142.11/warenkorb_funktionen.php', true);
// TODO: Handler erstellen
request.onload = function() {
console.log(this.responseText);
// Überprüfen, ob die Menge im Warenkorb verringert wurde
if (this.responseText.includes('Erfolgreich verringert')) {
toChange = document.getElementById(`quantityText${ID}`);
toChange.innerHTML = parseInt(toChange.innerHTML) - 1;
getTotalQuantity();
}
}
request.setRequestHeader('Content-type',
'application/x-www-form-urlencoded');
request.send(`function=decreaseQuantity&id=${ID}`);
}
function increaseQuantity(ID) {
// OnClick Event für open_bookDetails stoppen
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
// ID abtrennen
ID = ID.replace('add', '');
var request = new XMLHttpRequest();
request.open('POST',
'http://141.19.142.11/warenkorb_funktionen.php', true);
// TODO: Handler erstellen
request.onload = function() {
console.log(this.responseText);
// Überprüfen, ob die Menge im Warenkorb erhöht wurde
if (this.responseText.includes('Erfolgreich erhöht')) {
toChange = document.getElementById(`quantityText${ID}`);
toChange.innerHTML = parseInt(toChange.innerHTML) + 1;
getTotalQuantity();
}
}
request.setRequestHeader('Content-type',
'application/x-www-form-urlencoded');
request.send(`function=increaseQuantity&id=${ID}`);
}
function removeBookFromCart(ID) {
// OnClick Event für open_bookDetails stoppen
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
// ID abtrennen
ID = ID.replace('trashCan', '');
var request = new XMLHttpRequest();
request.open('POST',
'http://141.19.142.11/warenkorb_funktionen.php', true);
// TODO: Handler erstellen
request.onload = function() {
console.log(this.responseText);
// Überprüfen, ob das Buch aus dem Warenkorb entfernt wurde
if (this.responseText.includes('Erfolgreich entfernt')) {
window.location.reload(true);
}
}
request.setRequestHeader('Content-type',
'application/x-www-form-urlencoded');
request.send(`function=removeBookFromCart&id=${ID}`);
}
function open_reservation() {
var url = "http://141.19.142.11/anmelden.php";
location.href = url;
}
</script>
<!------------------------------------------------------------------------->
<!--Link JS file-->
<script src="burgerIcon.js"></script>
<!--If it was small and got big,
it calls the function only one time and doesn't do it all the time-->
<script>
var widthissue = false;
window.addEventListener("resize", function(event) {
if(window.innerWidth > 800 && widthissue) {
widthissue = false
unset()
}
else if(window.innerWidth < 800) widthissue = true;
})
</script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>

View File

@ -0,0 +1,134 @@
<!DOCTYPE html>
<html>
<?php
// Session starten
session_start();
if (isset($_POST['function'])) {
$function = $_POST['function'];
switch($function) {
case 'addBookToCart':
addBookToCart($_POST['id']);
break;
case 'removeBookFromCart':
removeBookFromCart($_POST['id']);
break;
case 'increaseQuantity':
increaseQuantity($_POST['id']);
break;
case 'decreaseQuantity':
decreaseQuantity($_POST['id']);
break;
default:
echo "Funktion existiert nicht.";
}
}
/**
* Fügt ein Buch zum Warenkorb hinzu.
*/
function addBookToCart($bookID) {
// Überprüfen, ob bereits ein Warenkorb hinterlegt ist
if (!(isset($_SESSION['cart']))) {
// Wenn nicht, Einkaufswagen hinterlegen
$_SESSION['cart'] = array();
}
// Wurde das Buch bereits zum Warenkorb hinzugefügt?
if (isset($_SESSION['cart'][$bookID])) {
// Buch liegt bereits im Warenkorb, Menge erhöhen
increaseQuantity($bookID);
}
else {
// Buch liegt noch nicht im Warenkorb, jetzt hinzufügen
$_SESSION['cart'][$bookID] = array('quantity' => 1);
}
}
/**
* Entfernt ein Buch aus dem Warenkorb.
*/
function removeBookFromCart($bookID) {
// Überprüfen, ob das Buch im Warenkorb liegt
if (isset($_SESSION['cart'][$bookID])) {
// Buch existiert im Warenkorb, kann gelöscht werden
unset($_SESSION['cart'][$bookID]);
echo "Erfolgreich entfernt.";
}
}
/**
* Erhöht die Menge eines Buches im Warenkorb.
*/
function increaseQuantity($bookID) {
// Verbinden mit der Datenbank
$servername = "localhost";
$username = "web_b-3";
$password = "een7Ao6s";
$dbname = "bibliothek_candle";
$connection =
mysqli_connect($servername, $username, $password, $dbname);
if (!$connection) {
die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
}
// SQL-Befehl vorbereiten
$sql = $connection->prepare(
"SELECT b.BuchID, b.MaxAnzahl
FROM `buch` AS b
WHERE b.BuchID = ?;");
// Parameter binden
$sql->bind_param("i", $bookID);
// SQL-Befehl ausführen
$sql->execute();
// Ergebnis speichern
$result = $sql->get_result();
if (!$result) {
die("Ungültige SQL-Abfrage: " . mysqli_connect_error());
}
// Ergebnis verarbeiten
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$bookID = $row['BuchID'];
$bookMaxQuantity = $row['MaxAnzahl'];
}
} else {
echo "Kein Buch mit dieser ID vorhanden.";
}
// Verbindung schließen
mysqli_close($connection);
// Wurde die maximale Menge bereits erreicht?
if ($_SESSION['cart'][$bookID]['quantity'] < $bookMaxQuantity) {
/* Maximale Menge wurde noch nicht erreicht, die Menge im
Warenkorb kann erhöht werden */
$_SESSION['cart'][$bookID]['quantity'] += 1;
echo "Erfolgreich erhöht.";
}
}
/**
* Verringert die Menge eines Buches im Warenkorb.
*/
function decreaseQuantity($bookID) {
// Ist die Menge höher als 1?
if ($_SESSION['cart'][$bookID]['quantity'] > 1) {
// Menge des Buches kann verringert werden
$_SESSION['cart'][$bookID]['quantity'] -= 1;
echo "Erfolgreich verringert.";
}
}
?>
</html>

View File

@ -0,0 +1,121 @@
<!DOCTYPE html>
<html>
<head>
<meta lang="de"/>
<meta charset="utf-8"/>
<meta name="viewport" content="device=device-width, initial-scaling=1"/>
<link rel="Stylesheet" type="text/css" href="style.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Candle Bibliothek | Warenkorb</title>
<link rel="icon" href="pictures/candle.png">
<script src="notwendiges_laden.js" defer></script>
</head>
<body style="background-color:#987554;">
<header id="header">
<h1 class="kopf" >
<br><br>
Bibliothek
<a href="index.php" id="bildID">
<img id="CandleID" src="pictures/candle.png"
alt="Bild von einer Kerze" width="200" height="192"/></a>
<br><br>
Candle
</h1>
<div>
<a id="uberuns" href="uberuns.html">Über Uns</a>
<a id="buecher" href="buecher.php">Bücher</a>
<a id="meinebuecher" href="anmelden_meinebuecher.php">
Meine Bücher</a>
<?php
session_start();
if(isset($_SESSION["eingeloggt"]) && $_SESSION["eingeloggt"] == 1 ){
echo "<a id='abmelden' href='abmelden.php'>Abmelden</a>";}
?>
<form action="suchergebnisse.php">
<input type="hidden" name="searchType" value="simple">
<input name="searchFor" class="suchleiste" type="search"
placeholder="Suche...">
<button type="submit" id="buttonID" class="searchButton">
<i class="fa fa-search"></i>
</button>
</form>
<a id="erweitertesuche" href="erweitertesuche.html">
Erweiterte Suche</a>
<a href="warenkorb.php" id="warenKorbID">
<img id="shoppingCard" src="pictures/einkaufswagen.png"
alt="Bild von einem Wagen" width="50" height="50"/>
</a>
</div>
</header>
<?php
session_start();
$db_link = mysqli_connect('localhost', 'web_b-3', 'een7Ao6s', 'bibliothek_candle', '3306');
function runSQL($sql){
global $db_link;
$db_res = mysqli_query($db_link, $sql);
if(!$db_res){
header("Location: 404.html");
exit;
}
return $db_res;
}
if(isset($_POST['submit'])){
$kartenid = $_POST['karten-id'];
$passwort = $_POST['password'];
$existiert = runSQL("SELECT COUNT(*) FROM `benutzer` WHERE `KartenID` = '$kartenid' and `Passwort` = '$passwort'");
$karteexistiert = runSQL("SELECT COUNT(*) FROM `benutzer` WHERE `KartenID` = '$kartenid'");
$zeile = mysqli_fetch_array($karteexistiert);
$row = mysqli_fetch_array($existiert);
if($row['COUNT(*)'] > 0){
$_SESSION['eingeloggt'] = 1;
echo '
<div class="main">
<h1 id="warenkorbHeader">
Warenkorb
</h1>
<div class="containerOfAll">
</div>
<!--Reservieren-->
<div id="reservieren">
<h2 id="ArtikelWarenkorb"> </h2>
<a id="jetztReservieren" href="reservierung.php">Jetzt reservieren</a>
</div>
</div>
<script src="resize.js"></script>
<nav id="activeid" class="active"></nav>
<footer id="footer" class="fuss" ></footer>
</body>
</html>';
}else if($zeile['COUNT(*)'] > 0){
header("Location: passwort_stimmt_nicht.php");
}else{
header("Location: benutzer_existiert_nicht.php");
}
}else{
header("Location: 404.html");
}
?>