diff options
| author | stefan_gey <stfngy@proton.me> | 2025-03-25 22:51:39 +0100 |
|---|---|---|
| committer | stefan_gey <stfngy@proton.me> | 2025-03-25 22:51:39 +0100 |
| commit | f99b7701847efec51466d6a54f5f057cc6234d88 (patch) | |
| tree | 0fe595f297aa9d83a74f124b2c7a0cbd1e7ae6ab /login | |
commit
Diffstat (limited to 'login')
| -rwxr-xr-x | login/index.php | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/login/index.php b/login/index.php new file mode 100755 index 0000000..229b130 --- /dev/null +++ b/login/index.php @@ -0,0 +1,156 @@ +<?php +/* error_reporting(E_ALL); +ini_set('display_errors', 1); */ +session_start(); + +if (isset($_POST['abmelden'])) unset($_SESSION['benutzer']); + +$benutzername = $_POST['input_benutzername']; +$passwort = $_POST['input_passwort']; + +$datenbank = new mysqli('localhost', 'root', 'sexyweyer', 'Annapurna'); + +if ($_POST['abmelden_loeschen'] == 'abmelden') { + unset($_SESSION['benutzer']); +} elseif ($_POST['abmelden_loeschen'] == 'loeschen') { + $benutzer = $_SESSION['benutzer']; + $datenbank->query("DELETE FROM benutzer WHERE benutzer_id = '$benutzer'"); + unset($_SESSION['benutzer']); +} +if (isset($_POST['konto_loeschen'])) { + $datenbank->query("DELETE FROM benutzer WHERE benutzer_id = '{$_SESSION['benutzer']}'"); +} + +if ($_POST['login'] == 'anmeldung') { + + $statement = $datenbank->prepare("SELECT * FROM benutzer WHERE benutzername = ?"); + $statement->bind_param('s', $benutzername); + $statement->execute(); + $result = $statement->get_result(); + $statement->close(); + + if ($user = $result->fetch_assoc()) { + if (password_verify($passwort, $user['passwort'])) { + $_SESSION['benutzer'] = $user['benutzer_id']; + } else { + $nachricht = "Passwort ist falsch!"; + } + } else { + $nachricht = "Benutzername nicht registriert!"; + } + +} else if ($_POST['login'] == 'registrierung') { + + if (str_contains($benutzername, ' ')) { + $nachricht = "Benutzername darf keine Leerzeichen enthalten!"; + } else if (str_contains($passwort, ' ')) { + $nachricht = "Passwort darf keine Leerzeichen enthalten!"; + } else if (!preg_match('/[^a-zA-Z0-9]/', $passwort)) { + $nachricht = "Passwort muss ein Sonderzeichen enthalten!"; + } + $statement = $datenbank->prepare("SELECT * FROM benutzer WHERE benutzername = ?"); + $statement->bind_param('s', $benutzername); + $statement->execute(); + $result = $statement->get_result(); + + if ($result->num_rows) { + $nachricht = "Benutzername ist schon registriert!"; + } else { + $passwort_hash = password_hash($passwort, PASSWORD_DEFAULT); + + $statement = $datenbank->prepare( + "INSERT INTO benutzer (benutzername, passwort, letzter_login) + VALUES (?, ?, NOW())" + ); + $statement->bind_param('ss', $benutzername, $passwort_hash); + + if ($statement->execute()) { + $nachricht = "Benutzer wurde erfolgreich registriert!"; + } else { + $nachricht = "Fehler bei der Registrierung(" . $statement->errno . "): " . $statement->error; + } + } + $statement->close(); +} +$datenbank->close(); +?> + +<!DOCTYPE html> +<html lang="de"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Login</title> + <link rel="icon" type="image/x-icon" href="/style/avocado.png"> + <link rel="stylesheet" type="text/css" href="/style/style.css"> +</head> + +<body> + +<nav class="medium_box"> + <ul class="hor_spacing"> + <li class="hor_spacing_item"> + <a class="small_box tertiary_color_style" href="/login">Login</a> + </li> + <li class="hor_spacing_item"> + <a class="small_box color_inverse_on_hover" href="/kalorien_rechner">Kalorien-rechner</a> + </li> + <li class="hor_spacing_item"> + <a class="small_box color_inverse_on_hover" href="/kalorien_zaehler">Kalorien-zähler</a> + </li> + <li class="hor_spacing_item"> + <a class="small_box color_inverse_on_hover" href="/rezepte">Rezepte</a> + </li> + <li class="hor_spacing_item"> + <a class="small_box color_inverse_on_hover" href="/workouts">Workouts</a> + </li> + </ul> +</nav> + +<main class="big_box hor_spacing"> + <h1>Anmeldung / Registrierung</h1> + + <?php if (isset($_SESSION['benutzer'])) { ?> + + <div class="medium_box"> + <h2>Sie sind eingeloggt!</h2> + <form class="flexbox" action="" method="POST"> + <button class="small_box color_inverse_on_hover" style="flex: 1" type="submit" name="abmelden_loeschen" value="abmelden"><h2 style="margin: 0">Abmelden</h2></button> + <button class="small_box color_inverse_on_hover" style="flex: 1" type="submit" name="abmelden_loeschen" value="loeschen"><h2 style="margin: 0">Konto löschen</h2></button> + </form> + </div> + + <?php } else { + ?> + + <form class="hor_spacing_item" method="POST" action=""> + <ol style="list-style-position: inside"> + <p><li>Benutzername und Passwort dürfen keine Leerzeichen enthalten.</li></p> + <p><li>Das Passwort muss mindestens ein Sonderzeichen enthalten.</li></p> + <p><li>Benutzername und Passwort dürfen nicht weniger als 8 und mehr als 24 Charaktere enthalten.</li></p> + <p><li>Durch die Registrierung akzeptieren Sie die <a href="/agb.html" style="text-decoration: underline">AGBs</a></li></p> + </ol> + <br> + <div class="flexbox hor_spacing_item"> + <div class="medium_box" style="flex: 1"> + <h2>Benutzername: </h2> + <input class="small_box color_inverse_on_hover" type="text" minlength="8" maxlength="24" name="input_benutzername" required> + </div> + <div class="medium_box" style="flex: 1"> + <h2>Passwort: </h2> + <input class="small_box color_inverse_on_hover" type="password" minlength="8" maxlengh="24" name="input_passwort" required> + </div> + </div> + <div class="flexbox hor_spacing_item"> + <button class="medium_box color_inverse_on_hover" style="flex: 1" type="submit" name="login" value="anmeldung"><h2 style="margin: 0">ANMELDEN</h2></button> + <button class="medium_box color_inverse_on_hover" style="flex: 1" type="submit" name="login" value="registrierung"><h2 style="margin: 0">REGISTRIEREN</h2></button> + </div> + </form> + + <?php if ($nachricht) { ?> + <div class="medium_box hor_spacing_item"><h2><?= $nachricht ?></h2></div> + <?php } + } ?> +</main> +</body> +</html> |
