• 08-01-2009, 20:29:25
    #1
    Arkadşalar benim scriptimde her oyun oynayışında 5 puan kazanılıyor ama ben 1 oyunu 1 kere oynanmasını istiyorum yani bir oyunu 1 kere oynadın 5 puan kazan sonra f5 yapsanda başka puan eklenmesin aynı oyunda tabi sadece nasıl yaparım bunu
  • 08-01-2009, 20:34:43
    #2
    atı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:38:19
    #3
    Üyeliği durduruldu
    Veritabanında bir tabloda kontrol edebilirsin. Üye daha önce o oyunu oynamış ise puan almaz, oynamamış ise puan alır.
  • 08-01-2009, 20:42:20
    #4
    onuda düşündüm ama nasıl yapacağım karar vermeedim açıkçası şimdi oyun bilgileirinin olduğu tabloya oynayanlar diye alan açsam oraya kaydetsem olurmu ? tabi bide onca üye arasından onu seçmek var... nasıl seçicem
  • 08-01-2009, 20:50:18
    #5
    Üyeliği durduruldu
    Malzemeler
    - 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:22
    #6
    tolgay007 adlı üyeden alıntı: mesajı görüntüle
    onuda düşündüm ama nasıl yapacağım karar vermeedim açıkçası şimdi oyun bilgileirinin olduğu tabloya oynayanlar diye alan açsam oraya kaydetsem olurmu ? tabi bide onca üye arasından onu seçmek var... nasıl seçicem
    Oynayanlar 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.
  • 08-01-2009, 20:53:40
    #7
    Üyeliği durduruldu
    oyun 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:21
    #8
    Zaten ü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
    #9
    Üyeliği durduruldu
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    oyun tablosu ile olmaz bu iş
    sonuçta 1 oynu tek kişi onamayacak
    ikinci bi tablo olması gerekiyor
    Ü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
    kişi oyna girince bu tabloya kayit select ile seçmeli sonrada mysql_num_rows ile kayit sayisini kontrol etmelisiniz
    mysql_num_rows yerine count() fonksiyonunun kullanılması daha iyidir.