чуть-чуть некромантии. Попробуем закрыть вопрос чтобы кто-то в будущем не страдал от него.
странно что в 2023 такие вопросы все еще возникали.
Определение рефки в FF идет в /inc/_set_referer.php
if(isset($_GET["ref"])){
$_rid = (intval($_GET["ref"]) > 0) ? intval($_GET["ref"]) : 1;
setcookie("i",$_rid,time()+2592000);
header("Location: /");
}
$_GET["ref"] - это считывание входящего. Т.е можно как ajax передать data: {'ref':'*'} либо обычно считывание из url
https://site.zone/?ref=*
Т.е ref в данном случае имя передаваемого поля для связывания/обработки в последующем.Из чего следует что чем назовем, тем он и будет. Спокойно можно менять на help.
setcookie("i",$_rid,time()+2592000) - это инициация (создание куки) с именем i - в которой данные с переменно $_rid, и сроком жизни текущее время (time) + еще сколько-то (поделите на 60*60 для получения часов, затем на 24 для получения дней и там мб на 30 для получения в итоге месяцев)
После объяснений решение (добавить его можете ниже стандартного с ref или заменой, но тогда учитывайте поиском все места где будет обращение к куке i):
if(isset($_GET["help"])){
$rtm = $func->IsLogin($_GET["help"]);
$rname = !empty($rtm) ? $rtm : 'admin';
setcookie("reftm",$rname,time()+2592000);
header("Location: /");
}
Далее эта кука считывается в регистрации (дабы занести рефа под пользователя) в /pages/_signup.php (стр ~31-33)
$referer_id = (isset($_COOKIE["i"]) AND intval($_COOKIE["i"]) > 0 AND intval($_COOKIE["i"]) < 1000000) ? intval($_COOKIE["i"]) : 1;
здесь переменной присваивается значение куки с фильтром что она числовая.
можно под ней или заменой сделать так:
$reftm = $func->IsLogin($_COOKIE["reftm"]);
$referer_name = $reftm ? $reftm : 'admin';
Но опять же числовые идентификаторы лучше.
места замены:
превратятся в
$reftm = $func->IsLogin($_COOKIE["reftm"]);
$referer_name = $reftm ? $reftm : 'admin';
//$referer_name = "";
if($referer_name !== 'admin'){
$db->Query("SELECT id FROM db_users_a WHERE user = '$referer_name' LIMIT 1");
if($db->NumRows() > 0){
$referer_id = $db->FetchRow();
}else{ $referer_id = 1; $referer_name = "admin"; }
}else{ $referer_id = 1; $referer_name = "admin"; }
также можно поколдовать с корневым .htaccess чтобы ссылки стали вида
https://site.zone/ref/ID или
https://site.zone/ref/LOGINRewriteRule ^help/(.*)?$ index.php?help=$1 [L]
Что будет трактовать
https://site.zone/help/(ID/LOGIN) как передачу переменной в $_GET["help"] в корневой индекс (в котором подключена логика _set_referer.php на считывание ее и редирект на главную)