• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Probleme mit der referral Punktevergabe

Freesy

Neues Mitglied
Hallo, ich habe Probleme mit einem Script und hoffe hier die Lösung zu finden Bei dem Script handelt es um ein Bonus System. Man bekommt für bestimmte Aktionen Punkte. Das mit den Punkten geht soweit leider hapert es bei der Punkte Weitergabe an die Reffs. Im Ideal Fall sollte es so gehen User A wirbt User B und User B wirbt User C Wenn jetzt User C an einer Aktion für 100 Punkte teilnimmt müsste User B 20 Prozent erhalten und user A 10 leider klappt es nicht... Hier mal der Code

Gutschrift.php

<?php

include ("../config.php");
include ("checkuser.php");
include("header.php");

$zweck = $_POST["zweck"];

session_start ();
if (!isset ($_SESSION["user_id2"]))
{
}else{
if ($zweck == '')
{
echo "<h3>Punktegutschrift</h3><table width='500' height='100' border='0'><form name='punktegut' method='POST' action='gutschrift.php'>
<tr><td>User-ID:</td><td width='25'></td><td><input name='uid' type='text'></td></tr>
<tr><td>Aktion:</td><td width='25'></td><td><select style='width: 400px; height: 25px' size=1 name='aid'><option value='0' selected>Bitte wählen";

$abfrage="SELECT * FROM net_bonus ORDER BY id";
$ergebnis = mysql_query($abfrage) or die (mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
$id = $row->id;
$name = $row->name;
$punkte = $row->punkte;
echo "<option value='$id'>$name ($punkte $wahru)";
}

echo "<option value='Rally'>Rally-$wahru<option value='sonst'>Sonstige $wahru</select></td></tr>
<tr><td>Punkteanzahl:</td><td width='25'></td><td><input name='points' type='text'> $wahru</td></tr>
</table><br><input name='zweck' type='hidden' value='2'><input name='submit' type='submit' value='Punkte gutschreiben'></form>";
}


if ($zweck == '2')
{
$uid = $_POST["uid"];
$aid = $_POST["aid"];
$betrag = $_POST["points"];

if ($uid != '' && $aid != '' && $betrag != '')
{
$selectAktion = mysql_query('SELECT * FROM net_bonus WHERE id='.$aid);
$aktion = mysql_fetch_array($selectAktion);

mysql_query('UPDATE net_bonus_teilnahmen SET erfolgreich="1" WHERE aktion='.$aktion['kampagnenID']) or die(mysql_error());

$query = "UPDATE user1 SET punkte = (punkte+$betrag), punkteVor = (punkteVor-$betrag), teilnahmen = (teilnahmen+1) , lastaction = '$betrag' , pra1 = (pra1+$betrag) , vari5 = (vari5+$betrag) WHERE id = '$uid' ";
$ok=mysql_query($query) or die (mysql_error());
$anfrage="insert into net_gutschrift (id, uid, aid, punkte) VALUES ('','$uid','$aid','$betrag')";
mysql_query($anfrage) or die (mysql_error());
echo "Der User-ID <b>$uid</b> wurden <b>$betrag</b> $wahru gutgeschrieben.";

include ("../refgutschrift.php");

$abfrage="SELECT * FROM net_bonus WHERE id = '".$aid."' ";
$ergebnis = mysql_query($abfrage) or die (mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
$aktname = $row->name;
}

$abfrage="SELECT * FROM user1 WHERE id = $uid";
$ergebnis = mysql_query($abfrage) or die (mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
$usermail = $row->mail;
$punkte = $row->punkte;
$username = $row->username;
}

$betreff = "Bonusaktion $aktname wurde gutgeschrieben";

$mailtext = "

Hallo $username,

Dir wurde soeben die Bonusaktion $aktname gutgeschrieben, Du hast dafür $betrag $wahru erhalten.

Dein neuer Kontostand beträgt $punkte $wahru


Viel Spass weiterhin auf Freesy.de

******************************************************************
Du erhälst diese E-Mail als Mitglied von
Freesy.de, es handelt sich dabei nicht um Werbung
sondern um eine Kontoinformation.
******************************************************************";

mail ($usermail,$betreff,$mailtext, "From: Freesy.de <[email protected]>");

}else{
echo "Es wurden nicht alle Felder ausgefüllt!<br><b> Es wurden KEINE Punkte gutgeschrieben!</b> (".$uid.', '.$aid.', '.$points.')';
}



}


}
include("footer.php");
?>
 
Werbung:
und hier die refgutschrift.php

<?php /*
$abfrage='SELECT * FROM user1 WHERE username = \''.$username.'\' ';
$ergebnis = mysql_query($abfrage) or die (mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
$ref1 = $row->ref;
$ref2 = $row->ref2;
$ref3 = $row->ref3;
}


# Ebene 1
$refverd = (0.01*$refver);
$refverdienst = ($betrag*$refverd);
mysql_query("update user1 set punkte = (punkte+$refverdienst) , verd = (verd+$refverdienst) where username = '$ref1' ") or die (mysql_error());

# Ebene 2
$refverd2 = (0.01*$refver2);
$refverdienst2e = ($betrag*$refverd2);
mysql_query("update user1 set punkte = (punkte+$refverdienst2e) , verd = (verd+$refverdienst2e) where username = '$ref2'") or die (mysql_error());


# Ebene 3
$refverd3 = (0.01*$refver3);
$refverdienst3e = ($betrag*$refverd3);
mysql_query("update user1 set punkte = (punkte+$refverdienst3e) , verd = (verd+$refverdienst3e) where username = '$ref3'") or die (mysql_error());


mysql_query("update user1 set werberverd = (werberverd+$refverdienst) , werberverd2 = (werberverd2+$refverdienst2e) , werberverd3 = (werberverd3+$refverdienst3e) where username = '$username' ") or die (mysql_error());

*/echo 'Wenn diese seite aufgerufen wird, bitte bei Admin melden, Wenn das der Admin sieht, bitte beim Programmierer melden';
?>
 
