Hallo,
ich habe bei meinem Login-Skript das Problem, dass ich manchmal (aber nicht immer) zwei mal auf den Submit-Button klicken muss, damit die Weiterleitung zum Backend funktioniert. D.h. manchmal wird das Formular beim ersten Absenden einfach neu aufgerufen und ich muss es nochmal abschicken, erst dann klappt es. Komischerweise nicht immer, aber ich habe noch nicht herausgefunden wann das so ist.. Ich vermute mal dass das mit der Session zu tun hat?
Hier der Code:
Ich hoffe ihr könnt mir helfen... Danke im Voraus!
PS: In den include-Dateien sollte eigentlich nichts relevantes stehen.
ich habe bei meinem Login-Skript das Problem, dass ich manchmal (aber nicht immer) zwei mal auf den Submit-Button klicken muss, damit die Weiterleitung zum Backend funktioniert. D.h. manchmal wird das Formular beim ersten Absenden einfach neu aufgerufen und ich muss es nochmal abschicken, erst dann klappt es. Komischerweise nicht immer, aber ich habe noch nicht herausgefunden wann das so ist.. Ich vermute mal dass das mit der Session zu tun hat?
Hier der Code:
PHP-Code:
<?php
session_start();
// Wurde das Skript schon installiert?
if(!file_exists("config/dbconfig.php")) {
header("location: install.php");
}
// Falls eingeloggt, Weiterleitung zum Backend
if(isset($_SESSION['login'])) {
header("location: backend/index.php?menu=dashboard");
}
$error = 0;
include("config/config.php");
include($path."inc/dbconnect.php");
// Formular abgeschickt
if(isset($_POST["submit"])) {
$login_name = $_POST["login_name"];
$login_pw = hash('sha256', $_POST["login_pw"]);
// Admin und Passwort vergleichen
$queryStr = "SELECT * FROM " . $dbpraefix . "users WHERE username = '$login_name' LIMIT 1";
$query = $con -> query($queryStr);
$row = $query -> fetch_assoc();
// Zugangsdaten korrekt
if($login_pw == $row["password"]) {
$_SESSION['login'] = 1;
$_SESSION['userid'] = $row["id"];
$_SESSION['admin'] = $row["admin"];
$_SESSION['username'] = $login_name;
header("location: backend/index.php?menu=dashboard");
}
// Zugangsdaten falsch
else {
$error = 1;
}
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<!-- Begin Head -->
<?php include("inc/html/meta.php"); ?>
<!-- End Head -->
</head>
<body>
<div id="form-wrapper"<?php if($error==1) { echo ' class="error"'; } ?>>
<h1><i class="fa fa-user"></i> Login</h1>
<?php
if($error===1) {
?>
<div class="alert-wrapper">
<div class="alert alert-danger">
<p>Der Benutzername oder das Passwort ist falsch. Bitte versuchen Sie es erneut.</p>
</div>
</div>
<?php
}
?>
<form action="index.php" method="post" role="form">
<div class="form-group">
<input type="text" class="form-control" name="login_name" id="login_name" value="Benutzername" onfocus="focus_field_name(this)" onblur="leave_field_name(this)">
</div>
<div class="form-group mandatory">
<input type="password" class="form-control" name="login_pw" id="login_pw" value="Passwort" onfocus="focus_field_pass(this)" onblur="leave_field_pass(this)">
</div>
<button type="submit" class="btn btn-primary" name="submit">Anmelden</button>
</form>
</div>
</body>
</html>
PS: In den include-Dateien sollte eigentlich nichts relevantes stehen.
Kommentar