Update
parent
2ed36a5927
commit
460c69b087
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if (!isset($_SESSION["firstname"])) {
|
||||||
|
echo "Bitte zuerst registrieren oder einloggen.";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Willkommen, " . $_SESSION["firstname"] . " " . $_SESSION["lastname"] . "<br>";
|
||||||
|
echo "Deine E-Mail: " . $_SESSION["email"];
|
||||||
|
?>
|
|
@ -0,0 +1,141 @@
|
||||||
|
<!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();
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,38 @@
|
||||||
|
var txtUsername = document.querySelector("#username");
|
||||||
|
var txtPassword = document.querySelector("#password");
|
||||||
|
var txtRetypePassword = document.querySelector("#retype_password");
|
||||||
|
|
||||||
|
var errorMessageUsername = document.querySelector("#userNameMessage");
|
||||||
|
var errorPasswordMessage = document.querySelector("#passwordMessage");
|
||||||
|
var errorRetypePasswordMessage = document.querySelector("#retypePasswordMessage");
|
||||||
|
|
||||||
|
txtPassword.addEventListener("input",checkPass);
|
||||||
|
txtRetypePassword.addEventListener("input" , checkRetypedPassword)
|
||||||
|
txtUsername.addEventListener("input" ,checkUsername);
|
||||||
|
|
||||||
|
function checkUsername(){
|
||||||
|
if (txtUsername.value.includes("@")){
|
||||||
|
errorMessageUsername.textContent = "Benutzername darf kein @ enthalten!";
|
||||||
|
errorMessageUsername.style.color = "red";
|
||||||
|
}else
|
||||||
|
errorMessageUsername.textContent = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkPass(){
|
||||||
|
if (txtPassword.value.length < 6){
|
||||||
|
errorPasswordMessage.textContent = "Passwort ist zu kurz";
|
||||||
|
errorPasswordMessage.style.color = "red";
|
||||||
|
}else{
|
||||||
|
errorPasswordMessage.textContent = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkRetypedPassword(){
|
||||||
|
if (txtRetypePassword.value !== txtPassword.value){
|
||||||
|
errorRetypePasswordMessage.textContent = "Passwörter stimmen nicht überein!";
|
||||||
|
errorRetypePasswordMessage.style.color = "red";
|
||||||
|
}else{
|
||||||
|
errorRetypePasswordMessage.textContent = "";
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,15 +0,0 @@
|
||||||
<?php
|
|
||||||
include_once 'userManager.php';
|
|
||||||
|
|
||||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
||||||
$username = $_POST['username'] ?? '';
|
|
||||||
|
|
||||||
$email = $username . "@smail.de";
|
|
||||||
|
|
||||||
$userManager = new UserManager();
|
|
||||||
|
|
||||||
$exists = $userManager->findUserByEmail($email);
|
|
||||||
|
|
||||||
echo json_encode(['exists' => $exists]);
|
|
||||||
}
|
|
||||||
?>
|
|
|
@ -1,7 +0,0 @@
|
||||||
<?php
|
|
||||||
enum Gender: string {
|
|
||||||
case Male = 'male';
|
|
||||||
case Female = 'female';
|
|
||||||
case Diverse = 'diverse';
|
|
||||||
}
|
|
||||||
?>
|
|
|
@ -1,63 +0,0 @@
|
||||||
<?php
|
|
||||||
include_once 'userEmail.php';
|
|
||||||
include_once 'genderEnum.php';
|
|
||||||
|
|
||||||
class User{
|
|
||||||
private $firstname;
|
|
||||||
private $lastname;
|
|
||||||
private $birthdate;
|
|
||||||
private $userEmail;
|
|
||||||
private $password;
|
|
||||||
|
|
||||||
public function __construct($firstname, $lastname, $birthdate, Gender $gender, $username, $password) {
|
|
||||||
$this->firstname = $firstname;
|
|
||||||
$this->lastname = $lastname;
|
|
||||||
$this->birthdate = $birthdate;
|
|
||||||
$this->gender = $gender;
|
|
||||||
$this->password = $password;
|
|
||||||
$this->userEmail = new userEmail($username, $password);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function getFirstname() {
|
|
||||||
return $this->firstname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setFirstname($firstname) {
|
|
||||||
$this->firstname = $firstname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getLastname() {
|
|
||||||
return $this->lastname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setLastname($lastname) {
|
|
||||||
$this->lastname = $lastname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getBirthdate() {
|
|
||||||
return $this->birthdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setBirthdate($birthdate) {
|
|
||||||
$this->birthdate = $birthdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getGender() {
|
|
||||||
return $this->gender;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setGender(Gender $gender) {
|
|
||||||
$this->gender = $gender;
|
|
||||||
}
|
|
||||||
// __toString Methode
|
|
||||||
public function __toString() {
|
|
||||||
return "Vorname: {$this->firstname}\n" .
|
|
||||||
"Nachname: {$this->lastname}\n" .
|
|
||||||
"Geburtsdatum: {$this->birthdate}\n" .
|
|
||||||
"Geschlecht: {$this->gender->value}\n" .
|
|
||||||
"Benutzername: {$this->userEmail->getUsername()}\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
|
@ -1,25 +0,0 @@
|
||||||
<?php
|
|
||||||
class UserEmail{
|
|
||||||
private $username;
|
|
||||||
private $password;
|
|
||||||
|
|
||||||
public function __construct($username,$password){
|
|
||||||
$this->username = $username;
|
|
||||||
$this->password = $password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getusername() {
|
|
||||||
return $this->username;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPassword() {
|
|
||||||
return $this->password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setPassword($password) {
|
|
||||||
$this->password = $password;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
|
|
@ -1,36 +0,0 @@
|
||||||
<?php
|
|
||||||
include_once 'userEmail.php';
|
|
||||||
include_once 'genderEnum.php';
|
|
||||||
include_once 'user.php';
|
|
||||||
class UserManager {
|
|
||||||
private $dbh;
|
|
||||||
|
|
||||||
public function __construct() {
|
|
||||||
try {
|
|
||||||
$this->dbh = new PDO('mysql:host=localhost;dbname=simpleymail', 'root', '');
|
|
||||||
$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
||||||
}
|
|
||||||
catch (PDOException $e) {die("Verbindung fehlgeschlagen: " . $e->getMessage());}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function userRegister($firstname, $lastname, $birthdate, Gender $gender, $username, $password) {
|
|
||||||
$domain = "@smail.de";
|
|
||||||
$email = $username . $domain;
|
|
||||||
|
|
||||||
$newUser = new User($firstname, $lastname, $birthdate, $gender, $email, $password);
|
|
||||||
|
|
||||||
// $stmt = $this->dbh->prepare("INSERT INTO user ")
|
|
||||||
|
|
||||||
return $newUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function findUserByEmail($email){
|
|
||||||
$stmt = $this->dbh->prepare("SELECT email FROM useremail WHERE email = ?");
|
|
||||||
$stmt->bindValue(1, $email);
|
|
||||||
$stmt->execute();
|
|
||||||
|
|
||||||
return $stmt->fetch() !== false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
|
@ -1,73 +0,0 @@
|
||||||
<!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 id="registerForm" class="form-container" action="../../domain/userManager.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" required /> Männlich
|
|
||||||
</label>
|
|
||||||
<label for="female">
|
|
||||||
<input type="radio" id="female" name="gender" required /> Weiblich
|
|
||||||
</label>
|
|
||||||
<label for="divers">
|
|
||||||
<input type="radio" id="divers" name="gender" required /> Divers
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<label for="birthdate"> Geburtsdatum:<span class="required">*</span>
|
|
||||||
<input type="date" id="birthdate" name="birthdate" />
|
|
||||||
</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="submit" value="Submit">
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<script src="../js/handleRegister.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
|
@ -1,51 +0,0 @@
|
||||||
var passwordInput = document.querySelector("#password");
|
|
||||||
var retypePasswordInput = document.querySelector("#retype_password");
|
|
||||||
var passwordMessage = document.querySelector("#passwordMessage");
|
|
||||||
var retypePasswordMessage = document.querySelector("#retypePasswordMessage");
|
|
||||||
var username = document.querySelector("#username");
|
|
||||||
var userNameMessage = document.querySelector("#userNameMessage");
|
|
||||||
|
|
||||||
var btnSubmit = document.querySelector("input[type='submit']");
|
|
||||||
var form = document.querySelector("#registerForm");
|
|
||||||
|
|
||||||
btnSubmit.addEventListener("click", checkRegister);
|
|
||||||
|
|
||||||
function checkRegister(event) {
|
|
||||||
event.preventDefault(); // Verhindere, dass Formular automatisch abgeschickt wird
|
|
||||||
let hasError = false;
|
|
||||||
|
|
||||||
if (passwordInput.value.length < 6 || passwordInput.value.length === 0) {
|
|
||||||
passwordMessage.innerHTML = "Passwort ist zu kurz";
|
|
||||||
passwordMessage.style.color = "red";
|
|
||||||
hasError = true;
|
|
||||||
} else {
|
|
||||||
passwordMessage.innerHTML = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (retypePasswordInput.value !== passwordInput.value) {
|
|
||||||
retypePasswordMessage.innerHTML = "Passwörter stimmen nicht überein!";
|
|
||||||
retypePasswordMessage.style.color = "red";
|
|
||||||
hasError = true;
|
|
||||||
} else {
|
|
||||||
retypePasswordMessage.innerHTML = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (username.value.includes("@")) {
|
|
||||||
userNameMessage.innerHTML = "Benutzername darf kein @ enthalten!";
|
|
||||||
userNameMessage.style.color = "red";
|
|
||||||
hasError = true;
|
|
||||||
} else if (username.value.length === 0) {
|
|
||||||
userNameMessage.innerHTML = "Benutzername bitte eingeben!";
|
|
||||||
userNameMessage.style.color = "red";
|
|
||||||
hasError = true;
|
|
||||||
} else {
|
|
||||||
userNameMessage.innerHTML = ""; // Fehler entfernen
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!hasError) {
|
|
||||||
form.submit();
|
|
||||||
} else {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?php
|
|
||||||
include_once '../domain/userManager.php';
|
|
||||||
|
|
||||||
$testManager = new UserManager();
|
|
||||||
|
|
||||||
$user = $testManager->userRegister(
|
|
||||||
'Ali',
|
|
||||||
'Obaya',
|
|
||||||
'2000-01-01',
|
|
||||||
Gender::Male,
|
|
||||||
'obai.albek',
|
|
||||||
'meinPasswort123'
|
|
||||||
);
|
|
||||||
|
|
||||||
echo $user;
|
|
||||||
?>
|
|
Loading…
Reference in New Issue