Hey Leute, eine kurze Frage. Ich habe eine HTML-Seite mit Input Feldern welche anschließend mithilfe von PHP in eine MySQL Datenbank eingetragen werden (User Accounts). Das Login System läuft auch bereits. Wo brauche ich Hilfe? Ich will mir nun den eingetragenen Username anzeigen lassen, wenn ich mich eingeloggt habe. Brauche ich dazu zwingend JavaScript oder denke ich zu kompliziert?
Das Action attribut kann ich ja nicht an 2 Seiten gleichzeitig senden, was dem Problem schnell ein Ende bereitet hätte.
Bin für alle Tipps und Hinweise dankbar! :)
Das Action attribut kann ich ja nicht an 2 Seiten gleichzeitig senden, was dem Problem schnell ein Ende bereitet hätte.
Bin für alle Tipps und Hinweise dankbar! :)
Code:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Login</title>
</head>
<body>
<!-- HEADER -->
<?php
require("mysql.php");
#session_start();
if(isset($_COOKIE["login_cookie"])){
$stmt = $mysql->prepare("SELECT * FROM users WHERE Token = ?");
$stmt->execute([$_COOKIE["login_cookie"]]);
if($stmt->rowCount() == 1){
$row = $stmt->fetch();
session_start();
$_SESSION["username"] = $row["USERNAME"];
header("Location: bereitsangemeldet.php");
} else {
setcookie("login_cookie", "", time() - 1);
}
}
if(isset($_POST["submit"])){
$stmt = $mysql->prepare("SELECT * FROM accounts WHERE USERNAME = ?");
$stmt->execute([$_POST["username"]]);
$count = $stmt->rowCount();
if($count == 1){
//Username ist frei
$row = $stmt->fetch();
if(password_verify($_POST["pw"], $row["PASSWORD"])){
if(isset($_POST["rememberme"])){
$token = bin2hex(random_bytes(16));
$stmt = $mysql->prepare("UPDATE accounts SET Token = ? WHERE USERNAME");
$stmt->execute([$token, $_POST["username"]]);
setcookie("login_cookie", $token, time() + (3600*24*360)); }
session_start();
$_SESSION["username"] = $row["USERNAME"];
header("Location: bereitsangemeldet.php");
} else {
echo "Der Login ist fehlgeschlagen";
}
} else {
echo "Der Login ist fehlgeschlagen";
}
}
?>
<?php include("kopfzeile.php");?>
<div class="col-lg-3 mx-auto p-3 py-md-8">
<h1>Anmelden</h1>
<!-- Gibt Daten an Login.php zurück um Daten mit Datenbank abzugleichen -->
<form action="login.php" method="post">
<input type="text" formaction ="bereitsangemeldet.php" name="username" placeholder="Username" required><br>
<input type="password" name="pw" placeholder="Passwort" required><br>
<button type="submit" name="submit" value="Absenden" >Einloggen</button>
</form>
<div class="form-check">
<input class="form-check-input" type="checkbox" name="rememberme" id="flexCheckDefault">Eingeloggt bleiben
</div><br>
<a href="neueraccount.php">Noch keinen Account?</a>
</div>
<?php include("footer.php");?>
</body>
</html>
Zuletzt bearbeitet von einem Moderator: