Php otomatik sayfa yapma
php den yaptığım bir sayfa var bir servere bağlı
veri tababanında 1i görünce mail atıyor
ama bu dediğim işlemleri sayfa açıkken yapıyor
sayfadan çıkıp data buseye 1 yazınca mail göndermiyor
Bu yapıla bilirmi
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
1.Çözüm
Doğrudan veritabanında bir değişiklik olunca sunucu terminalinden bir komut çalıştırmak istiyorsunuz.
Örneğin veritabanında bir update işlemi gerçekleştiğinde sunucunun bir PHP dosyasını çalıştırmasını istiyorsunuz.
stackoverflow'daki şu başlık size bir başlangıç verebilir:
Başlık: Shell komutlarını MySQL fonksiyonundan çalıştırmak
Soru: Bir MySQL fonksiyonu kullanarak mesela bir dosyayı bir klasörden diğerine taşımak için shell komutları kullanılabilir mi?
Cevap: MySQL'de böyle bir özellik yok ama lib_mysqludf_sys kütüphanesini yüklerseniz sys_exec
komutunu kullanabilirsiniz:
DELIMITER @@
CREATE TRIGGER Test_Trigger
AFTER INSERT ON MyTable
FOR EACH ROW
BEGIN
DECLARE cmd CHAR(255);
DECLARE result int(10);
SET cmd=('mv path/to/file new/path/file');
SET result = sys_exec(cmd);
END;
@@
DELIMITER ;
(Bu örneği http://crazytechthoughts.blogspot.com/2011/12/call-external-program-from-mysql.html sitesinde buldum.)
Görüldüğü gibi, MySQL içinde bir trigger fonksiyonu yazılmış. Bu fonksiyon sizin data busenizdeki değişimle tetiklenecek. Tabi önce bahsedilen kütüphanenin kurulmuş olması gerekiyor. Bu sizin için bir başlangıç olabilir.
Bu işlemleri yapabilmeniz için sunucu üzerinde böyle kurulumlar yapabilecek yetkilere sahip olmalısınız tabi. Paylaşımlı sunucularda böyle şeyler yapamazsınız.
2.Çözüm
Olayı MySQL'e karışmadan çözmek isterim derseniz de belli bir PHP sayfasının mesela 10 saniyede bir tetiklenmesini sağlamak için sunucuya bir cron kurmalısınız.
Bununla ilgili başlangıç noktası olarak şu kaynağı verebilirim: https://www.cliaweb.com/knowledgebase/16/cron-jobs-nedir-nasil-kurulur-ayarlari-nelerdir.html
3.Çözüm
Hem sunucuya bi'şey kurmayayım hem veritabanına dokunmayayım derseniz tüm gün açık duracak bir bilgisayarda (evinizdeki bilgisayarınız) masaüstü program yazarak mesela 10 saniyede bir sitenizin bir PHP sayfasına istek atabilirsiniz. Bu PHP sayfası veritabanını kontrol edip duruma göre mail gönderiminden sorumlu olur.
electronjs ile nodejs kullanarak masaüstü uygulama yazmaya başlayabilirsiniz.
PHP kullanarak da masaüstü uygulama yazabilirsiniz.
Python ile de masaüstü uygulama yazabilirsiniz. (Önerim bu olur)
4.Çözüm
Masaüstü program da yazmayayım derseniz bilgisayarınızda görev zamanlayıcılardan yararlanabilirsiniz. Yine bilgisayarınız sürekli açık duracak ve sitenizdeki ilgili PHP sayfasına istek atacak.
https://www.zulfumehmet.com/windows-task-scheduler-olusturma/
5.Çözüm
Benim bilgisayarım sürekli açık duramaz derseniz arkaplanda çalışacak bir mobil uygulama yazarak da bu işlemi gerçekleştirebilirsiniz. Telefonunuz sürekli açıksa ve internete bağlıysa bu yöntem de işe yarayabilir.