feat(logs) displaying logs on account page

main
Valentin 2024-06-17 10:59:03 +02:00
parent 387bc0a2d7
commit 3e4cb6ddd9
6 changed files with 46 additions and 13 deletions

View File

@ -48,9 +48,9 @@ $userDetails = getUserDetails($_SESSION['user_id']);
<?php
echo $_SESSION['message'] ?? '';
unset($_SESSION['message']);
?>
<h2 class="mb-4">Edit Account</h2>
<form method="POST" action="">
?>
<h2 class="mb-4">Edit Account</h2>
<form method="POST" action="">
<div class="mb-3">
<label for="email" class="form-label">Email</label>
<input type="email" class="form-control" id="email" name="email" value="<?php echo htmlspecialchars($userDetails['email']); ?>" placeholder="Enter your email" required>
@ -69,5 +69,28 @@ $userDetails = getUserDetails($_SESSION['user_id']);
<small class="form-text text-muted">Leave blank if you do not want to change the password</small>
</div>
<button type="submit" class="btn btn-primary">Save Changes</button>
</form>
</div>
</form>
</div>
<?php
$query = $conn->prepare("SELECT logs.ip, logs.date, users.email FROM logs JOIN users ON logs.userId = users.id");
$query->execute();
$logDetails = $query->fetchAll(PDO::FETCH_ASSOC);
?>
<table class="table mt-4">
<thead>
<tr>
<th>IP</th>
<th>Date</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<?php foreach ($logDetails as $log): ?>
<tr>
<td><?php echo $log['ip']; ?></td>
<td><?php echo $log['date']; ?></td>
<td><?php echo $log['email']; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>

View File

@ -26,6 +26,8 @@ $query = $conn->prepare("SELECT DISTINCT lineId FROM favorites WHERE userId = ?"
$query->execute([$_SESSION['user_id']]);
$lineIds = $query->fetchAll(PDO::FETCH_COLUMN);
echo $_SERVER['REMOTE_ADDR'];
?>
<div class="px-4 my-5 text-center">

View File

@ -13,9 +13,10 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$_SESSION['is_admin'] = $user['is_admin'];
header("Location: /");
$log = $conn->prepare("INSERT INTO logs (userId, date) VALUES (:userId, :date)");
$log = $conn->prepare("INSERT INTO logs (userId, date, ip) VALUES (:userId, :date, :ip)");
$log->bindParam(':userId', $user['id']);
$log->bindParam(':date', date('Y-m-d-H-i-s'));
$log->bindParam(':ip', $_SERVER['REMOTE_ADDR']);
$log->execute();
} else {
$errorMessage = "Invalid email or password.";

View File

@ -91,11 +91,11 @@ document.addEventListener('DOMContentLoaded', function() {
if (action === 'add') {
buttonElement.classList.remove('add-stop', 'btn-success');
buttonElement.classList.add('remove-stop', 'btn-danger');
buttonElement.textContent = 'Retirer';
buttonElement.textContent = 'Revoke';
} else {
buttonElement.classList.remove('remove-stop', 'btn-danger');
buttonElement.classList.add('add-stop', 'btn-success');
buttonElement.textContent = 'Ajouter';
buttonElement.textContent = 'Add';
}
buttonElement.removeEventListener('click', arguments.callee);
buttonElement.addEventListener('click', arguments.callee);

View File

@ -11,11 +11,17 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['stopId'], $_POST['lin
try {
if ($action === 'add') {
$stmt = $conn->prepare("INSERT INTO favorites (userId, stopId, lineId) VALUES (?, ?, ?)");
$stmt->execute([$userId, $stopId, $lineId]);
$query = $conn->prepare("SELECT * FROM favorites WHERE userId = ? AND stopId = ? AND lineId = ?");
$query->execute([$userId, $stopId, $lineId]);
$existingFavorite = $query->fetch();
if (!$existingFavorite) {
$query = $conn->prepare("INSERT INTO favorites (userId, stopId, lineId) VALUES (?, ?, ?)");
$query->execute([$userId, $stopId, $lineId]);
}
} elseif ($action === 'remove') {
$stmt = $conn->prepare("DELETE FROM favorites WHERE userId = ? AND stopId = ? AND lineId = ?");
$stmt->execute([$userId, $stopId, $lineId]);
$query = $conn->prepare("DELETE FROM favorites WHERE userId = ? AND stopId = ? AND lineId = ?");
$query->execute([$userId, $stopId, $lineId]);
}
echo json_encode(['success' => true]);
} catch (PDOException $e) {

View File

@ -24,6 +24,7 @@ try {
$conn->exec("CREATE TABLE IF NOT EXISTS logs (
userId INT NOT NULL,
date DATETIME NOT NULL,
ip VARCHAR(255) NOT NULL,
FOREIGN KEY (userId) REFERENCES users(id)
)");