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