SimpleMail/html/register.php

142 lines
4.9 KiB
PHP

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Obai Albek">
<link rel="stylesheet" href="../css/registerStyle.css">
<title>Register</title>
</head>
<body>
<div>
<form class="form-container" action="register.php" method="post">
<h1>Register</h1>
<label for="firstName">Vorname:<span class="required">*</span>
<input type="text" id="firstName" name="firstName" required />
</label>
<label for="lastName">Nachname:<span class="required">*</span>
<input type="text" id="lastName" name="lastName" required />
</label>
<label for="gender">Geschlecht: <span class="required">*</span></label>
<div class="gender-options">
<label for="male">
<input type="radio" id="male" name="gender" value="Männlich" required /> Männlich
</label>
<label for="female">
<input type="radio" id="female" name="gender" value="Weiblich" required /> Weiblich
</label>
<label for="divers">
<input type="radio" id="divers" name="gender" value="Divers" required /> Divers
</label>
</div>
<label for="birthdate">Geburtsdatum:<span class="required">*</span>
<input type="date" id="birthdate" name="birthdate" required />
</label>
<label for="username">Benutzername:<span class="required">*</span><br>
<span id="userNameMessage" ></span>
</label>
<div class="username-group">
<input type="text" id="username" name="username" required />
<span id="domain">@smail.de</span>
</div>
<label for="telefonnummer">Telefonnummer:
<input type="tel" id="telefonnummer" name="telefonnummer" />
</label>
<label for="password">Password:<span class="required">*</span><br>
<span id="passwordMessage"></span>
<input type="password" id="password" name="password" required />
</label>
<label for="retype_password">Re-Type Password:<span class="required">*</span><br>
<span id="retypePasswordMessage"></span>
<input type="password" id="retype_password" name="retype_password" required />
</label>
<input id="submit" type="submit" name="register" value="Submit">
</form>
</div>
<script src="../js/handleRegister.js"></script>
</body>
</html>
<?php
session_start();
try {
$dbh = new PDO('mysql:host=localhost;dbname=simpleymail','root','');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if (isset($_POST["register"])) {
$firstName = $_POST["firstName"];
$lastname = $_POST["lastName"];
$gender = $_POST["gender"];
$birthdate = $_POST["birthdate"];
$username = $_POST["username"];
$password = $_POST["password"];
$domain = "@smail.de";
$email = $username . $domain;
// 1. E-Mail prüfen
$stmt = $dbh->prepare("SELECT email FROM useremail WHERE email=?");
$stmt->bindValue(1, $email);
$stmt->execute();
if ($stmt->rowCount() === 0) {
// 2. E-Mail & Passwort speichern
$stmt = $dbh->prepare("INSERT INTO useremail (email, password) VALUES (?, ?)");
$stmt->bindValue(1, $email);
$stmt->bindValue(2, $password);
$stmt->execute();
// 3. ID holen
$useremail_id = $dbh->lastInsertId();
// 4. user speichern
$stmt = $dbh->prepare("INSERT INTO user (firstName, lastname, birthdate, gender, useremail_id) VALUES (?, ?, ?, ?, ?)");
$stmt->bindValue(1, $firstName);
$stmt->bindValue(2, $lastname);
$stmt->bindValue(3, $birthdate);
$stmt->bindValue(4, $gender);
$stmt->bindValue(5, $useremail_id);
$stmt->execute();
// 5. user abrufen
$stmt = $dbh->prepare("SELECT * FROM user WHERE useremail_id = ?");
$stmt->bindValue(1, $useremail_id);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user) {
// 6. Session setzen
$_SESSION["firstname"] = $user["firstname"];
$_SESSION["lastname"] = $user["lastname"];
$_SESSION["email"] = $email;
// 7. Ausgabe
header("Location: dashboard.php");
} else {
echo "❌ Fehler beim Laden des Benutzers.";
}
} else {
echo "❌ Die E-Mail ist bereits registriert.";
}
}
} catch (PDOException $e) {
echo "Fehler: " . $e->getMessage();
}
?>