"We are back" « oc.at

srand not random???

LTD 04.10.2008 - 23:55 914 6
Posts

LTD

frecher fratz
Avatar
Registered: Feb 2001
Location: is where it is
Posts: 6334
Kann mir jemand sagen warum srand nicht random ist? Jedes mal wenn jemand http://www.markusklug.com ansurft, kommt das Zitat von Elisabeth Opelanik als erstes (Nr.0 im Array)... erst danach kommen andere. Wo kann da der Fehler liegen?


Code: PHP
function rnd(){
$path = "bla";
$handle = fopen($path, "r");
$lines=file($path); //$lines is an array 
$linecount=(count($lines)-1);
srand(microtime()*1000000);
$linenum = rand(0,$linecount);
$parts=explode("::",$lines[$linenum]);
echo htmlentities($parts[count($parts)-2])."<br><br>".htmlentities($parts[count($parts)-1]);
Bearbeitet von LTD am 05.10.2008, 11:18

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
so wie ich das seh setzt du mit srand() den anfangswert für den zufallsgenerator fest. wenn du die zeile weglässt, sollte es funktionieren.

http://us.php.net/srand
http://us.php.net/rand
Bearbeitet von prayerslayer am 05.10.2008, 00:26

LTD

frecher fratz
Avatar
Registered: Feb 2001
Location: is where it is
Posts: 6334
Habe es schon ohne srand versucht, dann geht es gleich schlecht bzw. bei refresh noch schlechter...

Habe jetzt srand*srand eingebaut, ich hoffe das klappt nun =).

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13496
Es kann auch Zufall gewesen sein, dass "beim Ersten mal" immer dasselbe Zitat kommt. Es sind nun mal Zufallswerte ;). Darüberhinaus macht es theoretisch keinen Unterschied auf der Server Seite, ob jemand das script zum ersten mal aufruft, oder nicht.

LTD

frecher fratz
Avatar
Registered: Feb 2001
Location: is where it is
Posts: 6334
Zitat von Spikx
Es kann auch Zufall gewesen sein, dass "beim Ersten mal" immer dasselbe Zitat kommt. Es sind nun mal Zufallswerte ;). Darüberhinaus macht es theoretisch keinen Unterschied auf der Server Seite, ob jemand das script zum ersten mal aufruft, oder nicht.

Daran habe ich zuerst auch gedacht, aber ca. 15x Zufall in Folge bei 4 unterschiedlichen Leuten/Browsern/Betriebssystem is auffällig häufig hehe

Wie auch immer, mit 2x srand scheint die Sache zu klappen...

Thx 4 Help!

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25693
Mach einfach nur srand(time()). Das sollte problemlos funktionieren!

Edit: Bist du dir sicher, dass das line-Array und der linecount passt?

jives

And the science gets done
Avatar
Registered: Sep 2001
Location: Baden
Posts: 3548
Alternativ sollte shuffle() und ein anschließendes array_pop() auch ein Element zufällig aus dem Array auswählen.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz