php sayfa yenilemeden iş yaptırma
Merhabalar php ile yazmaya çalıştığım sistemde bir sorunum var daha dogrusu yapmam gereken bir şey var
sistem sorunsuz çalışıyor. anasayfada son haberler kısmı anlık olarak güncelleniyor ama ajax ile sayfa yenilemeden veri çekemeye çalıştığım için sitem sürekli vt ile baglantı kurmaya çalışıyor
ben bunu örnegin son id 5 ise 6. id geldiginde çalışmasını istiyorum bunu nasıl yapabilirim
keyword verirseniz o bile yeter
bir de içeride kaç kişi var xenforor daki gibi online kişi sayacı yaptırmak istiyorum vt de adam girdi çıktı bunları görmek istiyorum bunları nasıl yapabilirim
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
Elimden geldiğince bu konuyu detaylı bir şekilde size anlatmaya çalışacağım... (PDO'suz anlattım siz PDO ile yapabilirsiniz :))
AJAX kullanarak veri çekme işlemini aşağıdaki adımları izleyerek gerçekleştirebilirsiniz:
1.Öncelikle, AJAX isteğini gönderecek bir JavaScript fonksiyonu oluşturun. Bu fonksiyon, bir GET isteği gönderecek ve dönen veriyi kullanarak sayfada güncelleme yapacak. Örnek bir JavaScript fonksiyonu aşağıdaki gibi olabilir:
- PHP dosyasında, veritabanından son haberleri çekecek bir sorgu oluşturun ve döndürün. Örnek bir PHP dosyası aşağıdaki gibi olabilir:
- JavaScript fonksiyonunu kullanarak veri çekme işlemini başlatabilirsiniz. Örneğin, sayfa yüklendiğinde veri çekmek için aşağıdaki gibi bir kod parçacığı kullanabilirsiniz:
Bu şekilde, sayfa yüklendiğinde getData() fonksiyonu çalıştırılarak veri çekme işlemi gerçekleştirilebilir.
Online kişi sayacı oluşturmak için ise, veritabanında bir tablo oluşturarak kullanıcı giriş/çıkış bilgilerini tutabilirsiniz. Örnek bir tablo yapısı aşağıdaki gibi olabilir:
id user_id login_time logout_time
1 1 2023-01-01 12:00:00 2023-01-01 12:30:00
2 2 2023-01-01 12:15:00 2023-01-01 13:00:00
3 1 2023-01-02 10:00:00 2023-01-02 11:00:00
Bu tablo verilerine göre online kişi sayısını hesaplayabilmek için, şu adımları izleyebilirsiniz:
- Veritabanında bir sorgu oluşturarak, login_time'ı bugünden küçük ve logout_time'ı bugünden büyük olan kayıtları çekin. Örnek bir sorgu aşağıdaki gibi olabilir:
- Bu sorgunun döndürdüğü sayıyı online kişi sayısı olarak kullanın. Örneğin, aşağıdaki JavaScript kod parçacığı ile sayfada gösterebilirsiniz:
- Kullanıcı giriş yaptığında, bir token oluşturun ve bu token'ı veritabanında bir tablo oluşturarak saklayın. Örnek bir tablo yapısı aşağıdaki gibi olabilir:
id user_id token
1 1 abcdefghijklmnopqrstu
2 2 vwxyzabcdefghijklmnop
3 1 qrstuvwxyzabcdefghijk
Token oluşturmak için, PHP'de aşağıdaki gibi bir fonksiyon kullanabilirsiniz:
Bu fonksiyonu kullanarak token oluşturduktan sonra, veritabanına kaydedebilirsiniz. Örneğin:
- Kullanıcı çıkış yaptığında, bu token'ı silerek kullanıcının oturum bilgilerini silin. Örneğin:
- Cronjob ile belirli aralıklarla veritabanındaki token bilgilerini kontrol ederek, kullanıcının sistemde olup olmadığını anlayabilirsiniz. Bunun için, cronjob'u kullanarak belirli aralıklarla çalışacak bir PHP dosyası oluşturmalısınız. Bu PHP dosyası, veritabanındaki token bilgilerini kontrol edecek ve eğer bir token bulunamazsa, o kullanıcının sistemde olmadığını anlayacaktır. Örnek bir PHP dosya aşağıdaki gibi olabilir:
Bu dosyayı cronjob ile belirli aralıklarla çalıştırarak, veritabanındaki token bilgilerini kontrol ederek kullanıcının sistemde olup olmadığını anlayabilirsiniz. Örneğin, aşağıdaki cronjob komutu ile bu dosyayı her 15 dakikada bir çalıştırabilirsiniz:
*/15 * * * * /usr/bin/php /path/to/check_tokens.php
Bu komutu kullanarak, belirli aralıklarla check_tokens.php dosyasını çalıştırarak veritabanındaki token bilgilerini kontrol ederek, kullanıcının sistemde olup olmadığını anlayabilirsiniz.
Bu yöntem, kullanıcının sistemde olup olmadığını anlamanız için bir seçenek olabilir. Ancak, bu yöntemin tam olarak doğru bir yöntem olup olmadığını söylemek zor. Örneğin, bir kullanıcı sistemde aktif olmasına rağmen, son 30 dakikada bir aktivite gerçekleştirmediyse bile, bu yöntemle sistemden çıkarılabilir. Bu nedenle, kullanıcının sistemde olup olmadığını anlamak için alternatif yöntemler de düşünülebilir.
Biraz uzun ve karmaşıkmış gibi gelebilir ama umarım işinize yarar... (Parmaklarım uyuştu yoksa daha da anlatmak isterdim :))
"Bilgi paylaştıkça güzeldir :)"
Kafamdaki şu x kişisi sisteme girince vt de şöyle bir tablo var
token ve url
her kullanıcıya session ile token atayıp sonra bu token i cronjob ile kontrol ettirmek istiyorum bu kullanıcı acık mı kapalı mı nasıl yapablirim