#1 Kapy
Úplně v nejjednodušším případě budeš potřebovat jednu jednoduchou databázovou tabulku:
----------------------------------------
| Table: User |
----------------------------------------
| Id ..........: int, PK, AI, Not-NULL |
| ReferralLink : varchar, Not-NULL |
| Score .......: int, Not-NULL |
| Username ....: varchar, Not-NULL |
| Password ....: varchar, Not-NULL |
----------------------------------------
Když se zaregistruje uživatel, založíš nový záznam do tabulky User a na základě nějaké logiky vytvoříš referal link, přičemž Score nastavíš implicitně na 0.
Poté když někdo přejde na odkaz například http://domena.com/ref=referralLink, můžeš si zkontrolovat, zda se v $_GET superglobální proměnné nachází index ref, pokud ano, provedeš jednoduchý UPDATE databáze nad tabulkou User, kde zvýšíš Score o 1 pro řádek, WHERE ReferralLink = $_GET['ref']. A máš hotovo.
Ber v potaz, že tohle je úplně nejhloupější řešení, pomocí něhož sice splníš účel, že se ti budou zvyšovat body, ale má nesmírné množství bezpečnostních děr. Bezpečnost je tak široké téma, že nehodlám popisovat, co je na návrhu špatně, protože bych tím zabral celý týden.