initial draft of the achievement system
This commit is contained in:
101
homepage/machs/login.php
Normal file
101
homepage/machs/login.php
Normal file
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
|
||||
|
||||
require_once("config.php");
|
||||
|
||||
require_once("./local/dbConf.php");
|
||||
require_once("./local/achievementsConf.php");
|
||||
|
||||
require_once("./lib/achievementsLib.php");
|
||||
|
||||
function checkCredentials($username, $password, $db_server, $db_user, $db_password, $db_name){
|
||||
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
|
||||
if ($mysqli->connect_error) {
|
||||
$message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error;
|
||||
} else {
|
||||
$query = sprintf(
|
||||
"SELECT id, loginName, pwHash, config FROM wkParticipo_Users WHERE loginName = '%s'",
|
||||
$mysqli->real_escape_string($_POST['f']['username'])
|
||||
);
|
||||
$result = $mysqli->query($query);
|
||||
if ($row = $result->fetch_array(MYSQLI_ASSOC)) {
|
||||
if( password_verify( $_POST['f']['password'], $row['pwHash']) ){
|
||||
session_start();
|
||||
$_SESSION = array(
|
||||
'login' => true,
|
||||
'user' => array(
|
||||
'username' => $row['loginName'],
|
||||
'userId' => $row['id'],
|
||||
'userConfig' => json_decode($row['config'], true)
|
||||
),
|
||||
);
|
||||
$message['success'] = 'Anmeldung erfolgreich, <a href="index.php">weiter zum Inhalt</a>.';
|
||||
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/achievements?user=' . $_POST['f']['username']);
|
||||
} else {
|
||||
sleep(1);
|
||||
$message['error'] = 'Das Kennwort ist nicht korrekt.';
|
||||
}
|
||||
}
|
||||
}
|
||||
return $message;
|
||||
}
|
||||
|
||||
|
||||
if (isset($_SESSION['login'])) {
|
||||
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/index.php');
|
||||
}
|
||||
else{
|
||||
if (!empty($_POST)) {
|
||||
if (
|
||||
empty($_POST['f']['username']) ||
|
||||
empty($_POST['f']['password'])
|
||||
) {
|
||||
$message['error'] = 'Es wurden nicht alle Felder ausgefüllt.';
|
||||
} else {
|
||||
|
||||
$message = checkCredentials($_POST['f']['username'], $_POST['f']['password'], $db_server, $db_user, $db_password, $db_name);
|
||||
if( !isset($message['error']) )
|
||||
$message['notice'] = "Achievement-System der Judoka des Chemnitzer WSV";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Wettkampfplanung - Login</title>
|
||||
<meta name="description" content="Loginseite des Achievementsystemes der Judoka des CWSV">
|
||||
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Achievementsystem der Judoka des Chemnitzer WSV</h1>
|
||||
<?php echo(htmlRetMessage($message));?>
|
||||
<form class="loginForm" action="./login.php" method="post">
|
||||
<fieldset>
|
||||
<legend>Benutzerdaten</legend>
|
||||
<div>
|
||||
<label for="username">Benutzername</label>
|
||||
<input id="username"type="text" name="f[username]" <?php echo isset($_POST['f']['username']) ? ' value="' . htmlspecialchars($_POST['f']['username']) . '"' : '' ?> />
|
||||
</div>
|
||||
<div>
|
||||
<label for="password">Kennnwort</label>
|
||||
<input id="password" type="password" name="f[password]" />
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<div>
|
||||
<button type="submit" name="submit" value="Anmelden">Anmelden</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset class="notice"><legend>Hinweise</legend>
|
||||
<ul>
|
||||
<li>Logindaten sind über den Übungsleiter zu beantragen.</li>
|
||||
<li>Dieses Projekt ist in mehr oder weniger aktiven Entwicklung. Sollte mal was nicht funktionieren, kann es sein, dass ich gerade daran herumschreibe. Also ruhig zu einem späteren Zeitpunkt noch einmal probieren.</li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user