• 01-08-2013, 12:39:28
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhabalar,

    Hali hazırda bulunan scriptime davetiye sistemi entegre etmek istiyorum. Olay şu;
    Davetiye ile üye olan kullanıcılarında 10 kişiyi davet etme hakkı olacak. O şekilde üye olunabilecek. Şuan bunun formunu yazdım fakat php ve mysql kısmında eksiklerim var. Sıfırdan yazmak çok zor olmaz sanırım fakat ben hazır scriptime entegre etmek istiyorum. Yardımcı olursanız sevinirim.

    Hazır scriptimde ki users tablosu;
    CREATE TABLE IF NOT EXISTS `users` (
      `idu` int(11) NOT NULL AUTO_INCREMENT,
      `username` varchar(32) NOT NULL,
      `password` varchar(256) NOT NULL,
      `email` varchar(256) NOT NULL,
      `first_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
      `last_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
      `location` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
      `website` varchar(128) NOT NULL,
      `bio` varchar(160) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
      `date` date NOT NULL,
      `facebook` varchar(256) NOT NULL,
      `twitter` varchar(128) NOT NULL,
      `gplus` varchar(256) NOT NULL,
      `image` varchar(128) NOT NULL DEFAULT 'default.png',
      `private` int(11) NOT NULL,
      `salted` varchar(256) NOT NULL,
      `background` varchar(256) NOT NULL,
      `cover` varchar(128) NOT NULL DEFAULT 'default.png',
      `verified` int(11) NOT NULL,
      `privacy` int(11) NOT NULL DEFAULT '1',
      `gender` tinyint(4) NOT NULL,
      `online` int(11) NOT NULL,
      `offline` tinyint(4) NOT NULL,
      `notificationl` tinyint(4) NOT NULL DEFAULT '1',
      `notificationc` tinyint(4) NOT NULL DEFAULT '1',
      `notificationm` tinyint(4) NOT NULL DEFAULT '1',
      `notificationd` tinyint(4) NOT NULL DEFAULT '1',
      `email_comment` tinyint(4) NOT NULL DEFAULT '1',
      `email_like` int(11) NOT NULL DEFAULT '1',
      `born` date NOT NULL,
      `user_level` bigint(11) NOT NULL,
      `activated` enum('0','1') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
      `suspended` enum('0','1') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
      `whitelist` enum('0','1') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
      `user_id` bigint(11) NOT NULL,
      `last_login` datetime NOT NULL,
      `last_ip` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
      `account_lock` enum('0','1') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
      UNIQUE KEY `id` (`idu`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=37 ;
  • 03-08-2013, 01:35:17
    #2
    öncelike karar vermen gereken, davetiye sisteminin çalışma mantığı olmalı. Kullanıcı, kayıt olurken referans olarak ne yazacak?
    a. mevcut üyenin adı
    b. mevcut üyeden aldığı referans kodu
    üye adını yazma işi biraz rastgele tutturma ihtimalini arttırır, bunu engellemek için üyelik başvurusu sonrasında referans üyeye de onay gidip, şu isimli arkadaş senin referansınla üye olmak istiyor onaylıyor musun vs.. benzeri onay istenebilir. aslında referans kodu için de fena olmaz ama orası sana kalmış.

    sonra, veritabanı ve referans üreteç & onay yapısına karar vermen gerekir,
    a. davetiye kodları veritabanında cron ile üretilip boşta bekletilebilir, her üye için 10 adet üretilir, kullanıldıkça bir kolona kullanıldı=1 yapılabilir mesela. onay işleminde bu kodları sorgulatıp varsa ve müsaitse tamam verdim denir.
    b. üye adını veya sıra numarasını alıp bir algoritmaya sokup lisans anahtarı benzeri bir referans kodu üretilebilir.
    c. doğrudan üye adı/üye eposta adresi yazdığın zaman üyeden onay alınıp işlem tamamlanabilir.
    her durumda üye tablonda bence olması gereken birkaç alan;
    1. davet sayısı[0...10]
    2. davet eden [üye adı/üye id/üye eposta ()önemli olan unique olması]

    bir de davet tablosu açıp, ekstra olarak gönderilen gönderilmeyen askıda bekleyen davetiyeleri, gönderim ve onay tarihleri vs.vs.. bilgileri tutarsan daha sağlıklı olur. kabaca ben olsam bu mantık üzerinden giderdim. oturup kod yazmak isterdim ama kendin yapman her açıdan daha mantıklı olur ve yapabileceğine inanıyorum