v2.5.2
Giriş yap

PHP Zaman Ayarlı İşlem?

patrick2dev
1,790 defa görüntülendi

Ö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?

Cevap yaz
Cevaplar (5)
patrick2dev
1548 gün önce

Ama hayır komutu oyuna gönderecek ve belki ürünü aldıktan sonra hiç siteye girmeyecek kullanıcı?

gokhancelebi
1548 gün önce

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

pcmemo
1548 gün önce

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.

gokhancelebi
1548 gün önce

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
}

?>

gokhancelebi
1548 gün önce

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

}

?>