main
Obai Albek 2025-06-08 00:39:30 +02:00
parent 5fb52719e6
commit 2ed36a5927
6 changed files with 73 additions and 39 deletions

View File

@ -0,0 +1,15 @@
<?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]);
}
?>

View File

@ -1,8 +0,0 @@
<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=simpleymail', 'root', '');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Verbindung fehlgeschlagen: " . $e->getMessage();
}
?>

View File

@ -1,15 +1,36 @@
<?php <?php
include_once 'userEmail.php'; include_once 'userEmail.php';
include_once 'genderEnum.php'; include_once 'genderEnum.php';
include_once 'database.php';
include_once 'user.php'; include_once 'user.php';
class UserManager { 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) { public function userRegister($firstname, $lastname, $birthdate, Gender $gender, $username, $password) {
$domain = "@smail.de"; $domain = "@smail.de";
$email = $username . $domain; $email = $username . $domain;
$newUser = new User($firstname, $lastname, $birthdate, $gender, $email, $password); $newUser = new User($firstname, $lastname, $birthdate, $gender, $email, $password);
// $stmt = $this->dbh->prepare("INSERT INTO user ")
return $newUser; 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;
}
} }
?> ?>

View File

@ -12,7 +12,7 @@
<body> <body>
<div> <div>
<form class="form-container" action="../../domain/database.php"> <form id="registerForm" class="form-container" action="../../domain/userManager.php" method="post">
<h1>Register</h1> <h1>Register</h1>
<label for="firstName">Vorname:<span class="required">*</span> <label for="firstName">Vorname:<span class="required">*</span>
<input type="text" id="firstName" name="firstName" required /> <input type="text" id="firstName" name="firstName" required />
@ -40,8 +40,8 @@
<input type="date" id="birthdate" name="birthdate" /> <input type="date" id="birthdate" name="birthdate" />
</label> </label>
<label for="username">Benutzername:<span class="required">*</span><br><span <label for="username">Benutzername:<span class="required">*</span><br>
id="userNameMessage"></span></label> <span id="userNameMessage"></span></label>
<div class="username-group"> <div class="username-group">
<input type="text" id="username" name="username" required /> <input type="text" id="username" name="username" required />
<span id="domain">@smail.de</span> <span id="domain">@smail.de</span>
@ -64,7 +64,7 @@
<input type="password" id="retype_password" name="retype_password" required /> <input type="password" id="retype_password" name="retype_password" required />
</label> </label>
<input type="submit" name="submit" value="Submit"> <input id = "submit" type="submit" name="submit" value="Submit">
</form> </form>
</div> </div>
<script src="../js/handleRegister.js"></script> <script src="../js/handleRegister.js"></script>

View File

@ -2,44 +2,50 @@ var passwordInput = document.querySelector("#password");
var retypePasswordInput = document.querySelector("#retype_password"); var retypePasswordInput = document.querySelector("#retype_password");
var passwordMessage = document.querySelector("#passwordMessage"); var passwordMessage = document.querySelector("#passwordMessage");
var retypePasswordMessage = document.querySelector("#retypePasswordMessage"); var retypePasswordMessage = document.querySelector("#retypePasswordMessage");
var username = document.querySelector("#username"); var username = document.querySelector("#username");
var userNameMessage = document.querySelector("#userNameMessage"); var userNameMessage = document.querySelector("#userNameMessage");
username.addEventListener("input",checkUsername); var btnSubmit = document.querySelector("input[type='submit']");
var form = document.querySelector("#registerForm");
passwordInput.addEventListener("input", checkPassword); btnSubmit.addEventListener("click", checkRegister);
retypePasswordInput.addEventListener("input", checkRetypePassword);
function checkPassword() { function checkRegister(event) {
if (passwordInput.value.length < 6 || passwordInput.value.length == 0) { 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.innerHTML = "Passwort ist zu kurz";
passwordMessage.style.color = "red"; passwordMessage.style.color = "red";
passwordMessage.style.margin = 0; hasError = true;
} else { } else {
passwordMessage.innerHTML = "Passwort sieht gut aus!"; passwordMessage.innerHTML = "";
passwordMessage.style.color = "green";
} }
checkRetypePassword();
}
function checkRetypePassword() {
if (retypePasswordInput.value !== passwordInput.value) { if (retypePasswordInput.value !== passwordInput.value) {
retypePasswordMessage.innerHTML = "Passwörter stimmen nicht überein!"; retypePasswordMessage.innerHTML = "Passwörter stimmen nicht überein!";
retypePasswordMessage.style.color = "red"; retypePasswordMessage.style.color = "red";
hasError = true;
} else { } else {
retypePasswordMessage.innerHTML = "Passwörter sind identisch"; retypePasswordMessage.innerHTML = "";
retypePasswordMessage.style.color = "green"; }
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;
} }
} }
function checkUsername(){
if (username.value.includes("@")){
userNameMessage.innerHTML = "Benutzername darf nur Buchstaben und Zahlen enthalten!";
userNameMessage.style.color="red";
userNameMessage.style.margin=0;
}else
userNameMessage.innerHTML = "";
}

View File

@ -8,7 +8,7 @@ $user = $testManager->userRegister(
'Obaya', 'Obaya',
'2000-01-01', '2000-01-01',
Gender::Male, Gender::Male,
'ali.obaya', 'obai.albek',
'meinPasswort123' 'meinPasswort123'
); );