anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Post-Daten werden nicht geuppdatet https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=1258 |
Seite 1 von 1 |
Autor: | Eliwood [ Mi 13 Apr, 2005 14:32 ] |
Betreff des Beitrags: | Post-Daten werden nicht geuppdatet |
[php]case "spendgold": addnav("Zurück zur Gilde","gilden.php?op=drin&ID=".urlencode($row['gildenid'])."&name=".urlencode($row['gildenname']).""); if ($row['gildenschatzkammer']==1) $goldlager = 400000; if ($row['gildenschatzkammer']==2) $goldlager = 1000000; if ($row['gildenschatzkammer']==3) $goldlager = 2000000; $platzuebrig = $goldlager-$row['gildengold']; if ($_GET['act']=="") { output("In der Schatzkammer gibt es Platz für `^".$platzuebrig." Gold`&."); output("<form action='gilden.php?op=drin&gilde=spendgold&act=spend' method='post'><input name='spend' lengt='10' maxlenght='10'><input type='submit' value='Spenden'></form>",true); addnav("","gilden.php?op=drin&gilde=spendgold&act=spend"); } if ($_GET['act']!="") { $spendgold = $_POST['spend']; db_query ("UPDATE gilden SET gildengold='".$spendgold."' WHERE gildenid='".$_GET['ID']."'"); $session['user']['gildengold'] += $spendgold; $sessoin['user']['gold'] -= $spendgold;d; output("Du hast `^".$_POST['spend']." Gold`& gespendet"); } break; case "spendgems": addnav("Zurück zur Gilde","gilden.php?op=drin&ID=".urlencode($row['gildenid'])."&name=".urlencode($row['gildenname']).""); if ($row['gildenschatzkammer']==1) $gemslager = 400; if ($row['gildenschatzkammer']==2) $gemslager = 1000; if ($row['gildenschatzkammer']==3) $gemslager = 2000; $platzuebrig = $gemslager-$row['gildengems']; if ($_GET['act']=="") { output("In der Schatzkammer gibt es Platz für `%".$platzuebrig." Edelsteine`&."); output("<form action='gilden.php?op=drin&gilde=spendgems&act=spend' method='post'><input name='spend' lengt='10' maxlenght='10'><input type='submit' value='Spenden'></form>",true); addnav("","gilden.php?op=drin&gilde=spendgems&act=spend"); } if ($_GET['act']!="") { $gemsgold = $_POST['spend']; db_query ("UPDATE gilden SET gildengems='".gemsgold."' WHERE gildenid='".$_GET['ID']."'"); $session['user']['gildengems'] += $gemsgold; $sessoin['user']['gems'] -= $gemsgold; output("Du hast `%".$_POST['spend']." Edelsteine`& gespendet"); } break;[/php] Man spende Gold oder Edelsteine. Ein Fehler kommt nicht, nach dem Spendenbestätigen kommt, dass man so und soviel gespendet hat, aber es wird nicht geupdatet ![]() EDIT: $_GET['ID'] wird richtig festgelegt EDIT: Die Spenden werden nich einmal von den eigenen Daten abgezogen ![]() |
Autor: | anpera [ Mi 13 Apr, 2005 15:07 ] |
Betreff des Beitrags: | |
Keine Ahnung, was in $gilden['id'] drin steht, aber wenn für &ID= ein urlencode nötig ist, dann sollte $_GET['ID'] auch ein urldecode bekommen dürfen. Außerdem sind in der Zeile $sessoin['user']['gold'] -= $spendgold;d; zwei kleine Fehlerchen enthalten. Einer davon auch in der Zeile $sessoin['user']['gems'] -= $gemsgold; Und sollte es statt ...UPDATE gilden SET gildengold='".$spendgold."'... nicht besser ...UPDATE gilden SET gildengold=gildengold+{$spendgold}... und statt ...UPDATE gilden SET gildengems='".gemsgold."'... besser ...UPDATE gilden SET gildengems=gildengems+{$gemsgold}... heißen? Hmm, und eine Sicherheitsabfrage auf eingegebene negative Werte oder ungültige Eingaben sollte auch irgendwo vorhanden sein. |
Autor: | Chaosmaker [ Mi 13 Apr, 2005 15:16 ] |
Betreff des Beitrags: | |
anpera hat geschrieben: ...UPDATE gilden SET gildengold=gildengold+{$spendgold}...
...UPDATE gilden SET gildengems=gildengems+{$gemsgold}... ![]() Neeeeeeeeeeeeein! ![]() $gemsgold und $spendgold kommt direkt aus den POST-Daten und ist ungeprüft! Daher nur so: ...UPDATE gilden SET gildengold=gildengold+'{$spendgold}'... ...UPDATE gilden SET gildengems=gildengems+'{$gemsgold}'... Ansonsten bekommen böse User quasi Vollzugriff auf die Datenbank (z.B. sollte es dann genügen, im Gold-Eingabefeld, das ja zu $spendgold wird, einzugeben: 0;delete from accounts;#). |
Autor: | das_anp [ Mi 13 Apr, 2005 15:26 ] |
Betreff des Beitrags: | |
Darum hab ich doch das mit der Abfrage auf negative Werte (womit ein ebensolcher böser User die Gildenkasse mit negativen Spenden theoretisch bis weit ins Negative plündern kann - ob nun mit ' oder ohne) und auf ungültige Eingaben empfohlen ![]() |
Autor: | Eliwood [ Mi 13 Apr, 2005 15:54 ] |
Betreff des Beitrags: | |
Das mit den Abfragen ob Wert negativ oder Positiv is, sollte noch kommen ![]() Zuerst wollte ich versuchen, ob das überhaupt geht, und dem war nicht der Fall ![]() Na ja, Danke an alle ![]() |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |