PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Userkontostand / WaterLand Slot schwerer Fehler



Sledgedog
30.05.2010, 17:07
Habe eben das Problem, das der Kontostand bei allen usern falsch ist

bis auf etwa 3% der user haben nun alle user einen identischen kontostand von

1.451.054,32 Losen

in den Buchungslisten ist nix zu finden

Hat jemand einen Tipp, wo ich die Fehlersuche beginnen könnte?

EDIT by jpwfour:
Zum Bugfix: http://www.designerscripte.net/showthread.php?p=86734#post86734

didith1207
30.05.2010, 17:08
was hast du zuletzt umgebaut oder eingebaut mit einer kontobuchung funktion?

Sledgedog
30.05.2010, 17:12
zuletzt eingebaut habe ich den Waterland Slot
der wurde heute aber nicht gespielt

Sledgedog
30.05.2010, 17:23
also komischerweise ist die höhe des Kontostands den nun alle haben identisch mit einer auszahlung die ein user gemacht hat
genau ab da hatten dann alle diesen kontostand

jpwfour
30.05.2010, 17:24
Steht dieser Kontostand so direkt in der Datenbank?
Wenn ja, welchen Typ hat die Spalte kontostand in der vms_kontodaten? (INT(XX); DOUBLE(y,x), .....?)

Wenn nein, ist es ja "nur" ein Ausgabefehler :wink:

Wenn ja, hast du ein Problem :eek:

In dem Fall den Typ wieder auf den ursprünglichen Stellen.

EDIT: dann schau dir die auszahlen.php an, was wurde da geändert? Kann natürlich gut sein, dass irgendwo ein Query gemacht wurde, der nicht nur bei 1 User den Kontostand gesetzt hat, sondern aufgrund fehlendem WHERE uid= oder SQL Injection bei allen

Sledgedog
30.05.2010, 17:28
ja steht so bei allen in der datenbank

typ double(100,2)

jpwfour
30.05.2010, 17:50
Ok, also der Typ passt, dann wars entweder der fehlerhafte Query im Script, der würde sich aber finden lassen, oder eben eine SQL Injection.

Hast du evtl ein Bonuslose Addon drin? Da muss mn ja meist an der auszahlen.php was ändern, damit keine Bonuslose ausgezahlt werden können (könnte eine mögliche Fehlerquelle sein)

didith1207
30.05.2010, 18:08
bitte den slot
Waterland VMS

sofort alle deaktivieren!!!!!!!!!!!

bei gewinngutschrift bekommen alle user den gewinn gutgeschrieben...
oder verändert alle kontostände :(

jpwfour
30.05.2010, 18:34
Ok, danke für den Hinweis, Thema umbenannt und verschoben.

Sledgedog
30.05.2010, 18:45
hab das ganze nun nach der super Hilfe von didith1207 :thumb:

nochmal getestet

sobald ein user einen gewinn hat, geht der slot hin und überträgt den kontostand des users der gespielt hat auf alle anderen user

hat der user also 1,2 mio auf dem konto und erziehlt einen gewinn, dann haben danach alle user 1,2 mio auf dem konto

hat ein user 357mio auf dem konto und dann einen gewinn dann haben halt alle user danach 357mio auf dem konto

da hatte ich ja glück, das der user, der den Gewinn hatte nicht viel auf dem Konto hatte, da natülich einige User die weniger als die 1,45 mio drauf hatten, nach dem Fehlbuchung direkt mal ausgezahlt haben

Sledgedog
30.05.2010, 18:57
Fehler gefunden:


in der game.php muss diese zeile entfernt werden:


mysql_query("UPDATE ".$db_datentabelle." SET ".$db_kontofeld."='".$kontostand."'");aber wie ich erfahren habe wurde der shop-Betreiber schon lange informiert, nur leider passierte wohl bisher nix

Hardy
30.05.2010, 19:02
hat wohl jemand die where klausel vergessen :eek:

WaechterMedia
30.05.2010, 21:11
verstehe sowieso nicht warum manche nicht einfach die konto funktionen des vms nutzen können ist doch viel einfacher.

didith1207
30.05.2010, 21:14
das wars ja deswegen hab ich anfangs nix gefunden weil die vms kontofunktion drinnen ist nur eben diese oben genannte zeile zuviel drinnen ist ;)

saitho
30.05.2010, 21:33
Fehler gefunden:


in der game.php muss diese zeile entfernt werden:


mysql_query("UPDATE ".$db_datentabelle." SET ".$db_kontofeld."='".$kontostand."'");aber wie ich erfahren habe wurde der shop-Betreiber schon lange informiert, nur leider passierte wohl bisher nix
Wer ist denn der Shopbetreiber? Weil ich biete den Slot auch in meinem Shop an, und meine Version vom WaterLand nutzt die Kontofunktionen vom VMS. Vielleicht hatte da jemand eine nicht aktuelle Version? :eek:

WaechterMedia
30.05.2010, 21:43
Wer ist denn der Shopbetreiber? Weil ich biete den Slot auch in meinem Shop an, und meine Version vom WaterLand nutzt die Kontofunktionen vom VMS. Vielleicht hatte da jemand eine nicht aktuelle Version? :eek:
Schau doch einfach ob die von didith gepostete zeile nicht mehr vorhanden ist.

didith1207
30.05.2010, 23:11
hier der ausschnitt:


if($gewinn > 0 && $jp == false)
{
//Gewinn gutschreiben
$kontostand += $gewinn;
// VMS
$buchungs_id = create_code(14);
gamebuchungsliste ($buchungs_id,$gewinn,'WaterLand Gewinn',$_SESSION[$sessiondata]);
kontobuchung ('+',$gewinn,$_SESSION[$sessiondata]);
// VMS
mysql_query("UPDATE ".$db_datentabelle." SET ".$db_kontofeld."='".$kontostand."'");
$winpot -= $gewinn;
}also diese zeile ist zuviel im oben genannten code:


mysql_query("UPDATE ".$db_datentabelle." SET ".$db_kontofeld."='".$kontostand."'");