Jinsi ya Kuweka Restriction kwa Watumiaji Walio-Expire kwenye PHP System (Full Code + Maelezo Kamili)
Hii inalinda biashara yako na pia inahakikisha mtumiaji analipa ili kuendelea kutumia huduma.
Katika makala hii tutajifunza:
✅ Jinsi ya kupima kama akaunti ime-expire
✅ Jinsi ya kuzuia user kuingia kwenye pages nyingine
✅ Namna ya kumrudisha dashboard pekee
✅ Ujumbe mzuri wa kumjulisha kuwa muda wake umeisha
✅ Full PHP code ya kuweka kwenye dashboard yako
🛑 Kwa Nini Ni Muhimu Kuzuia Watumiaji Walio-Expire?
Mfumo bila expiry protection unaweza kutumika:
Bila malipo
Kwa muda mrefu kuliko uliokusudia
Bila udhibiti wa mmiliki wa system
Kwa hiyo, unahitaji code ambayo itamruhusu user kuingia dashboard pekee, lakini isiwaruhusu kufungua pages zingine mpaka walipe upya.
🧠 Logic Kuu ya Expiry Protection
Chukua user ID kutoka session
Retrieve taarifa za mtumiaji kutoka database
Kagua date_to_expire
Kama imepita → set variable isExpired = true
Dashboard itaonesha alert ya malipo
Buttons, links na stats zinakuwa disabled kama akaunti ime-expire
Kurasa nyingine zinapaswa kuwa na expiry check hii pia
🧩 Full PHP Code (Ready to Use) — Kuingiza kwenye Dashboard
🔥 Hii ndiyo code uliyoitaka — imeboreshwa kama blog, bila kubadilisha logic yako.
<?php
session_start();
require 'config.php';
$user_id = $_SESSION['user_id'] ?? null;
if (!$user_id) {
header("Location: uhasibu_login.php");
exit;
}
try {
$pdo = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8mb4", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Database Connection Failed: " . $e->getMessage());
}
// Fetch user
$stmt = $pdo->prepare("SELECT username, email, created_at, date_to_expire FROM uhasibu_users WHERE id = ?");
$stmt->execute([$user_id]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$user) {
header("Location: faulink_logout.php");
exit;
}
// Check if account is expired
$today = date("Y-m-d");
$isExpired = false;
$expiredMessage = '';
if (!empty($user['date_to_expire']) && $today > $user['date_to_expire']) {
$isExpired = true;
$expiredMessage = '
<div class="alert alert-danger text-center">
<h2>⛔ Akaunti yako ime-expire</h2>
<p>Tafadhali lipa au wasiliana na FAULINK kupitia <a href="https://faulink.com" target="_blank">faulink.com</a> au piga 0693118509.</p>
<a href="uhasibu_login.php" style="display:inline-block;margin-top:20px;padding:10px 20px;background:#007bff;color:white;border-radius:5px;text-decoration:none;">Rudi Login</a>
</div>
';
}
// Statistics (only if not expired)
if (!$isExpired) {
$classCount = $pdo->prepare("SELECT COUNT(*) FROM uhasibu_classes WHERE user_id=?");
$classCount->execute([$user_id]);
$classCount = $classCount->fetchColumn();
$studentCount = $pdo->prepare("SELECT COUNT(*) FROM uhasibu_students WHERE user_id=?");
$studentCount->execute([$user_id]);
$studentCount = $studentCount->fetchColumn();
$contributionCount = $pdo->prepare("SELECT COUNT(*) FROM uhasibu_contributions WHERE user_id=?");
$contributionCount->execute([$user_id]);
$contributionCount = $contributionCount->fetchColumn();
}
?>
🖥️ Dashboard View kwa Mtumiaji Aliye-Expire
Buttons → disabled
Stats → zinakuwa 0
User anaona alert
Hawezi kuingia sehemu nyingine
Mfumo unafanya kazi bila mgogoro.
🎯 Hitimisho
Kwa kuongeza expiry protection kwenye PHP system, unalinda biashara yako, unadhibiti watumiaji na unahakikisha malipo yanafanyika ipasavyo.