Veritabanı şeklinize göre değişiklik gösterebileceğinden hazır olarak bulabileceğinizi sanmıyorum. Ancak yapımı konusunda yardımcı olabilirim eğer dilerseniz. Buraya sadece fikir olarak yazayım.


id, trial_key, used sütunlarından oluşan ve dağıtacağınız deneme keylerini içeren bir "trial_keys" tablonuz olduğunu ve id, email, trial_key, start_date sütunlarından oluşan verdiğiniz keylerin kayıtlarını tuttuğunuz "trial_users" tablonuz olduğunu varsayarsak;
yapmanız gereken şey sırasıyla;
  1. trial_users tablosundan o email adresi ile daha önce alım yapılıp yapılmadığını kontrol etmek -isteğe bağlı-
  2. trial_keys tablosundan en üstten kullanılmamış (örneğin used sütunu önceden 0 olarak ayarlı) sadece bir key çekmek (LIMIT=1)
  3. trial_users tablosuna trial_key, email ve o anki zaman ile birlikte(time()) kayıt eklemek (insert into)
  4. trial_keys tablosunda aldığımız son keyin used sütununu kullanılmış olarak ayarlamak
tüm işlem bu kadar. üçüncü ya da dördüncü işlemden sonra kullanıcıya trial_keyini email atabilirsiniz. isteğinize bağlı.