joker_t2005
abgemeldet
- 27 Januar 2007
- 603
- 35
Ich habe ein fehler in einer php datei, wenn der user seine lose auszahlt zahlt er auch seine bonuslose aus!
Das ist ein teil der auszahlungs php.
Und das ist der Teil aus der funktions.lib.php der fürs buchen zuständig ist.
Würde mich sehr freuen wenn mir jemand sagen kann wo der fehler ist.
Mfg Joker_t2005
Das ist ein teil der auszahlungs php.
PHP:
<? userstatus();
$tag = strtotime("".date("m")."/".date("d")."/".date("Y")." 0 hours 0 minutes 0 seconds");
$schnittstelle = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_schnittstelle LIMIT 1")) or die("Userinfo");
$s_verbrauch = mysql_num_rows(db_query("SELECT * FROM ".$db_prefix."_schnittstelle_anfragen WHERE uid='".$_SESSION['uid']."' and zeit='".$tag."'"));
$a_free= mysql_fetch_array(db_query("SELECT a_free AS free FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid']));
if ($_POST['auszahlen'] == 'Auszahlen' && $_POST['uid_passwort'] && $_POST['trans_menge']) {
//neu Auszahlungs Sperre anfang
if( $a_free['free'] == '1' ) {
//neu Auszahlungs Sperre
if (!ereg("[^0-9]", $_POST['trans_menge']) and $_POST['trans_menge'] >= $schnittstelle['auszahlsumme']) {
$kontodaten = mysql_fetch_array(db_query("SELECT `kontostand` FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));
if ($_POST['trans_menge'] <= $kontodaten['kontostand']) {
if ($schnittstelle['anfragen_user'] == 0 or $s_verbrauch < $schnittstelle['anfragen_user']) {
$buchungs_id = create_code(14);
@require_once ("lib/schittstellen/".$schnittstelle['schnittstelle'].".php");
@auszahlen ($schnittstelle['betreiber_id'],$schnittstelle['betreiber_passwort'],$_SESSION['uid'],$_POST['uid_passwort'],$schnittstelle['betreiber_kennung'],$_POST['trans_menge'],$schnittstelle['auszahltext'],'');
if ($schnittstelle['anfragen_user'] != 0) db_query("INSERT INTO ".$db_prefix."_schnittstelle_anfragen (zeit,uid) VALUES ('".$tag."','".$_SESSION['uid']."')");
if ($error) {
$auszahlmeldung = $trans_ausgabe;
} else {
kontobuchung ('-',$_POST['trans_menge'],$_SESSION['uid']);
buchungsliste ($buchungs_id,'-'.$_POST['trans_menge'],$schnittstelle['auszahltext'],$_SESSION['uid']);
$auszahlmeldung = 'Es wurden '.$_POST['trans_menge'].' '.$waehrung.' ausgezahlt';
}
} else {
$auszahlmeldung = 'Deine Schnittstellenanfragen sind verbraucht!!!';
}
//
} else { $auszahlmeldung = "Sie sind für Auszahlungen noch nicht Freigeben fragen Sie bitte den Admin.";
}
// Neu Auszahlungs Sperre ende
} else {
$auszahlmeldung = 'Soviel Guthaben hast Du nicht!!!';
}
} else {
$auszahlmeldung = 'Bitte achte auch die Buchungsmenge !!!';
}
} else {
if ($_POST['auszahlen'] == 'Auszahlen') $auszahlmeldung = 'Eingabefehler, bitte wiederholen!!!';
}
$kontodaten = mysql_fetch_array(db_query("SELECT `kontostand` FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));
?>
<? head(""); ?>
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<form action="" method="post">
<tr>
<td align="left" width="55%">Kontonummer</td><td align="left"><?=$_SESSION['uid'];?></td>
</tr>
<tr>
<td align="left">Aktueller Kontostand</td><td align="left"><?=number_format($kontodaten['kontostand'],2,",",".").' '.$waehrung;?></td>
</tr>
<tr>
<td align="left"><?=$waehrung;?> (min. <?=$schnittstelle['auszahlsumme'];?> <?=$waehrung;?>)</td><td align="left"><input type="Text" name="trans_menge" value=""></td>
</tr>
</form>
</table>
<?foot();?>
Und das ist der Teil aus der funktions.lib.php der fürs buchen zuständig ist.
PHP:
function kontobuchung ($art,$trans_menge,$fuer) {
global $db_prefix;
if ($art=="-"){
db_query("UPDATE ".$db_prefix."_kontodaten SET `bonuslose` = `bonuslose` ".$art." ".$trans_menge." WHERE uid=".$fuer." and bonuslose >= ".$trans_menge);
if (mysql_affected_rows()==0)
{
db_query("UPDATE ".$db_prefix."_kontodaten SET `kontostand` = `kontostand` + bonuslose, bonuslose=0 WHERE uid=".$fuer);
db_query("UPDATE ".$db_prefix."_kontodaten SET `kontostand` = `kontostand` ".$art." ".$trans_menge." WHERE uid=".$fuer);
}
}
else
{
db_query("UPDATE ".$db_prefix."_kontodaten SET `kontostand` = `kontostand` ".$art." ".$trans_menge." WHERE uid=".$fuer."");
}
}
function bonuslose ($art,$trans_menge,$fuer) {
global $db_prefix;
db_query("UPDATE ".$db_prefix."_kontodaten SET `bonuslose` = `bonuslose` ".$art." ".$trans_menge." WHERE uid=".$fuer."");
}
Würde mich sehr freuen wenn mir jemand sagen kann wo der fehler ist.
Mfg Joker_t2005