Guten Tag
und zwar habe ich ein Problem, bzw. weiß nicht wie ich das realisieren kann.
Aktuelle Situation:
Der Nutzer gibt in ein Formular seine Logindaten ein (index.php). Dann wird per Post die Informationen zur login.php übermittelt, dort werden diese überprüft und bei falschen Informationen die passenden Meldungen in Variabeln gespeichert. Diese würde er dann auf der login.php ausgeben.
Mein Vorhaben:
Ich würde sehr gerne diese login.php und die index.php zusammenfassen, sodass der Nutzer, bei der fehlerhaften Eingabe von den Logindaten, direkt auch bei dem Loginfenster entsprechend informiert wird und nicht erst auf die login.php weitergeleitet wird, wo dann steht, was falsch war.
Meine versuchte Umsetzung:
Ich habe versucht den PHP Code sich selbst aufzurufen, sprich die Action auf:
Hier ist der ganze Code der index.php:
Leider passiert da gar nichts, nicht mal eine Fehlermeldung. Er leitet mich nicht weiter auf die dashboard.php und die Fehlermeldungen gibt er auch nichts aus.
Nun, wo liegt mein Fehler, oder wie kann ich es anders umsetzen?
Würde mich über Hilfe sehr freuen!
und zwar habe ich ein Problem, bzw. weiß nicht wie ich das realisieren kann.
Aktuelle Situation:
Der Nutzer gibt in ein Formular seine Logindaten ein (index.php). Dann wird per Post die Informationen zur login.php übermittelt, dort werden diese überprüft und bei falschen Informationen die passenden Meldungen in Variabeln gespeichert. Diese würde er dann auf der login.php ausgeben.
Mein Vorhaben:
Ich würde sehr gerne diese login.php und die index.php zusammenfassen, sodass der Nutzer, bei der fehlerhaften Eingabe von den Logindaten, direkt auch bei dem Loginfenster entsprechend informiert wird und nicht erst auf die login.php weitergeleitet wird, wo dann steht, was falsch war.
Meine versuchte Umsetzung:
Ich habe versucht den PHP Code sich selbst aufzurufen, sprich die Action auf:
PHP-Code:
action="<?=$_SERVER['PHP_SELF']?>"
PHP-Code:
<?php
session_start();
session_regenerate_id();
if (empty($_SESSION["login"]))
{}
else
{
echo "<meta http-equiv='refresh' content='0; URL=../dashboard.php'> ";
}
?>
<html>
<head>
<link rel="stylesheet" href="Style/stylesheet.css" type="text/css" />
<a name="top"></a>
<title>Projekt: School Manager</title>
</head>
<body class="blurBg-false" style="background-color:#909090" >
<center>
<form action="<?=$_SERVER['PHP_SELF']?>" class="stylesheet" style="background-color:#FFFFFF;
font-size:14px;
font-family:'Roboto',Arial,Helvetica,sans-serif;
color:#34495E;
max-width:480px;
min-width:150px"
method="post" align="center" >
<div class="title"><h2>Login</h2></div>
<div class="element-input">
<div class="item-cont">
<input class="large" type="text" name="username"
placeholder="Username"/>
<span class="icon-place"></span>
</div>
</div>
<div class="element-password">
<div class="item-cont">
<input class="large" type="password" name="password" value="" placeholder="Password"/>
<span class="icon-place"></span>
</div>
</div>
<div class="submit"><input type="submit" value="Senden"/></div>
</form>
</center>
<footer>
</footer>
<?php
if (isset($_POST['submit']))
{
if (!empty($_POST))
{
if (empty($_POST['username']) || empty($_POST['password']))
{
$message['error'] = 'Es wurden nicht alle Felder ausgefüllt.';
}
else
{
$mysqli = @new mysqli('localhost', 'xxx', 'xxx', 'xxx');
if ($mysqli->connect_error)
{
$message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error;
}
$query = sprintf(
"SELECT username, password, id, userdeactivated FROM users WHERE username = '%s'",
$mysqli->real_escape_string($_POST['username'])
);
$result = $mysqli->query($query);
if ($row = $result->fetch_array(MYSQLI_ASSOC))
{
if (md5($_POST['password']) == $row['password'])
{
if ($row['userdeactivated'] < 1)
{
$_SESSION = array(
'login' => true,
'user' => array('username' => $row['username']),
'userid' => array('id' => $row['id'])
);
$message['success'] = 'Anmeldung erfolgreich, <a href="dashboard.php">weiter zum Inhalt.';
$userid = $_SESSION['userid']['id'];
mysqli_query($mysqli, "UPDATE users Set lastlogin = NOW() WHERE id = $userid"); // Lastlogin wird aktualisiert
mysqli_query($mysqli, "UPDATE users Set onlinestatus = 1 WHERE id = $userid"); // Onlinestatus wird auf 1 gesetzt
header("Location: dashboard.php");
exit();
}
else
{
$message['error'] = 'Ihr Konto ist deaktiviert!';
}
}
else
{
$message['error'] = 'Das Kennwort ist nicht korrekt.';
}
}
else
{
$message['error'] = 'Der Benutzer wurde nicht gefunden.';
}
$mysqli->close();
}
}
else
{
$message['notice'] = 'Geben Sie Ihre Zugangsdaten ein um sich anzumelden.<br />' .
'Wenn Sie noch kein Konto haben, gehen Sie <a href="./register.php">zur Registrierung</a>.';
echo "<meta http-equiv='refresh' content='5; URL=../index.html'> ";
}
}
?>
<?php if (isset($message['error'])): ?>
<fieldset class="error"><legend>Fehler</legend><?php echo $message['error'] ?></fieldset>
<?php endif;
if (isset($message['success'])): ?>
<fieldset class="success"><legend>Erfolg</legend><?php echo $message['success'] ?></fieldset>
<?php endif;
if (isset($message['notice'])): ?>
<fieldset class="notice"><legend>Hinweis</legend><?php echo $message['notice'] ?></fieldset>
<?php endif; ?>
</body>
</html>
Nun, wo liegt mein Fehler, oder wie kann ich es anders umsetzen?
Würde mich über Hilfe sehr freuen!
Kommentar