anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Di 10 Jun, 2025 06:21

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Post-Daten werden nicht geuppdatet
BeitragVerfasst: Mi 13 Apr, 2005 14:32 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
[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 :o


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 13 Apr, 2005 15:07 
Offline
Admin
Admin
Benutzeravatar

Registriert: Di 21 Jan, 2003 01:11
Beiträge: 1604
Wohnort: Haßfurt
Geschlecht: Männlich
LoGD: http://www.anpera.net/logd
Skype: anpera-net
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.

_________________
Praxis ist, wenn alles klappt aber keiner weiß warum. Theorie ist, wenn man weiß wie es geht, aber nichts klappt. Wir haben beides erfolgreich vereinigt: Bei uns klappt nichts und keiner weiß warum!

Neues Video: Marios freier Tag in Second Life


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 13 Apr, 2005 15:16 
Offline
Großmeister
Großmeister

Registriert: Mi 15 Dez, 2004 00:41
Beiträge: 467
Wohnort: München
anpera hat geschrieben:
...UPDATE gilden SET gildengold=gildengold+{$spendgold}...
...UPDATE gilden SET gildengems=gildengems+{$gemsgold}...

:shock:
Neeeeeeeeeeeeein! :D
$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;#).

_________________
A bus station is where busses stop. A train station is where trains stop. On my desk there is a workstation...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 13 Apr, 2005 15:26 
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 :shock:


Nach oben
  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 13 Apr, 2005 15:54 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Das mit den Abfragen ob Wert negativ oder Positiv is, sollte noch kommen :roll:

Zuerst wollte ich versuchen, ob das überhaupt geht, und dem war nicht der Fall :pein:

Na ja, Danke an alle :wink:


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum