Merge remote-tracking branch 'origin/develop' into login_function

# Conflicts:
#	public/registrieren/registrieren.html

- Cleaned up code
- Added a specific error if e-mail that are already registered are tried to register again
- fields in the registration form cant be empty
- email input in registration form is now html type email
- fields in login form cant be empty
- email input on login form is now html type email
This commit is contained in:
Fabian 2025-04-29 21:18:10 +02:00
parent d88761032a
commit c4d922b903
10 changed files with 11 additions and 75 deletions

View File

@ -32,7 +32,7 @@
<!-- Eingabefeld für Benutzername -->
<div class="input-group">
<input id="email" type="text" placeholder="E-Mail" required/>
<input id="email" type="email" placeholder="E-Mail" required/>
<i class="icon fas fa-user"></i>
</div>
@ -54,7 +54,7 @@
</main>
<script>
document.getElementById('submit').addEventListener('click', async (event) => {
document.querySelector('form').addEventListener('submit', async (event) => {
event.preventDefault()
const email = document.getElementById('email').value

View File

@ -68,7 +68,7 @@
</main>
<script>
document.getElementById('register').addEventListener('click', async (event) => {
document.querySelector('form').addEventListener('submit', async (event) => {
event.preventDefault();
const passwordEl = document.getElementById('regPassword')

View File

@ -31,7 +31,7 @@
</section>
<!-- Hauptinhalt -->
<h1>Unsere Neusten Produkte: </h1>
<h1>Unsere neusten Produkte: </h1>
<section class="card-grid" id="latest-products">
<!-- Dynamische Produkte (5 neuesten Produkte) -->
</section>

View File

@ -21,7 +21,7 @@ document.addEventListener("DOMContentLoaded", () => {
// Header-Inhalt in die Seite einfügen
headerTarget.innerHTML = data;
// 🚀 WICHTIG: Jetzt den Warenkorb zählen, nachdem der Header geladen ist!
// WICHTIG: Jetzt den Warenkorb zählen, nachdem der Header geladen ist!
zeigeWarenkorbAnzahl();
zeigeLoginStatus();
@ -83,7 +83,7 @@ document.addEventListener("DOMContentLoaded", () => {
if (userId) {
loginBtn.textContent = 'Logout'
loginBtn.href = '#'
loginBtn.href = '/'
loginBtn.addEventListener('click', (e) => {
e.preventDefault()
sessionStorage.clear()

View File

@ -1,23 +0,0 @@
let sidebarEl = document.getElementById("mySidebar")
let mainEl = document.getElementById("main")
/* Set the width of the sidebar to 250px and the left margin of the page content to 250px */
function openNav() {
sidebarEl.style.width = "250px";
mainEl.style.marginLeft = "250px";
}
/* Set the width of the sidebar to 0 and the left margin of the page content to 0 */
function closeNav() {
sidebarEl.style.width = "0";
mainEl.style.marginLeft = "0";
}
/* Toggle the sidebar */
function toggleNav() {
if (sidebarEl.offsetWidth > 0) {
closeNav()
} else {
openNav()
}
}

View File

@ -1,7 +0,0 @@
let nameEl = document.getElementById("loginMail");
let passwordEl = document.getElementById("loginPassword");
function login() {
console.log(nameEl.value)
console.log(passwordEl.value)
}

View File

@ -1,17 +0,0 @@
const mysql = require('mysql');
const connection = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "webshop"
})
connection.connect(function (err) {
if (err) throw err
console.log("Connected to database")
connection.query("SELECT * FROM webshop.product LIMIT 10", function (err, result) {
if (err) throw err
console.log(result)
})
})

View File

@ -1,17 +0,0 @@
const mysql = require('mysql');
const connection = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "webshop"
})
connection.connect(function (err) {
if (err) throw err
console.log("Connected to database")
connection.query("SELECT * FROM webshop.user WHERE ID = 15", function (err, result) {
if (err) throw err
console.log(result)
})
})

View File

@ -6,10 +6,6 @@ router.get('/', (req, res) => {
res.sendFile(path.join(__dirname, '../../../public/startseite/startseite.html'));
})
router.get('/example', (req, res) => {
res.sendFile(path.join(__dirname, '../../../public/example/index.html'));
})
// Route - Login
router.get('/login', (req, res) => {
res.sendFile(path.join(__dirname, '../../../public/login/login.html'));

View File

@ -135,11 +135,15 @@ app.get('/api/products/sportwagen', async (req, res) => {
app.post('/api/user/registration', (req, res) => {
// SQL-Query für Nutzerregistration
const {name, lower_name, email, passwd} = req.body;
const sql = "INSERT INTO webshop.user (name, lower_name, email, passwd, passwd_hash_algo) VALUES (?, ?, ?, ?, 'none')"
// Query abschicken
db.query(sql, [name, lower_name, email, passwd], (err, results) => {
if (err) {
if (err.code === 'ER_DUP_ENTRY'){
res.status(409).json({message: 'Diese E-Mail Adresse ist bereits registriert.'})
}
console.error('Fehler beim Schreiben in die Datenbank: ', err);
res.status(500).send('Fehler beim Schreiben in die Datenbank');
return;