ziyaretçi defterinde aktivasyon işlemi
ziyaretçi defterinde aktivasyon işlemi
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
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
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
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.
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.

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.
Böylece mail adreslerinin doğruluğu konusunda da bir sıkıntı yaşamazdım.
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.

Böylece mail adreslerinin doğruluğu konusunda da bir sıkıntı yaşamazdım.

@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
İş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
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;
Burada tablodaki field alanındaki onaylanmamis yazan icerikleri silmesini sağladık. Bu şekilde sorguyu genişletip değiştirebilirsiniz.
Kolay gelsin.
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
Kolay gelsin.
@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.
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
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
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.
ö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.
ya bu mantıkla hareket edersek şu sorunu da yaşamazmıyım.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.
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
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
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ılar sayfanı çağırdıkca kontrol eder. eğer süresi geçen varsa siler, yoksa bekler.
ya bu mantıkla hareket edersek şu sorunu da yaşamazmıyım.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.
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
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
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
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
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
ama şimdilik benim aklıma bunun dışında bi yöntem gelmiyor.
