Jinsi ya Kutengeneza Expiring Date System kwa kutumia PHP na MySQL (Full Guide kwa Beginners na Professionals)
Jifunze jinsi ya kutengeneza mfumo wa expiring date kwa kutumia PHP na MySQL. Katika tutorial hii tutajifunza:
kuongeza expire date kwenye users
ku-check account expiration
ku-block access automatically
kuonyesha countdown ya siku zilizobaki
ku-redirect expired users
kutengeneza professional subscription system
Mwongozo huu unafaa kwa:
School Management Systems
Accounting Systems
Farm Management Systems
Hospital Systems
SaaS Projects
Membership Websites
Website: https://faulink.com
Expiring Date ni Nini?
Expiring date ni tarehe ambayo:
account itaisha
subscription ita-expire
user atazuiwa kutumia mfumo
Mfano:
2026-12-31
Baada ya tarehe hiyo:
user hawezi login
AU
anaweza kuona baadhi ya pages tu
Kwa Nini Expiring Date ni Muhimu?
Expiring system hutumika kwenye:
Paid systems
School systems
Online services
Membership websites
SMS systems
Subscription software
Faida zake:
✅ Automatic control
✅ Professional billing
✅ User management
✅ Security
✅ Subscription automation
Hatua ya Kwanza: Add Expire Date Column
Kwanza ongeza column kwenye table ya users.
ALTER TABLE users
ADD COLUMN expire_date DATE NULL;
Mfano wa Users Table
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
full_name VARCHAR(100),
username VARCHAR(100),
password VARCHAR(255),
expire_date DATE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Hatua ya Pili: Register User na Expire Date
Mfano wa kuongeza user mwenye expiration ya mwaka mmoja.
<?php
$expire_date = date('Y-m-d', strtotime('+1 year'));
$stmt = $pdo->prepare("
INSERT INTO users
(
full_name,
username,
password,
expire_date
)
VALUES
(
?, ?, ?, ?
)
");
$stmt->execute([
"Faustine Maiga",
"faustine",
password_hash("123456", PASSWORD_DEFAULT),
$expire_date
]);
?>
Kuelewa strtotime()
strtotime('+1 year')
Inaongeza mwaka mmoja kuanzia leo.
Mifano Mingine
Siku 30
strtotime('+30 days')
Miezi 6
strtotime('+6 months')
Wiki 2
strtotime('+2 weeks')
Hatua ya Tatu: Check Kama Account Imeexpire
Hii ndiyo sehemu muhimu zaidi.
<?php
$today = date('Y-m-d');
if ($user['expire_date'] < $today) {
echo "Account expired";
}
?>
Professional Expiration Check
<?php
$today = date('Y-m-d');
$isExpired = false;
if (
!empty($user['expire_date']) &&
$user['expire_date'] < $today
) {
$isExpired = true;
}
?>
Hatua ya Nne: Zuia Access
Mfano:
<?php
if ($isExpired) {
die("Subscription expired");
}
?>
Professional Redirect
<?php
if ($isExpired) {
header("Location: renew.php");
exit;
}
?>
Hatua ya Tano: Show Days Remaining
Users wengi hupenda kuona siku zilizobaki.
<?php
$today = new DateTime();
$expire = new DateTime($user['expire_date']);
$remaining = $today->diff($expire);
echo $remaining->days . " days remaining";
?>
Mfano wa Output
25 days remaining
Hatua ya Sita: Warning Message
<?php
if ($remaining->days <= 7) {
echo "
<div class='alert alert-warning'>
Account yako itaexpire ndani ya siku 7
</div>
";
}
?>
Hatua ya Saba: Expired Message nzuri
<div class="alert alert-danger">
<h4>
Subscription Expired
</h4>
<p>
Tafadhali renew account yako kuendelea kutumia mfumo.
</p>
</div>
Hatua ya Nane: Restrict Specific Pages
Mfano:
$allowedWhenExpired = [
'renew.php',
'logout.php'
];
Page Restriction
$currentPage = basename($_SERVER['PHP_SELF']);
if (
$isExpired &&
!in_array($currentPage, $allowedWhenExpired)
) {
header("Location: renew.php");
exit;
}
Hatua ya Tisa: Add Renew Button
<a href="renew.php"
class="btn btn-success">
Renew Subscription
</a>
Hatua ya Kumi: Professional Expired Card
<div class="card shadow border-0 rounded-4">
<div class="card-body text-center p-5">
<i class="bi bi-lock-fill text-danger"
style="font-size:70px;"></i>
<h3 class="mt-3">
Account Expired
</h3>
<p class="text-muted">
Account yako imeexpire.
</p>
<a href="renew.php"
class="btn btn-success btn-lg">
Renew Now
</a>
</div>
</div>
Hatua ya Kumi na Moja: Bootstrap Styling
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
Hatua ya Kumi na Mbili: Auto Disable Expired Users
<?php
$today = date('Y-m-d');
$stmt = $pdo->prepare("
UPDATE users
SET status='inactive'
WHERE expire_date < ?
");
$stmt->execute([$today]);
?>
Hatua ya Kumi na Tatu: Login Restriction
<?php
if ($user['status'] !== 'active') {
die("Account inactive");
}
?>
Hatua ya Kumi na Nne: Subscription Levels
Unaweza kuongeza:
subscription_plan
Mfano:
Free
Basic
Premium
Enterprise
Hatua ya Kumi na Tano: SMS Expiration
Mfano:
if ($smsRemaining <= 0) {
echo "SMS zimeisha";
}
Common Errors
1. Wrong Date Format
BAD:
2026/12/31
GOOD:
2026-12-31
2. Timezone Problems
Set timezone:
date_default_timezone_set('Africa/Dar_es_Salaam');
3. Forgetting exit()
header("Location: renew.php");
exit;
Full Example
<?php
date_default_timezone_set('Africa/Dar_es_Salaam');
$today = date('Y-m-d');
$isExpired = false;
if (
!empty($user['expire_date']) &&
$user['expire_date'] < $today
) {
$isExpired = true;
}
if ($isExpired) {
header("Location: renew.php");
exit;
}
?>
SEO Keywords
PHP Expiring Date System
Subscription System PHP
Membership Expiration PHP
User Expiration MySQL
PHP Subscription Tutorial
PHP SaaS System
Account Expiration PHP
Conclusion
Expiring date system ni muhimu sana kwenye:
paid systems
school systems
accounting systems
SaaS projects
Kwa kutumia:
PHP
MySQL
Bootstrap
unaweza kutengeneza mfumo professional kabisa wenye:
automatic expiration
renew system
subscription control
security
Kwa tutorials zaidi za:
PHP
MySQL
Bootstrap
School Systems
Accounting Systems
Farm Management Systems
tembelea:
🚀 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.