How to Restrict Expired Users from Accessing Your PHP System (Full Code Guide)
Katika mifumo mingi ya PHP, ni muhimu kuweka udhibiti wa muda (account expiration) ili kuzuia watumiaji ambao muda wao umeisha kuendelea kutumia system bila kufanya malipo mapya.
Leo nakupa full working solution ambayo:
âœ”ï¸ Inakagua kama user ame-expire
âœ”ï¸ Inamzuia asifike kwenye page yoyote
âœ”ï¸ Inamrudisha dashboard pekee
âœ”ï¸ Inamwonyesha ujumbe wa kulipia
âœ”ï¸ Ni simple, fast, secure, na production-ready
ðŸ—„ï¸ Database Structure Requirement
Katika table yako ya watumiaji (mfano: users), hakikisha una column:
id
username
email
password
date_to_expire
Mfano wa siku ya ku-expire:
2025-01-30
🧠Logic ya Kuzuia Page Zote
👉 Ukaguzi unafanyika mara tu user anapoingia kwenye ukurasa wowote
👉 Kama date_to_expire < leo, basi:
Hawezi kufungua pages zingine
Ataishia kwenye dashboard
Anaonyeshwa ujumbe wa kulipia
🧩 FULL PHP EXPIRATION CHECK (Reusable)
Hiki kitakuwa file unachoki-include kwenye pages ZOTE:
file: check_expire.php
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $e) {
die("DB Error: " . $e->getMessage());
}
// Fetch user expiration data
$stmt = $pdo->prepare("SELECT username, date_to_expire FROM users WHERE id = ?");
$stmt->execute([$user_id]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
// Safety check
if (!$user) {
header("Location: logout.php");
exit;
}
$today = date("Y-m-d");
$isExpired = false;
// Check expiration
if (!empty($user['date_to_expire']) && $today > $user['date_to_expire']) {
$isExpired = true;
$_SESSION['expired_message'] = "
â›” Akaunti Yako Ime-Expire
Ili kuendelea kutumia huduma, tafadhali fanya malipo upya au wasiliana na FAULINK kupitia Website au piga: 0693 118 509
Rudi Dashboard";
}
?>
🛑 HOW TO BLOCK OTHER PAGES
Katika kila file jingine (students.php, reports.php, contributions.php, etc.) weka juu:
Hii inazuia user asiingie page zingine.
ðŸ Dashboard.php (User Allowed + Message Shown)
Dashboard itaonyesha ujumbe kama user ame-expire:
Karibu, = htmlspecialchars($user['username']) ?>
= $_SESSION['expired_message']; ?>
System Status: Active
🎯 What This System Achieves
âœ”ï¸ Users wenye ku-expire hawawezi kuingia kwa mafile yoyote
âœ”ï¸ Wanabaki dashboard tu
âœ”ï¸ Wanapata ujumbe wa malipo
âœ”ï¸ Pages zingine hazifunguki bila kuwa active
🚀 Unahitaji mfumo au website ya biashara?
Chagua huduma hapa chini kisha mteja bofya moja kwa moja kwenda kwenye ukurasa wa huduma au kuwasiliana nasi kwa WhatsApp.