PHP Zaman Ayarlı İşlem?
Öncelikle Merhaba,
ben bir proje geliştireceğim. Kullanıcı bir ürünü alacak ve ürünün 1 ay gibi bir süresi olacak.
Ve yönetici ürünü eklerken "süre dolduktan sonra ne olacak" diye bir parametre alacağım. Peki o tarih dolduktan sonra bu parametreyi nasıl aktif ederim?
CronJob duydum fakat ben kod ile yapmak istiyorum yani cPanel vs. uğraşmak istemiyorum.
Başka bir yöntemi var mıdır?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
Ama hayır komutu oyuna gönderecek ve belki ürünü aldıktan sonra hiç siteye girmeyecek kullanıcı?
@pcmemo burada yapılacak işlem için cron job'a gerek yok. Ürün sayfasına girildiğinde ürünün aktif olup olmadığı kullanıcıya gösterilecek. Mecbur falan değilsiniz. Ürün sayfasına girildiğinde ürünün süresi dolmuş mu dolmamışmı kontrol ettirebilirsiniz.
Ne kadar dahice kod yazarsanız yazın, işini yapması için o kodun içinde bulunduğu php dosyasının çalıştırılması lazım.
bu da bugün ki şartlarda hergün kendin tıklayıp çalıştırmyacaksan benim bildiğim kadarıyla Cron Job ile oluyor. İnsanlar Cron Job ilk duyduğunda karmaşık sanıp yan yollara kaçmaya çalışıyorlar, ama gerek yok.
Zaten mecbursunuz. @gokhancelebi "Her sorgulamak istediğinde" demiş, ki bu da bir php dosyasının çalışması demek, ya hergün bu sorguyu yapan dosyayı kendin çalıştıracaksın yada crona görev tanımlayacaksın o yapacak.
Düzenleme yapamadığım için tekrar yazmak zorunda kaldım sisteme düzenleme henüz gelmedi sanırım. İşlem tarihine 1 ayı saniye cinsinden ekliyoruz.
<?php
if(now() < ($islem_tarihi + ( 30 24 60 * 60) )){
//ürün kullanılabilir...
}else{
//30 günlük kullnaım süresi doldu
}
?>
Var tabiki, işlemin yapıldığı anı now() ile veritabanına tamsayı değeri olarak ekleyebilirsin.
Her sorgulamak istediğinde veritabandanından ürünü çekip o anki tarihi tekrar now() ile alıp ikisini karşılaştırabilirsin.
Örneğin veritabanında kayıtlı işlemin yapıldığı tarih "$islem_tarihi" olsun.(İşlem yapıldığı anda "now()" ile kayıt etmiştik.)
<?php
if(now() < ($islem_tarihi + ( 30 24 60 * 60) )){
//ürün kullanılabilir...
}else{
//30 günlük kullnaım süresi doldu
}
?>