РЕШЕНО Глюк в рефералке

demonberkyt

Участник
Здравствуйте еще раз :)
Сегодня запустил проект, первый мониторинг наткнулся на проблему, после того, как он зарегался, и пополнил счет, ему дали награду за реферала
Обьясню, при пополнении дают +10 процентов, и 10% от пополнений его рефералов на вывод. Он пополнил счет, ему дало бонус за пополнение и бонус за пополнение от реферала (он сам себе рефералом стал), хотя на проекте нас двое и разумеется рефов у него нет. Где искать ошибочку, подскажите :(
 

pligin

Команда форума
Администратор
Здравствуйте еще раз :)
Сегодня запустил проект, первый мониторинг наткнулся на проблему, после того, как он зарегался, и пополнил счет, ему дали награду за реферала
Обьясню, при пополнении дают +10 процентов, и 10% от пополнений его рефералов на вывод. Он пополнил счет, ему дало бонус за пополнение и бонус за пополнение от реферала (он сам себе рефералом стал), хотя на проекте нас двое и разумеется рефов у него нет. Где искать ошибочку, подскажите :(
это косяк в начислениях.
смотри payeer_merchant.php
 

demonberkyt

Участник
это косяк в начислениях.
смотри payeer_merchant.php
Посмотрел, вроде всё чисто, хотя я после праздников еще плохо соображаю xD
Глянь, пожалуйста, чистым зрением, может где косяк заметишь

Код:
# Зачисляем баланс
        $serebro = sprintf("%.4f", floatval($config_site['ser_per_wmr'] * $amount) );
        $db->Query("SELECT insert_sum FROM db_users_b WHERE id = '".$user_id."' LIMIT 1");
        $insert_sum = $db->FetchRow();
    # Бонус при первом пополнении
        $serebro = intval($insert_sum == 0) ? ($serebro + ($serebro * 0.10) ) : $serebro;
    # Дерево/фрукт при пополнении на определенную сумму
        $add_tree = ( $amount >= 500) ? 0 : 0;
    # Отчисления рефералу
        $to_referer = ($serebro * 0.10);
    # Зачисляем пользователю
        $db->Query("UPDATE db_users_b SET money_b = money_b + '$serebro', e_t = e_t + '$add_tree', to_referer = to_referer + '$to_referer', last_sbor = '".time()."', insert_sum = insert_sum + '$amount' WHERE id = '$user_id'") or die ($_POST['m_orderid'].'|error4');
        $db->Query("UPDATE db_payeer_insert SET status = '1' WHERE id = '".$_POST['m_orderid']."'") or die(mysql_error());
    # Зачисляем средства рефереру и дерево
        $add_tree_referer = ($insert_sum <= 0.01) ? ", a_t = a_t + 0" : "";
        $db->Query("UPDATE db_users_b SET money_p = money_p + $to_referer, from_referals = from_referals + '$to_referer' $add_tree_referer WHERE id = '$refid'") or die(mysql_error());
 
Последнее редактирование:

demonberkyt

Участник
Посмотрел, вроде всё чисто, хотя я после праздников еще плохо соображаю xD
Глянь, пожалуйста, чистым зрением, может где косяк заметишь

Код:
# Зачисляем баланс
        $serebro = sprintf("%.4f", floatval($config_site['ser_per_wmr'] * $amount) );
        $db->Query("SELECT insert_sum FROM db_users_b WHERE id = '".$user_id."' LIMIT 1");
        $insert_sum = $db->FetchRow();
    # Бонус при первом пополнении
        $serebro = intval($insert_sum == 0) ? ($serebro + ($serebro * 0.10) ) : $serebro;
    # Дерево/фрукт при пополнении на определенную сумму
        $add_tree = ( $amount >= 500) ? 0 : 0;
    # Отчисления рефералу
        $to_referer = ($serebro * 0.10);
    # Зачисляем пользователю
        $db->Query("UPDATE db_users_b SET money_b = money_b + '$serebro', e_t = e_t + '$add_tree', to_referer = to_referer + '$to_referer', last_sbor = '".time()."', insert_sum = insert_sum + '$amount' WHERE id = '$user_id'") or die ($_POST['m_orderid'].'|error4');
        $db->Query("UPDATE db_payeer_insert SET status = '1' WHERE id = '".$_POST['m_orderid']."'") or die(mysql_error());
    # Зачисляем средства рефереру и дерево
        $add_tree_referer = ($insert_sum <= 0.01) ? ", a_t = a_t + 0" : "";
        $db->Query("UPDATE db_users_b SET money_p = money_p + $to_referer, from_referals = from_referals + '$to_referer' $add_tree_referer WHERE id = '$refid'") or die(mysql_error());
Кстати, а разве проблема, где любой зарегистрированный становится своим же рефералом, не находится в файле регистрации? Там я хз как исправить, скорее всего это и есть корень всех зол, если бы он не стал своим рефом, ему бы и лишние деньги и не начислились бы
 

pligin

Команда форума
Администратор
Посмотрел, вроде всё чисто, хотя я после праздников еще плохо соображаю xD
Глянь, пожалуйста, чистым зрением, может где косяк заметишь

Код:
# Зачисляем баланс
        $serebro = sprintf("%.4f", floatval($config_site['ser_per_wmr'] * $amount) );
        $db->Query("SELECT insert_sum FROM db_users_b WHERE id = '".$user_id."' LIMIT 1");
        $insert_sum = $db->FetchRow();
    # Бонус при первом пополнении
        $serebro = intval($insert_sum == 0) ? ($serebro + ($serebro * 0.10) ) : $serebro;
    # Дерево/фрукт при пополнении на определенную сумму
        $add_tree = ( $amount >= 500) ? 0 : 0;
    # Отчисления рефералу
        $to_referer = ($serebro * 0.10);
    # Зачисляем пользователю
        $db->Query("UPDATE db_users_b SET money_b = money_b + '$serebro', e_t = e_t + '$add_tree', to_referer = to_referer + '$to_referer', last_sbor = '".time()."', insert_sum = insert_sum + '$amount' WHERE id = '$user_id'") or die ($_POST['m_orderid'].'|error4');
        $db->Query("UPDATE db_payeer_insert SET status = '1' WHERE id = '".$_POST['m_orderid']."'") or die(mysql_error());
    # Зачисляем средства рефереру и дерево
        $add_tree_referer = ($insert_sum <= 0.01) ? ", a_t = a_t + 0" : "";
        $db->Query("UPDATE db_users_b SET money_p = money_p + $to_referer, from_referals = from_referals + '$to_referer' $add_tree_referer WHERE id = '$refid'") or die(mysql_error());
тут нет запроса на извлечение данных пользователя и реферала
 

pligin

Команда форума
Администратор
Кстати, а разве проблема, где любой зарегистрированный становится своим же рефералом, не находится в файле регистрации? Там я хз как исправить, скорее всего это и есть корень всех зол, если бы он не стал своим рефом, ему бы и лишние деньги и не начислились бы
если он является своим же рефералом, то да.
посмотри в базе какой реферер у него указан
 

demonberkyt

Участник
если он является своим же рефералом, то да.
посмотри в базе какой реферер у него указан
был ид 2 (коим он и является) и реферер с ником First, а таких нет, нашел это в коде
Код:
$email = $func->IsMail($_POST["email"]);
    $referer_id = (isset($_COOKIE["i"]) AND intval($_COOKIE["i"]) > 0 AND intval($_COOKIE["i"]) < 1000000) ? intval($_COOKIE["i"]) : 1;
    $referer_name = "";
    if($referer_id != 1){
        $db->Query("SELECT user FROM db_users_a WHERE id = '$referer_id' LIMIT 1");
        if($db->NumRows() > 0){$referer_name = $db->FetchRow();}
        else{ $referer_id = 1; $referer_name = "Admin"; }
    }else{ $referer_id = 1; $referer_name = "First"; }
Этого фёрста исправил на админа, но не знаю, есть ли еще где-то проблема в этом участке? на всякий случай даю полный файл, где first на админа еще не поправил
 

Вложения

pligin

Команда форума
Администратор
а рефер ид точно у него должен быть 1? я уже запутался в этих рефералах xD
да. в ФФ придумано так: если человек пришел не по реферальной ссылке либо по неправильной реферальной ссылке - он становится рефералом пользователя с id 1, т.е. в графе referer_id указывается 1.
 

demonberkyt

Участник
да. в ФФ придумано так: если человек пришел не по реферальной ссылке либо по неправильной реферальной ссылке - он становится рефералом пользователя с id 1, т.е. в графе referer_id указывается 1.
А, всё, понял) Спасибо за обьяснение) Кстати, вот сейчас зарегался пройдя по рекламной ссылке монитора, и все правильно сработало, он мой реферер, и я сам своим рефералом не стал о_О
 

pligin

Команда форума
Администратор
А, всё, понял) Спасибо за обьяснение) Кстати, вот сейчас зарегался пройдя по рекламной ссылке монитора, и все правильно сработало, он мой реферер, и я сам своим рефералом не стал о_О
так и он не был своим рефералом... и файл мерчанта у тебя верный...
перепроверь еще раз, может где в другом месте ошибка.
посмотри таблицы пополнений и сравни данные из них
 

demonberkyt

Участник
так и он не был своим рефералом... и файл мерчанта у тебя верный...
перепроверь еще раз, может где в другом месте ошибка.
посмотри таблицы пополнений и сравни данные из них
Хорошо) спасибо за помощь, я тогда еще посмотрю на регистрации, если у кого-то еще будет похожая проблема, то отпишусь.))
 
Верх