Tausend Benutzer

Neue Frage »

Steffen Bühler Auf diesen Beitrag antworten »
Tausend Benutzer
Liebe Admins,

gerade schau ich auf die Hauptseite und denke "na, so ein Zufall, exakt 1000 Leute sind da." Dann schau ich noch mal hin und denke "komisch, irgendwas ist anders." Und was?

Da, wo sonst immer "Zur Zeit sind xxx Benutzer online" steht, lese ich auf einmal "Zur Zeit ist 1.000 Benutzer online" und weiter unten zur Bestätigung "Zur Zeit ist 27 Mitglieder und 973 Besucher im Forum unterwegs." Beweisfoto siehe Anhang.

Nun ist das hier kein Deutschforum, und ich kann damit auch leben, bei anderen Zahlen stimmt ja wieder alles. Mich würde nur als Programmierer interessieren, wie dieser Bug zustande kommt.

Kann mich jemand aufklären?

Vielen Dank und viele Grüße
Steffen
Equester Auf diesen Beitrag antworten »

Eine Möglichkeit:

Wo gerade "Deutsch" so hervorgehoben wird, wäre es doch möglich, dass man sich iwo in der
Programmierung mit Englisch und Deutsch vertan hat?
Immerhin wäre 1.000 im Englischen eine 1 verwirrt .

Wink
Thomas Auf diesen Beitrag antworten »

Entschuldigt die späte Antwort:

Das Problem lag am dynamic typing von PHP und der falschen Reihenfolge der Anzeigekonvertierung.

Im Detail: Wenn die Zahl > 1000 war, wurde sie mit Tausenderpunkt zu 1.000 formatiert. Dann wurde geprüft, ob lediglich 1 Benutzer online ist. Da PHP 1.000 dann dynamisch in 1 umgewandelt hat, ergab diese Prüfung fälschlicherweise "wahr" und damit kam dann die Einzahl "ist" zustande.
Steffen Bühler Auf diesen Beitrag antworten »

Zitat:
Original von Thomas
Da PHP 1.000 dann dynamisch in 1 umgewandelt hat, ergab diese Prüfung fälschlicherweise "wahr" und damit kam dann die Einzahl "ist" zustande.


Ah, das war ja auch Equesters Vermutung. Sowas in der Richtung dachte auch ich, nur konnte ich mir nicht vorstellen, daß eine Zahl mühsam in einen String und wieder zurück in eine Zahl gewandelt wird, bevor ich sie auf eine Funktion loslasse, die auf Gleichheit mit Eins prüft.

Vielen Dank und viele Grüße
Steffen
Thomas Auf diesen Beitrag antworten »

PHP macht das automatisch (dynamic statt static typing), darum ist das für den Programmierer nicht ganz so mühsam, leider aber auch eine häufige Fehlerquelle.
Steffen Bühler Auf diesen Beitrag antworten »

Zitat:
Original von Thomas
PHP macht das automatisch (dynamic statt static typing)


Ich dachte es mir, daß dies nicht explizit programmiert wird. Wenn ich mir allerdings vorstelle, was da im Hintergrund alles unnötig abläuft, kann ich langsam verstehen, daß manche Webseiten nur noch mit Quad-Core-Prozessoren in zumutbarer Zeit benutzt werden können. Vielleicht wird PHP ja von der Hardwareindustrie gesponsort, damit alle paar Jahre ein neuer PC fällig ist? Augenzwinkern

Du kannst natürlich nichts dafür, denn das scheint wohl PHP-inhärent zu sein. Hätte ich allerdings in den 90ern meinem Chef erklären müssen, daß wenn ich in meiner Software 1+1 rechne, die zwei Integers vor dem Addieren erst in Character-Arrays gewandelt werden, sodann jeweils eine Kopie davon an die Additionsroutine geschickt wird, die sie auf Double konvertiert, addiert und das Ergebnis in einem String zurückgibt, zusammen mit der aktuellen Uhrzeit - ich weiß nicht, was ich zu hören bekommen hätte. Tempora mutantur.

Viele Grüße
Steffen
 
 
Thomas Auf diesen Beitrag antworten »

Die Performance ist im Vergleich zu den Programmierfehlern die dadurch passieren sogar eher vernachlässigbar. Der Fehler bestand bereits in der Original-Boardsoftware.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »