anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Fr 18 Okt, 2019 09:22

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Sinn von $revertsession?
BeitragVerfasst: Mo 03 Okt, 2011 23:31 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
Hallo,

ja lang ist es her seit ich mal wieder ein Thema eröffnet habe^^


Meine frage bezieht sich auf $revertsession die bei mir nur ca 3 mal in der common.php auftaucht und zwar bei der checkday funktion und weiter unten irgendwo. Das ist denke ich mal Standart denn ich erinnere mich nicht im entferntesten daran etwas daran verändert zu haben.

Allerdings erschließt sich mir der sinn nicht, da die revertsession gesetzt wird _nachdem_ bei checkday die aktuelle session wieder auf revertsession gestellt wird. Ist die Session denn dann nicht veraltet, und wozu das ganze?


Ich habe nämlich ein problem das lautet wie folgt: Wenn man einen Post schreibt und dann abschickt wenn schon ein Newday ist, wird zwar der Post in die Datenbank eingelesen, aber, die Donationpoints bleiben auf dem alten wert (diese werden _vor_ dem eintragen in der datenbank berechnet und gutgeschrieben). Und ich denke das es vielleicht damit zusammenhängen könnte, das dort eben noch die $session von vor einem pagehit abgespeichert ist, und dann eben der alte wert wieder in der Session landet???

könnte mich auch durch die fortgeschritte Uhrzeit total auf dem Holzweg befinden??? klärt mich jemand auf? XD

grüße


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sinn von $revertsession?
BeitragVerfasst: Di 04 Okt, 2011 06:23 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
Kannst du sie nicht einfach $session['user']['donation'] gutschreiben anstatt direkt auf die Datenbank zuzugreifen? (Sofern die Punkte automatisch vergeben werden. Ist etwas schwer zu erkennen, da die source.php nicht funktioniert ;)).

Dann sollten die Punkte beim neuen Tag im revertsession liegen, und dann in die Datenbank geschrieben werden. ;)

Im übrigen ist das Ziel von revertsession (soweit ich es erkennen kann), dass man am newday noch den gleichen Inhalt in der Session hat wie vorher.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sinn von $revertsession?
BeitragVerfasst: Di 04 Okt, 2011 13:01 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
Hallo,

lol den fehler in der Source php, ich hab keine ahnung wann der da reingerutscht ist -_-

es wird in genau diese Session hineingeschrieben, das problem liegt aber daran das der newdaycheck kommt BEVOR die aktuelle session in revertsession landet, und deswegen geht es verloren ... so glaube ich.

Ablauf:

Neue Tag bricht an, du schreibst den post zuende, punkte werden berechnet und in die session des users geschrieben, newday check läuft ab, $session = $revertsession, und danach dann $revertsession = $session;

d.h. aus meiner sicht ist es eben in dem moment die Session von vor einem Pagehit ...
außerdem die Common.php könntest du eh nicht einsehen das ist dann doch etwas zu delikat^^ aber den fehler beheb ich trotzdem..

EDIT: Fehler behoben, ...^^^ Könnte man dann theoretisch einfach das $revertsession entfernen? ich sehe keinen grund wieso am newday die session so gesetzt werden sollte? sie geht ja wegen dem newday nicht verloren oder so...


Zuletzt geändert von Tidus am Di 04 Okt, 2011 13:10, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sinn von $revertsession?
BeitragVerfasst: Di 04 Okt, 2011 13:09 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
Eigentlich sollte der newdaycheck erst nach dem setzen von revertsession ausgeführt werden. (Wird ja bereits in der common.php gesetzt, checkday() wird aber erst nach dem einbinden der common.php aufgerufen.)

Ansonsten gilt es einfach sicher zu stellen, dass die addcommentary (oder wo du deine Ounkte auch immer gutschreibst), vor der checkday aufgerufen wird.

Am besten debugst du mal etwas. Solange du nur vermutest bringt das auch nicht sonderlich viel ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sinn von $revertsession?
BeitragVerfasst: Di 04 Okt, 2011 13:13 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
Nunja addcommentary ist eine meiner ausgelagerten funktionen, diese wird im kopf der datei eingebunden also quasie vorher ausgeführt oder?

ich probier einfach mal rum, ... aber wie gesagt, wenn irgendjemand sicher sagen kann das ich es einfach entfernen könnte wäre ich über die info sehr verbunden^^

grüße

EDIT: wenn ich es auskommentiere funktioniert die gutschrift, ich bemerke auch keinen nachteil, hm..^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sinn von $revertsession?
BeitragVerfasst: Di 04 Okt, 2011 19:35 
Offline
Eingeweihter
Eingeweihter

