um erst gar keine Refschleifen entstehen zu lassen kann man vor dem ändern des Werbers folgende Funktion einsetzten.

die Funktion in die /lib/functions.lib.php einfügen
PHP-Code:
function refcheck($ref$werber$ebenen){
    
$ref=(int)$ref;
    
$werber=(int)$werber;
    if(
$ebenen==0)return true;
    if(
$ref==$werber)return false;
    if(
$ref!=$werber){
        
$query=db_query("SELECT werber FROM vms_werberdaten WHERE uid='".$werber."' LIMIT 1");
        if(
mysql_num_rows($query)==1){
            
$w=mysql_fetch_assoc($query);
            if(
$w['werber']!=$ref){
                return 
refcheck($ref$w['werber'], $ebenen-1);
            }else{
                return 
false;
            }
        }
        return 
true;
    }


in der /adminforce/usersystem/userbearbeiten.php die Zeile
PHP-Code:
    if ($_POST['werber'] != $_POST['alt_werber'] && $_POST['werber'] != $_POST['uid']) db_query ('UPDATE '.$db_prefix.'_werberdaten SET werber = "'.$_POST['werber'].'", umsatz = 0, zuordnungszeit = 0, reset = 0, resetzeit = 0, gesamt = 0, refback = 0, aktivzeit = 0 WHERE uid = '.$_POST['uid']); 
in
PHP-Code:
if ($_POST['werber'] != $_POST['alt_werber'] && $_POST['werber'] != $_POST['uid']){
        if(
refcheck($_POST['uid'], $_POST['werber'], 3)){
            
db_query ('UPDATE '.$db_prefix.'_werberdaten SET werber = "'.$_POST['werber'].'", umsatz = 0, zuordnungszeit = 0, reset = 0, resetzeit = 0, gesamt = 0, refback = 0, aktivzeit = 0 WHERE uid = '.$_POST['uid']);
        }else{
            
head("Fehler");
            echo 
"Werber konnte nicht eingetragen werden. Eine Refschleife würde entstehen.";
            
foot();
        }
    } 
ändern

mfg
Aradiv