Expired Accounts Hazifungwi? PHP Logic Sahihi ya Expiry
Jifunze jinsi ya ku-design PHP logic sahihi ya kufunga expired accounts kwenye subscription systems, kuhakikisha users wanapata access sahihi kulingana na date to expire.
Utangulizi
Wakati mwingine, hata baada ya tarehe ya subscription kumalizika, users bado wanaweza kuendelea kutumia system. Hii ni kwa sababu ya logic isiyo sahihi kwenye PHP code.
Katika post hii, tutajifunza kwa nini expired accounts hazifungwi, common mistakes, na logic sahihi ya kufunga accounts.
Sababu Kuu za Expired Accounts Hazifungwi
1️⃣ Kutokukagua date_to_expire Sahihi
if($current_date <= $user['date_to_expire']){
// allow access
}
Hakikisha $current_date inalingana na format ya database (YYYY-MM-DD)
2️⃣ Variable ya PHP Si Sahihi
$current_date lazima iwe current date, sio string nyingine
$current_date = date('Y-m-d');
3️⃣ Query Haipati Users Sahihi
Wakati una-check expired accounts, query lazima iwe sahihi:
SELECT * FROM users WHERE date_to_expire < CURDATE();
Inapata users wote walio expired
Logic Sahihi (PHP + MySQLi)
$current_date = date('Y-m-d');
$sql = "SELECT * FROM users WHERE date_to_expire < '$current_date' AND status='active'";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)){
// Update status to expired
$update = "UPDATE users SET status='expired' WHERE id={$row['id']}";
mysqli_query($conn, $update);
}
Inasahihisha status automatically kwa expired accounts
Logic Sahihi (PDO)
$current_date = date('Y-m-d');
$stmt = $pdo->prepare("SELECT id FROM users WHERE date_to_expire < ? AND status='active'");
$stmt->execute([$current_date]);
$users = $stmt->fetchAll();
foreach($users as $user){
$update = $pdo->prepare("UPDATE users SET status='expired' WHERE id=?");
$update->execute([$user['id']]);
}
Safe & prevents SQL injection
Debug Tips
✔ Check date format (YYYY-MM-DD)
✔ Ensure $current_date is PHP current date
✔ Test query in phpMyAdmin first
✔ Schedule cron job if needed for automatic expiry
Makosa ya Kuepuka ❌
❌ Kutumia wrong comparison operator (<, >, =)
❌ Forgetting to update status
❌ Checking expired accounts incorrectly
🚀 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.