Seite 1 von 1
Elexier der Bewegung
Verfasst: 20. Mär 2008, 21:17
von sgr011566
Es handelt sich hier um eine Unsauberkeit im Code, die in der Form schon vor längerer Zeit von einem User an mich herangetragen wurde. Die Sache verlief damals im Sand, da ich der Ansicht war, es sei ein gewollter Effekt, der User schrieb damals auch keinen Bugreport - mittlerweile denke ich anders darüber, da es keinerlei Sinn für die Code-Struktur beim Elexier der Bewegung gibt.
Konkret geht es um folgendes:
Elexier der Bewegung wird - laut Sotrax - gelöscht, wenn man sich ausloggt, das heißt, beim Relogin ist der Zustand nicht mehr aktiv.
In der Praxis zeigt sich jedoch, dass der Zustand nicht beim Ausloggen, sondern bei einem neuerlichen Login gelöscht wird.
http://lorana.lo.funpic.de/all/elexier.jpg
In diesem Beispiel habe ich ein Elexier verwendet, Firefox abgeschossen, Firefox neu geöffnet und mich wieder eingeloggt - Erfolg: Elexier ade.
Für diese Vorgehensweise gibt es keine logische Erklärung - im Gegenteil, jeder, der PC-Probleme hat, wird diese Struktur verdammen. Warum wird der Zustand gelöscht, wenn man sich neu einloggt? Es macht keinen Sinn, daher dieser Thread.
Re: Elexier der Bewegung
Verfasst: 20. Mär 2008, 21:20
von Mheatus
Was ist denn, wenn man F5 drückt und damit auch den Ort neu betritt? Ist es dann auch weg?
Re: Elexier der Bewegung
Verfasst: 20. Mär 2008, 21:22
von sgr011566
In diesem Fall bleibt der Zustand bestehen.
Re: Elexier der Bewegung
Verfasst: 20. Mär 2008, 21:51
von Schmiddi
Habs auch gerade getestet - funktioniert
Das ganze ist aber verzwickter als man anfangs denkt oO
Ich hab mich im FF eingelogt und vom Elixier getrunken, danach habe ich mich im Opera eingelogt und nachgeschaut, dort war die Wirkung weg und ich brauchte 6 Sekunden pro Feld. So weit so gut. Dann allerdings hab ich im FF geschaut, während ich im Opera eingelogt war, hier jedoch brauchte ich nur 5 Sekunden pro Feld - auch nach F5 drücken. Nach dem Schließen des Opera-Fensters ist die Wirkung immer noch da oO
Komisch
Re: Elexier der Bewegung
Verfasst: 20. Mär 2008, 21:56
von -=Baphomet=-
Schmiddi hat geschrieben:Habs auch gerade getestet - funktioniert
Das ganze ist aber verzwickter als man anfangs denkt oO
Ich hab mich im FF eingelogt und vom Elixier getrunken, danach habe ich mich im Opera eingelogt und nachgeschaut, dort war die Wirkung weg und ich brauchte 6 Sekunden pro Feld. So weit so gut. Dann allerdings hab ich im FF geschaut, während ich im Opera eingelogt war, hier jedoch brauchte ich nur 5 Sekunden pro Feld - auch nach F5 drücken. Nach dem Schließen des Opera-Fensters ist die Wirkung immer noch da oO
Komisch
Da scheint wohl das Elixier an die Session-ID geknüpft zu sein. Also manchmal würde ich schon gerne mal den Quellcode von freewar zu sehen kriegen, scheint echt an manchen Stellen spannend zu sein

