v1.incomplete2
This commit is contained in:
parent
1b66a017fa
commit
fc1839d4b8
34
cancel_subscription.php
Normal file
34
cancel_subscription.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
if (!isset($_SESSION['user_id'])) {
|
||||
header('Location: login.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once 'db/config.php';
|
||||
|
||||
if (isset($_GET['user_service_id'])) {
|
||||
$user_service_id = $_GET['user_service_id'];
|
||||
$user_id = $_SESSION['user_id'];
|
||||
|
||||
try {
|
||||
$pdo = db();
|
||||
// Verify the user owns this subscription before cancelling
|
||||
$stmt = $pdo->prepare("UPDATE user_services SET status = 'cancelled' WHERE id = ? AND user_id = ?");
|
||||
$stmt->execute([$user_service_id, $user_id]);
|
||||
|
||||
if ($stmt->rowCount() > 0) {
|
||||
$_SESSION['message'] = 'Subscription cancelled successfully.';
|
||||
} else {
|
||||
$_SESSION['error'] = 'Could not cancel subscription. It might have been already cancelled or you do not have permission to perform this action.';
|
||||
}
|
||||
} catch (PDOException $e) {
|
||||
$_SESSION['error'] = 'Database error: ' . $e->getMessage();
|
||||
}
|
||||
} else {
|
||||
$_SESSION['error'] = 'Invalid request.';
|
||||
}
|
||||
|
||||
header('Location: dashboard.php');
|
||||
exit;
|
||||
@ -9,6 +9,16 @@ require_once 'includes/header.php';
|
||||
?>
|
||||
|
||||
<div class="container mt-5">
|
||||
<?php
|
||||
if (isset($_SESSION['message'])) {
|
||||
echo "<div class='alert alert-success'>" . $_SESSION['message'] . "</div>";
|
||||
unset($_SESSION['message']);
|
||||
}
|
||||
if (isset($_SESSION['error'])) {
|
||||
echo "<div class='alert alert-danger'>" . $_SESSION['error'] . "</div>";
|
||||
unset($_SESSION['error']);
|
||||
}
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h1>Welcome to your Dashboard, <?php echo htmlspecialchars($_SESSION['user_name']); ?>!</h1>
|
||||
@ -22,15 +32,16 @@ require_once 'includes/header.php';
|
||||
<?php
|
||||
require_once 'db/config.php';
|
||||
$pdo = db();
|
||||
$stmt = $pdo->prepare("SELECT s.name, s.description FROM services s JOIN user_services us ON s.id = us.service_id WHERE us.user_id = ? AND us.status = 'active'");
|
||||
$stmt = $pdo->prepare("SELECT s.name, s.description, us.id as user_service_id FROM services s JOIN user_services us ON s.id = us.service_id WHERE us.user_id = ? AND us.status = 'active'");
|
||||
$stmt->execute([$_SESSION['user_id']]);
|
||||
$user_services = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if (count($user_services) > 0) {
|
||||
echo "<ul class='list-group'>";
|
||||
foreach ($user_services as $service) {
|
||||
echo "<li class='list-group-item'>";
|
||||
echo "<strong>" . htmlspecialchars($service['name']) . "</strong>: " . htmlspecialchars($service['description']);
|
||||
echo "<li class='list-group-item d-flex justify-content-between align-items-center'>";
|
||||
echo "<div><strong>" . htmlspecialchars($service['name']) . "</strong>: " . htmlspecialchars($service['description']) . "</div>";
|
||||
echo "<a href='cancel_subscription.php?user_service_id=" . $service['user_service_id'] . "' class='btn btn-danger btn-sm' onclick='return confirm("Are you sure you want to cancel this subscription?")'>Cancel</a>";
|
||||
echo "</li>";
|
||||
}
|
||||
echo "</ul>";
|
||||
|
||||
@ -68,11 +68,14 @@
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="dashboard.php">Dashboard</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Hi, <?php echo htmlspecialchars($_SESSION['user_name']); ?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="logout.php">Logout</a>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
Hi, <?php echo htmlspecialchars($_SESSION['user_name']); ?>
|
||||
</a>
|
||||
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
<li><a class="dropdown-item" href="profile.php">Profile</a></li>
|
||||
<li><a class="dropdown-item" href="logout.php">Logout</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<?php else: ?>
|
||||
<li class="nav-item">
|
||||
|
||||
72
profile.php
Normal file
72
profile.php
Normal file
@ -0,0 +1,72 @@
|
||||
<?php
|
||||
require_once 'includes/header.php';
|
||||
require_once 'db/config.php';
|
||||
|
||||
if (!isset($_SESSION['user_id'])) {
|
||||
header('Location: login.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
$user_id = $_SESSION['user_id'];
|
||||
|
||||
$message = '';
|
||||
$error = '';
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$username = $_POST['username'];
|
||||
$email = $_POST['email'];
|
||||
|
||||
if (empty($username) || empty($email)) {
|
||||
$error = 'Username and email are required.';
|
||||
} else {
|
||||
try {
|
||||
$stmt = db()->prepare("UPDATE users SET username = ?, email = ? WHERE id = ?");
|
||||
$stmt->execute([$username, $email, $user_id]);
|
||||
$_SESSION['user_name'] = $username;
|
||||
$message = 'Profile updated successfully!';
|
||||
} catch (PDOException $e) {
|
||||
$error = 'Error updating profile: ' . $e->getMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$stmt = db()->prepare("SELECT * FROM users WHERE id = ?");
|
||||
$stmt->execute([$user_id]);
|
||||
$user = $stmt->fetch();
|
||||
|
||||
?>
|
||||
|
||||
<div class="container mt-5">
|
||||
<h1>User Profile</h1>
|
||||
|
||||
<?php if ($message): ?>
|
||||
<div class="alert alert-success">
|
||||
<?php echo $message; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($error): ?>
|
||||
<div class="alert alert-danger">
|
||||
<?php echo $error; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Edit Your Information</h5>
|
||||
<form action="profile.php" method="POST">
|
||||
<div class="mb-3">
|
||||
<label for="username" class="form-label">Username</label>
|
||||
<input type="text" class="form-control" id="username" name="username" value="<?php echo htmlspecialchars($user['username']); ?>" required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="email" class="form-label">Email address</label>
|
||||
<input type="email" class="form-control" id="email" name="email" value="<?php echo htmlspecialchars($user['email']); ?>" required>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Update Profile</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php require_once 'includes/footer.php'; ?>
|
||||
Loading…
x
Reference in New Issue
Block a user