anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 28 Mär, 2024 23:59

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di 02 Feb, 2010 19:44 
Offline
User
User

Registriert: Di 02 Feb, 2010 19:34
Beiträge: 10
Geschlecht: Männlich
Skype: todibohr
Huhu alle zu'samm!

Ich würd' gern aus meiner Grotte aus die Beiträge auf den erlaubten Plätzen löschen und somit auch die dafür bekommenen Rp-Punkte wieder abziehen. Ich hab das dann versucht in der superuser.php zu proggen, aber irgendwie passiert (außer dem Löschen) dort rein gar nichts. Meiner Meinung nach sollte es aber eigentlich klappen ô.O.
Würde mich freuen, wenn einer von Euch bei dem Problem helfen könnte.


superuser.php
$this->bbcode_second_pass_code('', 'if ($_GET[op]=="commentdelete"){
/*
Rp-Punkte abziehen
Anfang
*/
$result = db_query("SELECT * FROM commentary WHERE commentid='$_GET[commentid]'") or die(db_error(LINK));
$row = db_fetch_assoc($result);

$nichterlaubt = array("ooc"=>"1","lodge"=>"1","jail"=>"1","superuser"=>"1","todolist"=>"1");

if($nichterlaubt[$row['section']]!=1) {
$ergebnis = db_query("SELECT acctid,donation,rppunkte FROM accounts WHERE acctid='$row[author]'") or die(db_error(LINK));
$zeile = db_fetch_assoc($ergebnis);

$abzug = floor((strlen($row['comment']))/150);

$anzahldp = $zeile['donation'] - $abzug;
$anzahlrp = $zeile['rppunkte'] - $abzug;

db_query("UPDATE `accounts` SET `rppunkte`='".$anzahlrp."', `donation`='".$anzahldp."' WHERE `acctid`=".$zeile['acctid']);
}

/*
Rp-Punkte abziehen
Ende
*/
$sql = "DELETE FROM commentary WHERE commentid='$_GET[commentid]'";
db_query($sql);
$return = $_GET['return'];
$return = preg_replace("'[?&]c=[[:digit:]-]*'","",$return);
$return = substr($return,strrpos($return,"/")+1);
if (strpos($return,"?")===false && strpos($return,"&")!==false){
$x = strpos($return,"&");
$return = substr($return,0,$x-1)."?".substr($return,$x+1);
}
redirect($return);
}')


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di 02 Feb, 2010 19:58 
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
Sei froh, dass nichts passiert :D

db_query("UPDATE `accounts` SET `rppunkte`='".$anzahlrp."', `donation`='".$anzahldp."' WHERE `acctid`=".$session['user']['acctid']);

Das würde DIR die Punkte abziehen, und nicht wie gewünscht dem Autor.
Das klappt glücklicherweise aber auch nicht, da in der common.php deine Accountinformation mit den Daten aus der Sitzung aktualisiert wird, und dadurch jede über UPDATE gemachte Änderung sofort wieder überschrieben wird.

Korrigiere deinen Datenbankbefehl, dann sehen wir weiter. :)

_________________
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  
BeitragVerfasst: Di 02 Feb, 2010 20:04 
Offline
User
User

Registriert: Di 02 Feb, 2010 19:34
Beiträge: 10
Geschlecht: Männlich
Skype: todibohr
Der Fehler ist mir selbst eben auch schon aufgefallen. Wollte das so eigentlich gar nicht hier so posten. :P

Aber auch wenn ich es ändere passiert dort rein gar nichts:


$this->bbcode_second_pass_code('', 'db_query("UPDATE `accounts` SET `rppunkte`='".$anzahlrp."', `donation`='".$anzahldp."' WHERE `acctid`=".$zeile['acctid']);')


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di 02 Feb, 2010 21:22 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
1) $row['author'] anstatt $zeile['acctid'] nehmen. Sollten zwar beide den gleichen Wert haben, aber prinzipiell sollte man sich immer auf den gleichen Grundwert beziehen. Dient auch der Übersichtlichkeit, dass da niemand anders gemeint ist.
2) Du versuchst hoffentlich nicht einen deiner Posts zu löschen? ;)
3) Kommt das Script überhaupt in den RP-Abzugs-Bereich? Teste das mal, in dem du da eine Ausgabe machst und danach abbrichst mit exit;
4) Kannst du auch mal den Rückgabewert von db_query beim abziehen testen. Bzw. mithilfe db_affected_rows testen, ob überhaupt was geändert wurde.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di 02 Feb, 2010 23:33 
Offline
User
User

Registriert: Di 02 Feb, 2010 19:34
Beiträge: 10
Geschlecht: Männlich
Skype: todibohr
Eliwood hat geschrieben:
2) Du versuchst hoffentlich nicht einen deiner Posts zu löschen? ;)


Hehe. Ich glaub ich brauch nichts weiter zu sagen...
Hab das wohl bei anpera nicht ganz gerallt. Danke für die Hilfe.


:?:

Aber man könnte da doch nun noch 'ne Überprüfung einbauen, ob der gelöschte Beitrag nicht von einem selber ist.

Hier der neue Code (getestet und funktioniert :D ):

$this->bbcode_second_pass_code('', 'if ($_GET[op]=="commentdelete"){
/*
Rp-Punkte abziehen
Anfang
*/
$result = db_query("SELECT * FROM commentary WHERE commentid='$_GET[commentid]'") or die(db_error(LINK));
$row = db_fetch_assoc($result);

$nichterlaubt = array("ooc"=>"1","lodge"=>"1","jail"=>"1","superuser"=>"1","todolist"=>"1");

if($nichterlaubt[$row['section']]!=1) {
$ergebnis = db_query("SELECT donation,rppunkte FROM accounts WHERE acctid='$row[author]'") or die(db_error(LINK));
$zeile = db_fetch_assoc($ergebnis);

$abzug = floor((strlen($row['comment']))/150);

if ($row['author'] == $session['user']['acctid']) {
$session['user']['donation']-=$abzug;
$session['user']['rppunkte']-=$abzug;
} else {
$anzahldp = $zeile['donation']-$abzug;
$anzahlrp = $zeile['rppunkte']-$abzug;

db_query("UPDATE accounts SET rppunkte='".$anzahlrp."', donation='".$anzahldp."' WHERE acctid=".$row[author]);
}
}

/*
Rp-Punkte abziehen
Ende
*/
$sql = "DELETE FROM commentary WHERE commentid='$_GET[commentid]'";
db_query($sql);
$return = $_GET['return'];
$return = preg_replace("'[?&]c=[[:digit:]-]*'","",$return);
$return = substr($return,strrpos($return,"/")+1);
if (strpos($return,"?")===false && strpos($return,"&")!==false){
$x = strpos($return,"&");
$return = substr($return,0,$x-1)."?".substr($return,$x+1);
}
redirect($return);
}')


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi 03 Feb, 2010 10:59 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Das ist einer der häufigsten Fehler, keine Sorge. Man erwartet es halt nicht. LotGD ist da... Nun, wenn man noch nicht jeden Winkel kennt, wirkt manches wie Magie. In dem Fall eher Negativ gemeint.

Aber schön, dass es doch funktioniert. Glückwunsch.

Jetzt nur noch bei deinem Link im Profil zum Spiel das htpp durch http ersetzen... :D


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 14 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