ziyaretçi defterinde aktivasyon işlemi

Web tabanlı uygulama geliştirme araçları(PHP, ASP vb...) ile ilgili konuları buraya yazabilirsiniz.
Cevapla
Kullanıcı avatarı
callaki
Üye
Mesajlar: 88
Kayıt: 18 Oca 2005 05:27
Konum: /localhost/
İletişim:

ziyaretçi defterinde aktivasyon işlemi

Mesaj gönderen callaki »

Ziyaretçi defterime mesaj yazılırken birde mail adreslerini yazmalarını istiyorum ama maalesef yine de yalan mail adresi yazılmasının önüne geçilmiyor.En azından güvenlik ve kötü söz yazmak isteyen kişileri biraz daha olsa caydırmak için mesaj yazan kişilere girmiş oldukları mail adreslerine mesajı onaylama tarzında bir kodlama yaptım mail bileşenini kullanarak aktivasyon kodunu kişinin mailine göndermeyi ve linki tıklayınca onayın verilmesini de yaptım.

Sorum şu olacak farzedelim ki kişinin mail adresini yine yanlış yazdı veya aktivasyon linkini tıklamadı.Bu tür mesajların örneğin yazıldıktan 24 saat sonra veritabanından silinmesi için nasıl bir yol izlemeliyim.

Yardımlarınız için şimdiden teşekkürler
! SİGARA ÖLDÜRÜR! ÖLDÜRENE KADAR DA SÜRÜNDÜRÜR
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

Bu bahsettiğin şeyi hangi script diliyle yapman gerektiğini yazmamışsın

1 - bazı web serverlarda "task scheluding" vardır. adından da anlaşılacağı gibi zamanlanmış görev ekleyebilirsin. (plesk kontrol panelli olanlarda)

2- webserver senin elinin altındaysa bi program yazarsın

3- asp de global.asa var. kullanıcılar sitenin herhangibir yerinden herhangibir bilgi istediğinde (bu kullanıcılara search botlar da dahil) bu global.asa devreye girer. sen bu global.asa yı kullanarak sitenden bilgi istendikce son yollanan aktivasyonları kontrol etmesini sağlayabilir ve vakti geçen aktivasyonları db den uçurabilirsin. ama global.asa kullanımı basite almamak gerekir. iyi araştırmak lazım. zira hata yaptığında iis restart edilmesi gerekir. hosting senin elinin altında değilse işin zorlaşır iyi test etmen lazım. global.asa da application metoduyla kullanıcıdan bağımsız işlemler kullanırsın. bu konu dediğim gibi asp de application ve session konularını iyi araştırman lazım.

4- php de de 3. maddedekine benzer bir yol izleyebilirsin.

5- aktivasyon sürelerini belirli zaman aralarında manuel kontrol edersin. :)
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Mesaj gönderen salvation »

@pentiumkivanc in 3. maddesine paralel olarak, ben şöyle yapardım. mesajların listelendiği sayfanın en tepesinde (atıyorum mesaj.php) 24 saat boyunca onaylanmamış mailleri sil diye bir sql çalıştırırdım.
Ancestor
Üye
Mesajlar: 188
Kayıt: 27 Ara 2004 06:12
Konum: Manisa - Kırkağaç

Mesaj gönderen Ancestor »

S.a

Ben olsam yorumların yazıldığı kısma birde onay diye bölüm açardım ve her ilk kaydı onaylanmadı olarak gösterirdim. Sonra birde admin paneli yazardım ve orada da sadece onaylanmamış yorumları gösterirdim. Bir buton aracılığıyla bu yorumlara onay verirdim, istemediklerimi silerdim. Yorumların gösterildiği sayfada ise sadece onaylanmış yorumları göstermesini isterdim. :wink:

Böylece mail adreslerinin doğruluğu konusunda da bir sıkıntı yaşamazdım. :wink:
Kullanıcı avatarı
callaki
Üye
Mesajlar: 88
Kayıt: 18 Oca 2005 05:27
Konum: /localhost/
İletişim:

Mesaj gönderen callaki »

@ancesor arkadaşım zaten dediğin gibi bir yönetim panelini yaptım ama ben yine de kişi mail adresindeki linki tıklamadan mesajının yönetim panelime gelmesini istemiyorum.Çünkü günlük mesaj sayısı fazla olduğu ve saçma sapan mesajları da okumaktan bıktığım için böyle bir uygulamayı yapmaya karar verdim.

İşin bir kısmını yaptım ama otomatik silme kısmında hala kafam karışık. Bu arada asp kodluyorum ve host hizmetini bir firmadan alıyorum.

@pentiumkivanc arkadaşım teşekkür edrim ama 3. seçenek beni aşıyor :)

ama @salvation kardeşim sql komutunu asp den nasıl yapacağımı söylerse çok sevinirim.

Yardımlarınız için çok teşekkür ederim. Bu kısmı da bitirirsem kodlarımı script halinde burdan yayınlayacam arkadaşlar da faydalansın.

teşekkürler
! SİGARA ÖLDÜRÜR! ÖLDÜRENE KADAR DA SÜRÜNDÜRÜR
Ancestor
Üye
Mesajlar: 188
Kayıt: 27 Ara 2004 06:12
Konum: Manisa - Kırkağaç

Mesaj gönderen Ancestor »

Selamlar,
SQL olayı için ayrı bir sayfa oluşturursunuz. O sayfayı günde bir defa çalıştırırsınız. Böylece hergün temizlik yapmış olursunuz. SQL ile silme koduna gelince;

Kod: Tümünü seç

set ata = server.createobject ("adodb.connection")
ata.open "driver={microsoft access driver (*.mdb)};dbq="& server.mappath ("data.mdb")
set mehmet=server.createobject("ADODB.Recordset")
sql="delete from tablo1 where field = 'onaylanmamis' "
set sil=ata.execute(sql)
set mehmet = nothing
ata.close
set ata = nothing
Burada tablodaki field alanındaki onaylanmamis yazan icerikleri silmesini sağladık. Bu şekilde sorguyu genişletip değiştirebilirsiniz.

Kolay gelsin.
Kullanıcı avatarı
callaki
Üye
Mesajlar: 88
Kayıt: 18 Oca 2005 05:27
Konum: /localhost/
İletişim:

Mesaj gönderen callaki »

@Ancestor teşekkür ederim kod işe yarıyor ama mesajların silinmesi manual olması.. ne diyim amacıma ulaşmadım ama kararlıyım olması gerek ve olacak inşallah yaparım ve sizinle de paylaşırım.

Ziyaretçi defterinin en son halini test ettikten sonra download adresini yayınlayacam inşallah beğenirsiniz.

Teşekkürler.
! SİGARA ÖLDÜRÜR! ÖLDÜRENE KADAR DA SÜRÜNDÜRÜR
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

hocam zaten manuel olmaması için uğraşıyorsun dediğim gibi yaparsan manuel olmayacak, kullanıcılar sitene girdikce işlemleri kendisi arka planda yapacak. sitene giriş olmazsa bişey olmayacak sen elle temizledikten sonra bi tane link yapıp temizlemesini de sağlayabilirsin. Bu gibi işlemlerde en kolay yol, eğer servis sağlayıcında zamanlama özelliği yoksa global.asa kullanmak veya sayfalarının en üst kısmına işlem yapacak olan kodu yerleştirmektir. bu durumda şöyle yapman işini görür

öncelikle temizle.asp diye bi dosya yaparsın içeriğine senin db'i temizlemek için kullanacağın kodu yazarsın, sonra getirir bu kodu diğer sayfalarının içine include edersin örneğin web siten; anasayfa, haberler, ziyaretci defteri gibi bölümlerden oluşsun. anasayfa için

default.asp nin en içine girip en üst kısma <!--#include file="temizle.asp"-->

yazarsın sonra aynı işlemi diğerleri içinde yaparsın. böylece bu sayfalar çağırıldığında temizle.asp de çağırılmış olur ve temizleme işlemi yapılır. silme işlemini bir nebze otomatik yapmış olursun.

diğer yöntem de global.asa içindeki kullanımıdır. global.asa da aynı mantıkta ancak farklı: global.asa daha pratiktir. sadece onun içine temizleme işlemlerini yazman sitenin tamamında etkili olur.
Kullanıcı avatarı
callaki
Üye
Mesajlar: 88
Kayıt: 18 Oca 2005 05:27
Konum: /localhost/
İletişim:

