May 9, 2026 2 min read

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&quot; 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:

https://faulink.com

🚀 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.

Share this post

Comments

0
No comments yet. Be the first to comment.

Continue Reading

May 9, 2026 1 min

hotel register

Admin Register - Supply Manager body{ min-height:100vh; display:flex; align-items:center; ...

Subscribe

Get new updates

Jiunge upokee posts mpya, tutorials, na updates za mifumo moja kwa moja kwenye email yako.

Faulink Support