• 19-03-2018, 16:04:26
    #1
    Üyeliği durduruldu
    Merhaba,

    Arkadaşlar ben günde sadece 1 kez çalışacak php function aramaktayım. Araştırdım ama bulamadım. Cron ile sayfayı günün belli bir saatinde çağıracağım ve bu function sadece 1 kez çalışacak.
    Tüm işlemler tek sayfa üzerinden gerçekleşeceği için sayfaya elle girildiğindede eğer o gün içinde ilgili function çalışmamışsa çalışacak fakat cronla çalışmışsa eğer tekrar çalışmayacak.

    Yardımcı olabilecek arkadaşlar varsa sevinirim.

    İyi çalışmalar
  • 19-03-2018, 16:09:57
    #2
    $sonCalisma = (int)dosyaOku("son.txt");
    if(time() - $sonCalisma > 86400)
    {
    calisKole();
    dosyaYaz("son.txt", time());
    }
  • 19-03-2018, 16:40:42
    #3
    Üyeliği durduruldu
    Çalışmadı hocam bu
    <? if($buguntarih < $sktarih) { $date1 = $buguntarih; $date2 = $sktarih; $diff = abs(strtotime($date2) - strtotime($date1)); $gunfark = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); if($gunfark == "5") { echo "<center><h5><b>5 gün</b> kaldı.</h5></center>"; }}
    $sonCalisma = (int)dosyaOku("son.txt");
    if(time() - $sonCalisma > 86400) {
    mesajGonder();
    dosyaYaz("son.txt", time());
    }
    ?>
    hesapadim adlı üyeden alıntı: mesajı görüntüle
    $sonCalisma = (int)dosyaOku("son.txt");
    if(time() - $sonCalisma > 86400)
    {
    calisKole();
    dosyaYaz("son.txt", time());
    }
  • 19-03-2018, 16:44:47
    #4
    Üyeliği durduruldu
    <?
    include "sayfa.php";
    include "sayfa2.php";
    include "sayfa3.php";
    ?>
    yazın sayfaları, cpanel crondan ornek 1 satte 1 yapin sanımı bunu arıyorsunuz.
  • 19-03-2018, 16:46:27
    #5
    Üyeliği durduruldu
    Eyvallah hocam ama dediğiniz şekilde yaparsam her sayfayı çağırdığında çalışır. Benim istediğim günde sadece 1 kere çalıştırabilmek.
    Nutur adlı üyeden alıntı: mesajı görüntüle
    <?
    include "sayfa.php";
    include "sayfa2.php";
    include "sayfa3.php";
    ?>
    yazın sayfaları, cpanel crondan ornek 1 satte 1 yapin sanımı bunu arıyorsunuz.
  • 19-03-2018, 16:53:19
    #6
    cRobert adlı üyeden alıntı: mesajı görüntüle
    Çalışmadı hocam bu
    <? if($buguntarih < $sktarih) { $date1 = $buguntarih; $date2 = $sktarih; $diff = abs(strtotime($date2) - strtotime($date1)); $gunfark = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); if($gunfark == "5") { echo "<center><h5><b>5 gün</b> kaldı.</h5></center>"; }}
    $sonCalisma = (int)dosyaOku("son.txt");
    if(time() - $sonCalisma > 86400) {
    mesajGonder();
    dosyaYaz("son.txt", time());
    }
    ?>
    dosyaYaz ve dosyaoku fonksiyonlarını örnek olarak verdim......



    dosyaoku için file get contents
    dosyayaz için file put contents kullanabilirsiniz..
  • 19-03-2018, 16:54:43
    #7
    İşini görür mü bilmem ama 2 farklı yöntemle yapabilirsin.
    1. Bir kolon üzerinde son çalışma zamanını tutmak. (mysql) en mantıklısı bu.
    2. Çok mantıklı değil elbet ama cookie, session time ile yapabilirsin. Daha önce çalıştırdıysa dosyayı çalışmaz zaman parametresi verirseniz. (Cron ile çalıştığında kullanıcı tekrar çağırırsa çalışır.)
  • 19-03-2018, 17:07:32
    #8
    sql biliyorsan db de sadece gün ay yil olarak rakamla dmY bilgisini bi' yerde tut. php dosyanda dmY üzerinden kontrol yap. dosyada ilk satırda bu dmY verisi ile anlık tarihi karşılaştır aynı değilsa dosyayı çalıştır ve db deki dmY'i anlık tarihle güncelle, aynı ise işlem yapma. sql bilmiyorsan bu işlemi .txt dosyasına yazma, silme, okuma şeklinde yaptırabilirsin.

    5-6 satırlık işlem.

    * tabi, burada günde bir sefer belirli bir saatte çalışan cronjob ayarının var olduğunu varsayıyoruz.
  • 20-03-2018, 16:31:57
    #9
    İşlemlerin gerçekleştiği bir sayfa oluşturup, bunun URL adresini cron ile çalıştır. Cronun süresini ona göre ayarla. İstediğin tarih aralıklarında çalışmasını sağlayabiliyorsun Cron'da. Saatlik, günde 1 kere, dakikada 1 kere gibi. DB'de date verisi tutarsın. Son cron görevini kayıt ettirirsin. Tekrar istek geldiğinde tarih uygun ise çalıştırır. Uygun değilse çalıştırmaz.