Registriert: Mi 12 Aug, 2009 18:11
Beiträge: 65
Geschlecht: Männlich
LoGD: http://www.plueschdrache.de
Ich schätze mal, das Ganze ist einfach als kleine Schutzmaßnahme gedacht.
Nehmen wir mal an, jemand hat das checkday() falsch am Ende eines Skriptes eingefügt, in dem der Spieler Gold bekommt oder andere Dinge am Account geändert werden. Dann würde das Skript durchlaufen, der neue Tag kommt erst jetzt und danach würde das Skript nochmal durchlaufen und nochmal Gold gutschreiben.
Daher wird $session einfach gesichert, bevor etwas geändert wird, und im Fall eines neuen Tages von checkday auf diesen Stand zurückgesetzt. Quasi als ob das Skript, in dem der Tag ausgelöst wurde, nie aufgerufen wurde. Das passiert dann wirklich erst nach dem neuen Tag.

Genau das macht jetzt das Problem bei Tidus:
Der Beitrag wird abgeschickt, mit der neuen Seite wird erstmal die common.php eingebunden und $revertsession gesetzt. Dann kommt addcommentary(), speichert den Beitrag und die Donationpoints in der $session. Jetzt kommt aber checkday(), stellt einen neuen Tag fest und setzt $session wieder auf $revertsession zurück, bevor zur newday.php umgeleitet wird und weg sind die Punkte.

Ich wüsste jetzt so keine Stelle an dem der Verzicht auf $reversession ein Problem macht, aber ich kann es jetzt auch nicht ausschließen.

Vielleicht wäre es alternativ eine Idee, in der addcommentary() die Donationpoints parallel zu $session auch in $revertsession zu speichern. Das müsste doch eigentlich funktionieren... im Normalfall ist es ja bedeutungslos und bei einem neuen Tag wird $revertsession dann übernommen. :?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sinn von $revertsession?
BeitragVerfasst: Di 04 Okt, 2011 20:09 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
Das gleiche Problem wie Tidus hatte auch ich. Ich habs mit einem Hack gelöst, nicht schön, aber es funktioniert.

In der addcommentary():$this->bbcode_second_pass_code('', 'function addcommentary() {
global $_POST,$session,$REQUEST_URI,$_GET,$doublepost,$revert_dp,$rporte,$gott;
...
if ($session['user']['rp_only']>=1) $session['user']['donation']+=$points;
$revert_dp=$session['user']['donation'];
...
')

und in der funktion checkday():$this->bbcode_second_pass_code('', 'function checkday() {
global $session,$revertsession,$REQUEST_URI, $revert_dp;
if ($session['user']['loggedin']){
output("<!--CheckNewDay()-->",true);
if(is_new_day()){
$session=$revertsession;
if ($revert_dp>$session['user']['donation']) $session['user']['donation']=$revert_dp;
....

')
Mein RP-System funktioniert zwar ein wenig anders als die meisten, aber der Sinn dahinter sollte verständlich sein. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sinn von $revertsession?
BeitragVerfasst: Di 04 Okt, 2011 22:14 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
Hallo,

ja aus dem licht betrachtet das da einige sachen doppelt gutgeschrieben werden, macht es natürlich sinn. Aber darüber hatte ich bis jetzt garnicht nachgedacht da ich es ja eigentlich immer im kopf der datei aufrufe.

@Linus: Das ist natürlich immernoch eine elegantere lösung im vergleich dazu die revertsession zu entfernen, allerdings, da es ja nur passieren kann wenn man es am ende einer datei aufrufen würde, wäre der grund es nicht zu entfernen wieder nicht gegeben.

hmmm... Es wäre wirklich interessant dazu noch weitere Denkansätze zu haben, also wozu es gut sein könnte, ist immer mal interessant wie so ein paar Zeilen ein neues licht bekommen wenn man darüber nachdenkt. Im moment erscheint es mir eher so als ob man damit noch mehr probleme haben könnte die einem zur zeit noch nicht bewusst sind, da glaube aus den Gilden von Dasher die ein bisschen Rabenthal mitbringen unten am ende der Common.php funktionen wegen dem Transfehr burg eingefügt werden die ja wieder nach revertsession umgesetzt würden etc.

wenn man sich genau im klaren darüber ist was man damit erreichen will, könnte man vielleicht für die Zukunft auch etwas effektiver damit umgehen und/oder eine neue lösung dafür finden falls noch nötig^^

grüße


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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