dedlfix: Per htaccess auf zufälliges Bild umleiten

Beitrag lesen

Hi!

Das mit dem Zufallsgenerator habe ich leider noch nicht begriffen.

Du sollst ihn gar nicht initialisieren, weil er von PHP bereits initialisiert wird.

Wenn er mit srand() initialisiert wird, dann werden seine Werte anhand des übergebenen Arguments berechnet. Der Vorgang ist also nachvollziehbar, wenn der selbe Wert verwendet wird. Das will man im kryptografischen Umfeld nicht, weil man damit leichter einen daraus berechneten Schlüssel nachberechnen kann. Deswegen initialisiert man den Generator besser nicht mit bekannten Größen wie der Uhrzeit sondern mit wesentlich zufälligeren Werten. Das muss aber nicht deine Sorge sein, zumal es bei deinem Verwendungszweck nicht auf die Qualität der Zufallszahl ankommt. Verzichte einfach auf srand().

srand ((double)microtime()*1000000);

Zudem ist das auch noch eine Zeile, die sich aus längst vergangenen Zeiten rübergerettet hat. microtime() hat die Angewohnheit, ein recht eigenartiges Format zurückzuliefern. Seit PHP 5 kann man der Funktion deswegen einen optionalen Parameter mitgeben, der dann eine ordentliche Float-Zahl liefert. Wenn du also microtime() irgendwann in anderen Situationen verwenden willst, gib ihr irgendwas, das zu true evaluiert als Parameter mit auf den Weg.

Habe ich das richtig gemacht?

Im Rest sehe ich keinen Fehler. Gibt es denn das erwartete Ergebnis oder nicht? Wenn du dir unsicher bist, geh durch den Code und erkläre dir selbst, was er macht[*]. Und das möglichst auch für den Fall, dass ein Fehler auftritt. Dazu musst du dir überlegen, was alles schief gehen kann. Das machen viele leider nicht, woraus dann nicht robuster Code resultiert.

[*] Am besten ist wohl, wenn du dir jemanden vorstellst, der noch weniger Ahnung hat als du selbst, und ihm verständlich zu erklären versuchst, was dein Code macht. Das schärft auch den Blick für Details.

Lo!