The following files exists in this folder. Click to view.
bank.php122 lines UTF-8 Unix (LF) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
<?php
include('check_login.php');
$username = $_SESSION['username'];
$usersFile = 'users.json';
$bankFile = 'bank.json';
// Läs in användare och bankdata
$users = file_exists($usersFile) ? json_decode(file_get_contents($usersFile), true) : [];
$bankData = file_exists($bankFile) ? json_decode(file_get_contents($bankFile), true) : [];
$message = '';
$fel = '';
// Skapa konto med 1000 kr om det inte finns
if(!isset($bankData[$username])){
$bankData[$username] = [
["typ" => "insättning", "belopp" => 1000]
];
file_put_contents($bankFile, json_encode($bankData, JSON_PRETTY_PRINT));
}
// Hantera borttagning av konto
if (isset($_POST['deleteAccount'])) {
unset($users[$username]); // ta bort användare
unset($bankData[$username]); // ta bort bankdata
file_put_contents($usersFile, json_encode($users, JSON_PRETTY_PRINT));
file_put_contents($bankFile, json_encode($bankData, JSON_PRETTY_PRINT));
session_destroy();
header("Location: index.php?message=Konto borttaget");
exit;
}
// Hantera lösenordsbyte
if (isset($_POST['newPassword'])) {
$newPassword = trim($_POST['newPassword']);
if (!empty($newPassword)) {
$users[$username] = password_hash($newPassword, PASSWORD_DEFAULT);
file_put_contents($usersFile, json_encode($users, JSON_PRETTY_PRINT));
$message = "Lösenord uppdaterat!";
}
}
// Hantera insättning/uttag
if (isset($_POST['belopp'], $_POST['typ'])) {
$belopp = (int)$_POST['belopp'];
$typ = $_POST['typ'];
$saldo = 0;
foreach ($bankData[$username] as $t) {
$saldo += ($t['typ'] === 'insättning') ? $t['belopp'] : -$t['belopp'];
}
if ($typ === 'uttag' && $belopp > $saldo){
$fel = "Du har inte tillräckligt med pengar!";
} elseif ($belopp <= 0){
$fel = "Beloppet måste vara större än 0.";
} else {
$bankData[$username][] = ["typ" => $typ, "belopp" => $belopp];
file_put_contents($bankFile, json_encode($bankData, JSON_PRETTY_PRINT));
header("Location: bank.php");
exit;
}
}
// Beräkna saldo
$saldo = 0;
foreach ($bankData[$username] as $t) {
$saldo += ($t['typ'] === 'insättning') ? $t['belopp'] : -$t['belopp'];
}
?>
<!DOCTYPE html>
<html lang="sv">
<head>
<meta charset="UTF-8">
<title>Min Bank</title>
<link rel="stylesheet" href="style_p01.css">
</head>
<body>
<div class="container">
<h1>Hej <?php echo htmlspecialchars($username); ?>!</h1>
<p>Ditt saldo är: <strong><?php echo $saldo; ?> kr</strong></p>
<?php if (!empty($fel)) echo "<p style='color:red;'>$fel</p>"; ?>
<?php if (!empty($message)) echo "<p style='color:green;'>$message</p>"; ?>
<form method="post">
<label>Belopp:</label>
<input type="number" name="belopp" required>
<select name="typ">
<option value="insättning">Insättning</option>
<option value="uttag">Uttag</option>
</select>
<input type="submit" value="Utför">
</form>
<h3>Transaktioner:</h3>
<ul>
<?php foreach ($bankData[$username] as $t): ?>
<li><?php echo ucfirst($t['typ']) . ": " . $t['belopp'] . " kr"; ?></li>
<?php endforeach; ?>
</ul>
<h3>Byt lösenord</h3>
<form method="post">
Nytt lösenord: <input type="password" name="newPassword" required><br>
<input type="submit" value="Byt lösenord">
</form>
<h3>Ta bort konto</h3>
<form method="post">
<input type="submit" name="deleteAccount" value="Ta bort konto">
</form>
<p><a href="logout.php">Logga ut</a></p>
</div>
</body>
</html>