Re: Elexier der Bewegung
Verfasst: 20. Mär 2008, 22:10
von sgr011566
Ohja, den würd ich mir auch zu gern antun ... und natürlich noch lieber dran rumbasteln, wenn ichs könnte *denkt an die vielen unnötigen Abfragenblöcke und die teils wirklich geniale Kommentierung des Codes*
Wobei ich sagen muss, dass in diesem konkreten Fall die Session-ID zwar im ersten Augenblick nachvollziehbar, aber bereits auf den zweiten Blick ne ziemlich schlechte Lösung ist (mal vorsichtig ausgedrückt). Würde man einfach den Zustand schnelle Bewegung beim Ausführen des Logout-Links mit false belegen bzw die Zeit-Variable davon auf Null setzen, wäre das Problem ohne große Umstände gelöst und weit benutzerfreundlicher. Zudem würden so seltsame Effekte, wie von Schmiddi beschrieben, nicht mehr auftreten können.
Re: Elexier der Bewegung
Verfasst: 25. Mär 2008, 16:30
von huwar
sgr011566 hat geschrieben:mittlerweile denke ich anders darüber
Eigentlich denkst Du schon ein knappes Jahr anders darüber^^
viewtopic.php?p=369438#p369438
However, der Effekt besteht immer noch. Sind sicher schon Unmengen an Elexier verschüttet worden....
Re: Elexier der Bewegung
Verfasst: 25. Mär 2008, 23:57
von Al Capone W7
das is mir auch mal pasiert, ich trinke es, mit einmal stürzt mein internet ab, ich log mich neu ein, und weg war es.
Re: Elexier der Bewegung
Verfasst: 26. Mär 2008, 06:38
von Faehrschiff
Ich kenn mich zwar nicht sonderlich mit dem FreeWar-Quellcode und so aus, aber wie wäre es, wenn man solche Zustände, ähnlich wie den Schutz, die KU und der Verräterstatus an die USER-ID bindet?
Re: Elexier der Bewegung
Verfasst: 26. Mär 2008, 17:53
von sgr011566
Da hatte ich aber kein Lust oder sonstwas, einen richtigen Thread zu machen - dachte da auch wirklich, es ist halt so programmiert worden, warum auch immer ...
Ich war mir aber sicher, irgendwo am Rande mal einen Kommentar dazu geschrieben zu haben, danke.
@ Faehrschiff: Genau darum gehts mir ja - das würde im schlimmsten Fall eine zusätzliche Datenbankspalte erfordern. Sollte in Zeiten der Serveraufrüstung aber kein sonderliches Problem darstellen.
Re: Elexier der Bewegung
Verfasst: 30. Mär 2008, 11:21
von Sotrax
Dies hat interne Gründe, die nicht an der Programmierer sondern an PHP Sessions liegen. Der Zustand verfliegt, wenn PHP das ganze als neue Session betrachtet, sprich der Zustand ist an die Usersession gebunden, welche wiederum intern von PHP selbst verwaltet wird. Um das zu ändern müsste ich den Zustand in der Datenbank speichern, was ich aus Performancegründen nicht mache.
Re: Elexier der Bewegung
Verfasst: 30. Mär 2008, 12:56
von vnv_nation
Nur so ein Gedankengang dazu:
Also steht es im Endeffekt nur in der Session, weil es sonst bei jedem Schritt einen weiteren DB-Zugriff gäbe? Dann könnte es trotzdem in die Zeittabelle und du müsstest den Status lediglich beim Re-Login noch einmal erfragen, im Erfolgsfall wird die Restzeit der neuen Session zugeschrieben. Das macht einen Zugriff mehr beim Login, bei worst case 4oo Usern, die gleichzeitig das Elixier nutzen und fliegen könnten, dürfte keine signifikante Einschränkung eintreten und der Effekt bliebe dennoch erhalten.
Re: Elexier der Bewegung
Verfasst: 30. Mär 2008, 19:37
von geratheon
Jetzt muss ich mich noch kurz einmischen, Elixier schreibt man doch so, oder? Und das von Sgr, Tzz

Re: Elexier der Bewegung
Verfasst: 31. Mär 2008, 02:12
von huwar
Sotrax hat geschrieben:Dies hat interne Gründe, die nicht an der Programmierer sondern an PHP Sessions liegen. Der Zustand verfliegt, wenn PHP das ganze als neue Session betrachtet, sprich der Zustand ist an die Usersession gebunden, welche wiederum intern von PHP selbst verwaltet wird. Um das zu ändern müsste ich den Zustand in der Datenbank speichern, was ich aus Performancegründen nicht mache.
Kannst Du dann nicht bitte auch Vergiftung und die LP-Halbierung entsprechend Performance-sensibel nur in der Session speichern?

Re: Elexier der Bewegung
Verfasst: 31. Mär 2008, 13:44
von kaot

da wäre ich auch sehr für zu haben xD
Naja... Ich hab bekomme ein Elexier pro Tag, würde also durchaus Luftsprünge machen wenn das anders geregelt wird... aber wenn nicht mach ich eben wenige relexiere und mehr Fischsuppen *g+