Mesaj gönderen callaki »

default.asp nin en içine girip en üst kısma <!--#include file="temizle.asp"-->

yazarsın sonra aynı işlemi diğerleri içinde yaparsın. böylece bu sayfalar çağırıldığında temizle.asp de çağırılmış olur ve temizleme işlemi yapılır. silme işlemini bir nebze otomatik yapmış olursun.
ya bu mantıkla hareket edersek şu sorunu da yaşamazmıyım.

Mesela biri mesaj yazdı ve mail edresindeki onay linkini tıklamayı 1 saat sonrasına bıraktı. Bu süre içinde bahsettiğiniz gibi temizle.asp bir çok defa çağrılacak ve buna bağlı olarak onaylanmamış mesajı silecek. Yani eklenen mesajlar her an silinebilir duruma geliyor.
! SİGARA ÖLDÜRÜR! ÖLDÜRENE KADAR DA SÜRÜNDÜRÜR
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

neden gelsin ki? sen zaten bu silme işlemini yaparken belirli saat kontrolü koymayacak mısın? yani aktivasyonun yollanmasının üzerinden şu kadar süre geçerse diye bi kontrol koyacaksın zaten? yolladığın aktivasyonları veritabanında tuttuğuna göre onların yollanma saatini de tutman lazım ve silme işlemini yaparken o sürenin geçip geçmediğini kontrol ettirmen lazım. bütün bunları temizle.asp de yaptığına göre hiçbir sorun olmaz

kullanıcılar sayfanı çağırdıkca kontrol eder. eğer süresi geçen varsa siler, yoksa bekler.
Kullanıcı avatarı
callaki
Üye
Mesajlar: 88
Kayıt: 18 Oca 2005 05:27
Konum: /localhost/
İletişim:

Mesaj gönderen callaki »

default.asp nin en içine girip en üst kısma <!--#include file="temizle.asp"-->

yazarsın sonra aynı işlemi diğerleri içinde yaparsın. böylece bu sayfalar çağırıldığında temizle.asp de çağırılmış olur ve temizleme işlemi yapılır. silme işlemini bir nebze otomatik yapmış olursun.
ya bu mantıkla hareket edersek şu sorunu da yaşamazmıyım.

Mesela biri mesaj yazdı ve mail edresindeki onay linkini tıklamayı 1 saat sonrasına bıraktı. Bu süre içinde bahsettiğiniz gibi temizle.asp bir çok defa çağrılacak ve buna bağlı olarak onaylanmamış mesajı silecek. Yani eklenen mesajlar her an silinebilir duruma geliyor.
! SİGARA ÖLDÜRÜR! ÖLDÜRENE KADAR DA SÜRÜNDÜRÜR
Ancestor
Üye
Mesajlar: 188
Kayıt: 27 Ara 2004 06:12
Konum: Manisa - Kırkağaç

Mesaj gönderen Ancestor »

Eklenen mesajlara birde tarih değeri koyarsınız ve temizle.asp'den bu değeri kontrol ettirirsiniz. Eğer tarih dünün yada daha öncesinin tarihi ise sildirirsiniz.

Bu şekilde bir sürü çözüm üretilebilir ama her işlemde fazladan silme işlemi çalışacak, bu da sayfanızın performansını düşünerecektir.

Kolay gelsin
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

sanırım @callaki aynı mesajı iki kere yazmış ben yukarda sorusuna cevap vermiştim @Ancestor hocamın da dediği gibi sunucunun konfigürasyonuna bağlı olarak belki bi işlem yavaşlığı olabilir. ancak asp teknolojisi işlemleri kendi üzerinde yapıp kullanıcıya sonucu döndürdüğü için, eğer sunucunuz vasatın altında değilse pek bir yavaşlama olacağını düşünmüyorum. zira yapılan işlem, veritabanı yapısına bağlı olarak bildiğimiz sayfaya giren kullanıcıları log tutma işleminden farksız. elbette sunucuda scheluding özelliği olması daha iyi olurdu :wink: ama şimdilik benim aklıma bunun dışında bi yöntem gelmiyor.
Cevapla