Реферальная программа для своего сайта на PHP

PHP
Здравствуйте. С целью привлечь больше людей на свой сайт, было решено ввести новшества на сайте, одной из которых является реферальная программа. Сайт написан на языке php, об этом языке отзываются, как о легкоусвояемым для новичков, однако, для меня это ещё тёмный лес, мой уровень знаний языка очень низок.

Я понимаю, что за меня ни кто не выполнит мою работу, по этому, прошу просто объяснить, как можно сделать простенькую партнёрскую программу для сайта? Я буду признателен за оказанную помощь.
Заранее большое спасибо.
Реферальная ссылка содержит уникальный ключ, который привязан к какому то пользователю, в качестве ключа можно использовать идентификатор пользователя (владельца реф. ссылки). Как я себе представляю систему рефералов: при переходе на сайт, проверяется наличие определенного параметра в URL, например, "ref", если параметр присутствует, система получает его значение и добавляет в сессию или в куку. Далее при регистрации пользователя, опять же, проверяется наличие параметра, уже в куки | сессии, если есть, заносится идентификатор пригласившего. Таким образом, пользователь становится рефералом.

Что тут может потребоваться? Думаю, первым делом, необходимо разобраться с URL, то есть реф. ссылкой. Тут приходит на помощь GET запрос (Передача переменных методом GET ($_GET в PHP)). Например, реф. ссылка выглядит так:
https://site.com/?ref=333

Тут: ref - параметр, который устанавливает идентификатор пригласившего; 333 - значение параметра ref, то есть идентификатор владельца ссылки. При переходе на сайт, проверяем наличие параметра:
// Проверяем наличие параметра
if (isset($_GET['ref']))
{
	// Сохраняем значение параметра в сессии
	$_SESSION['ref'] = (int) $_GET['ref'];
}

Теперь при регистрации (на всякий случай: Регистрация | Авторизация на сайте PHP и MySQLi) проверяем переменную $_SESSION['ref'], если она существует, то заносим в БД идентификатор пригласившего, так же (в зависимости от задуманного) добавляем ID нового пользователя в базу рефералов пользователя под идентификатором 333.

Вот, собственно все. Конечно, надо учитывать, что пользователь может подменить идентификатор в реф. ссылки, на что то другое или выкинуть, что то еще, тут необходимо проводить дополнительные проверки, чтобы, как то обезопасить свой сайт, но это уже другой вопрос.
Спасибо за толковый ответ, буду пробовать написать реф. программу.

Хочу уточнить, на какую страницу должен вести адрес: "https://site.com/?ref=333"? Надо создать файл "ref.php" и там принимать или можно добавлять данный параметр к любой странице? Удобнее добавлять параметр к любой странице. Для наглядности, есть статья с адресом: "/particle.php?art=72", под статьёй блок "Ваша реферальная ссылка на статью: /particle.php?art=72/?ref=333". Пользователи попадают на статью и регистрируясь становятся рефералами пригласившего. Можно так сделать?
Параметр можно добавлять к любому URL, только не так:
894 post=2710
/particle.php?art=72/?ref=333

А так: /particle.php?art=72&ref=333, то есть между первым и вторым параметром стоит разделитель &.

Можете создать отдельный файл для обработки параметра рефералов и инклудить его везде, где будите принимать реф. ссылку. Таким образом любая, нужная вам страница может принять значение ref.

Я тут подумал, что из за параметров для рефералов в URL, могут появиться дубли страниц, и быть их может очень много, поисковые машины этого не любят. Чтобы не было дублей, думаю, сделать перенаправление на текущею страницу без реферального параметра:
// Проверяем наличие параметра
if (isset($_GET['ref']))
{
	// Сохраняем значение параметра в сессии
	$_SESSION['ref'] = (int) $_GET['ref'];

	$part = explode('&ref', $_SERVER['REQUEST_URI']);     // Получаем текущий адрес страницы и разбиваем его на массив
	$url = 'https://' . $_SERVER['HTTP_HOST'] . $part[0]; // Создаем текущий адрес страницы без реферального параметра
	header('Location: ' . $url, true, 301);               // Перенаправляем на новый адрес (без ref=N)
	exit; // Останавливаем сценарий
}

301 редирект на текущий адрес страницы, без параметра ref.
Slash, доделал реферальную программу, работает, реферал добавляется, я даже сделал блок в профиле пользователя, где выводятся все приглашённые, а у самого реферала выводится тот, кто его пригласил. Но есть недочёт, если пользователь приходит по реферальной ссылке и сразу регистрируется, то он сохраняется в базе, как реферал, а если он перешел по ссылке, закрыл сайт, через несколько часов приходит и регистрируется, то он является просто пользователем, ни чей не реферал.
Если вы используете сессию, то после закрытия окна сайта, после нескольких часов сессия умрет. Чтобы реферал был учтен даже после нескольких дней, сохраняйте ID пригласившего в куку. Замените:
	// Сохраняем значение параметра в сессии
	$_SESSION['ref'] = (int) $_GET['ref'];

На:
	// Сохраняем значение параметра в куки
	$ref = (int) $_GET['ref'];
	setcookie('ref', $ref, time() + 31536000); // 31536000 - год в секундах

Пример работы с куками показан в теме: Как проверить существуют ли Куки на PHP (COOKIE).