In der refgutschrift.php wird überhaupt nichts ausgeführt, alles wegkommentiert.

Und benutze bitte die Formatierungsmöglichkeiten des Forums, damit der der Quellcode hier leserlich dargestellt wird.
 
Werbung:
bdt600 danke für die Antwort schnelle Antwort.
Würde es reichen wenn ich die or die (mysql_error());
abändere
 
Wow danke für die schnelle Antwort
ich bin halt ein totaler noob
ich weiß jetzt dank dir das es an der refgutschrift.php liegt
aber ich habe kein Plan was ich ändern muss damit es geht
ach danke noch mal das du mir hilfst

Code:
<?php /*
$abfrage='SELECT * FROM user1 WHERE username = \''.$username.'\' ';
$ergebnis = mysql_query($abfrage) or die (mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
$ref1 = $row->ref;
$ref2 = $row->ref2;
$ref3 = $row->ref3;
}


# Ebene 1
$refverd = (0.01*$refver);
$refverdienst = ($betrag*$refverd);
mysql_query("update user1 set punkte = (punkte+$refverdienst) , verd = (verd+$refverdienst) where username = '$ref1' ") or die (mysql_error());

# Ebene 2
$refverd2 = (0.01*$refver2);
$refverdienst2e = ($betrag*$refverd2);
mysql_query("update user1 set punkte = (punkte+$refverdienst2e) , verd = (verd+$refverdienst2e) where username = '$ref2'") or die (mysql_error());


# Ebene 3
$refverd3 = (0.01*$refver3);
$refverdienst3e = ($betrag*$refverd3);
mysql_query("update user1 set punkte = (punkte+$refverdienst3e) , verd = (verd+$refverdienst3e) where username = '$ref3'") or die (mysql_error());


mysql_query("update user1 set werberverd = (werberverd+$refverdienst) , werberverd2 = (werberverd2+$refverdienst2e) , werberverd3 = (werberverd3+$refverdienst3e) where username = '$username' ") or die (mysql_error());

*/echo 'Wenn diese seite aufgerufen wird, bitte bei Admin melden, Wenn das der Admin sieht, bitte beim Programmierer melden';
?>
 
Werbung:
Er hat es dir doch gerade erklärt:
Das ist der angepasste Code:
PHP:
<?php
$abfrage='SELECT * FROM user1 WHERE username = \''.$username.'\' ';
$ergebnis = mysql_query($abfrage) or die (mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
$ref1 = $row->ref;
$ref2 = $row->ref2;
$ref3 = $row->ref3;
}
# Ebene 1
$refverd = (0.01*$refver);
$refverdienst = ($betrag*$refverd);
mysql_query("update user1 set punkte = (punkte+$refverdienst) , verd = (verd+$refverdienst) where username = '$ref1' ") or die (mysql_error());
# Ebene 2
$refverd2 = (0.01*$refver2);
$refverdienst2e = ($betrag*$refverd2);
mysql_query("update user1 set punkte = (punkte+$refverdienst2e) , verd = (verd+$refverdienst2e) where username = '$ref2'") or die (mysql_error());
# Ebene 3
$refverd3 = (0.01*$refver3);
$refverdienst3e = ($betrag*$refverd3);
mysql_query("update user1 set punkte = (punkte+$refverdienst3e) , verd = (verd+$refverdienst3e) where username = '$ref3'") or die (mysql_error());
mysql_query("update user1 set werberverd = (werberverd+$refverdienst) , werberverd2 = (werberverd2+$refverdienst2e) , werberverd3 = (werberverd3+$refverdienst3e) where username = '$username' ") or die (mysql_error());
echo 'Wenn diese seite aufgerufen wird, bitte bei Admin melden, Wenn das der Admin sieht, bitte beim Programmierer melden';
?>

Es geht um den /* hinter dem php und dem */ vor dem echo :D :D
Du kommentierst damit den kompletten Code aus ;)
 
Werbung:
Am besten du ladest dir eine IDE wie netbeans oder Eclispe das hinterlegt dir den kommentierten code übersichtlich.
Weiters solltest du in punkto Sicherheit nach schlagen den deine Variablen werden direkt in die Querys eingetragen.
So ist z.b. SQL Inject möglich.
 
zum Glück gib es dieses Forum hier :)
Ich werde mir mal netbeans runterladen
Ich finde es echt toll das ihr euch so engagiert.
Ich werde mir noch einige tuts durchlesen müssen
@Disconnected95 ich werde mal gucken was ich machen kann damit es sicherer wird,
es wäre aber schon ein erfolg wenn das dumme Ref System endlich mal Funktionieren würde
 
Eine gute IDE ist der Grundstein der Programmierung, nutze selber netbeans also kann ich dir nur empfehlen.
Zum Punkt Sicherheit würde ich dir mal mindestens vorschlagen deine Post variablen zu escapen oder prepared mysql statements(mysqli oder pdo) zu benutzen.

Funktioniert gar keine Ref Gutschrift ?
 
Werbung:
Richtig debuggen

1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
Werbung:
Zurück
Oben