PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Addon Refschleife



snowcat
07.10.2009, 00:51
Ich hatte zwar ein Addon zur Prüfung von Refschleifen, aber das zeigte nur eine Ebene an und nicht den Verlauf der Schleife. Nun hab ich aus der Refvergütung eine Refschleifenprüfung gebastelt. Also für drei Ebenen mit der Anzeige über welche User die Schleife geht..

Habe ich bei mir im System geprüft und lief. Gebe aber keine Garantie, dass es bei euch ebenfalls läuft.

In "/adminforce/content" Datei refschleifen.php erstellen mit folgendem Inhalt:


<?
head("Refschleifen");
$i=0;
$refliste = db_query ("SELECT `uid`,`werber` FROM ".$db_prefix."_werberdaten");
while ($refliste_1 = mysql_fetch_array($refliste)) {

// Ebene 1
$refebene_1 = db_query ("SELECT `uid`,`werber` FROM ".$db_prefix."_werberdaten WHERE werber='".$refliste_1['uid']."'");
while ($anzeigen_1 = mysql_fetch_array($refebene_1)) {
if ($anzeigen_1['uid'] == $refliste_1['werber']) {
echo "User ".$refliste_1['uid']." -> ".$anzeigen_1['uid']."<br>";
$i++;
}

// Ebene 2
$refebene_2 = db_query ("SELECT `uid`,`werber` FROM ".$db_prefix."_werberdaten WHERE werber='".$anzeigen_1['uid']."'");
while ($anzeigen_2 = mysql_fetch_array($refebene_2)) {
if ($anzeigen_2['uid'] == $refliste_1['uid']) {
echo "User ".$refliste_1['uid']." -> ".$anzeigen_2['werber']." -> ".$anzeigen_2['uid']."<br>";
$i++;
}

// Ebene 3
$refebene_3 = db_query ("SELECT `uid`,`werber` FROM ".$db_prefix."_werberdaten WHERE werber='".$anzeigen_2['uid']."'");
while ($anzeigen_3 = mysql_fetch_array($refebene_3)) {
if ($anzeigen_3['uid'] == $refliste_1['uid']) {
echo "User ".$refliste_1['uid']." -> ".$anzeigen_2['werber']." -> ".$anzeigen_3['werber']." -> ".$anzeigen_3['uid']."<br>";
$i++;
}

}
}
}

}

if ($i==0){
echo "So ein Glück, keine Refschleifen vorhanden.";
}

foot();
?> Danach in der "/adminforce/lib/menue_links.php" oder "/adminforce/lib/menue_links.php" folgendes einfügen:


&raquo;&nbsp;<a href="?content=/refschleifen">Ref-Schleifen</a><br>Ich denk das ist ganz gut für die, die bisher keine Refschleifenprüfung in ihren Addons haben oder denen nicht vertrauen. :P

pummuk
07.10.2009, 13:35
danke..

super schnipzel..
funktioniert bei mir tadellos....

Aradiv
16.10.2009, 15:55
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

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

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


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&uuml;rde entstehen.";
foot();
}
}

ändern

mfg
Aradiv