F5 Engelleme
17
●2.483
- 08-01-2009, 20:34:43atıyorum 123 id li kullanıcı 356 id li oyunu oynamışsa o bilgiyi veritabanına yazıcaksın ve bir sonraki ziyaretinde script ile hata verdireceksin. tıpkı bu sitedeki bir mesaja rep verdikten sonra tekrar verememe gibi.
bunun için veritabanı tasarımını baştan yapman gerekebilir f5i engellemek ile olmaz o iş.
adam aynı oyunu tekrardan oynarsa ne olacak senin düşüncene göre? - 08-01-2009, 20:50:18Üyeliği durdurulduMalzemeler
- Oyun isimli bir tablo oluştur.
- UyeID, OyunID alanlarını oluştur.
Hazırlanışı
Oyun oynama sayfasında gerekli kontrolleri veritabanından sorgu yaparak uygula.
Mesela:
if(kullanıcı oyunu oynamamış) { puan ver, oyun tablosuna bilgileri(UyeID, OyunID) yaz } - 08-01-2009, 20:53:22Oynayanlar diye yeni bir tablo aç ondan sonra kişi oyuna girdiği an üye idi ile veya ip numarası ile birlekte oyun idini kaydet ve birde hit bölümü olacak daha da ayrıntıya girerse tarih bölümü eğer o gün içerisinde o üye veya ip malum oyunu oynamışsa üyenin hitini arttırırsın yok oynamışsa hit sabit kalır, kısaca mantığı budur.tolgay007 adlı üyeden alıntı: mesajı görüntüle
- 08-01-2009, 20:53:40Üyeliği durdurulduoyun tablosu ile olmaz bu iş
sonuçta 1 oynu tek kişi onamayacak
ikinci bi tablo olması gerekiyor
tabloda
kullaniciid oyunid
alanlari olacak
kişi oyna girince bu tabloya kayit select ile seçmeli sonrada mysql_num_rows ile kayit sayisini kontrol etmelisiniz
eğer ki kayit yoksa eklemeli varsa zaten oynadigi hata mesajini vermelisiniz
bu yazdiklarim anlam ifade etmiyorsa kaba taslak kod yazabilirim
sonuça birebir kodlama için oyun tablonuz üye tablonuz üyenin nasil giriş yaptigi hepsi önemli - 08-01-2009, 20:57:21Zaten üye girişi yaptıktan sonra session ile genelde üye id numarasını tutarsın, sonra onu kullanarak tabloya kayıt edebilirsin. hangi üye, hangi oyuna kaç puan verdi diye sayfaya ilk girişinde tabloya kayıt ettirirsin. Sonrasında girdiğinde tabloda kayıt bulanacaktır ve tekrar kayıt etmeyecektir.
Veya daha basit bir çözüm olarak set cookie ile de sorunu çözebilirsin. Oyuna girişinde 1 saatlik cookie oluşturup, cookie kontrolü yaparak puan verebilmesini veya verememesini sağlayabilirsin (dipnot: eğer kullanıcı tarayıcısının cookie desteğini kapatırsa yine sayfayı yenileyerek tekrar tekrar puan verebilir) - 08-01-2009, 21:04:41Üyeliği durdurulduÜyelikli bir oyun sitesi olduğuna göre zaten oyunlar ve üyeler tabloları vardır.sdemirkeser adlı üyeden alıntı: mesajı görüntüle
mysql_num_rows yerine count() fonksiyonunun kullanılması daha iyidir.sdemirkeser adlı üyeden alıntı: mesajı görüntüle