2017-02-17 1 views
0

ich folgende index.php auf a testsite bekam:PHP rand funktioniert nur einmal

<?php 
    $r = rand(1, 1000); 
    $mtr=mt_rand(1, 1000); 
    echo "rand(1, 1000): " . $r; 
    echo "<br>mt_rand(1, 1000): " . $mtr; 
?> 

Aus irgendeinem Grund, den ich nur einmal laufen bekommen, wenn die Seite geladen wird, mir zwei Zufallszahlen zu geben, wie es sein sollte und vielleicht noch einmal, wenn ich die Seite mit F5 neu lade. Aber dann weigert es sich, irgendwelche Zufallszahlen zu produzieren, bis ein paar Minuten vergangen sind.

Ich fühle, dass mir etwas offensichtlich fehlt. Der Server wird von MissHosting.se gehostet und läuft php5.6. Der Kundendienst besteht darauf, dass es sich um ein Code-Problem handelt. Gern stelle ich Ihnen auf Anfrage weitere Informationen zur Verfügung.

Danke für die Hilfe!

+4

Rufen Sie die Seite wie das http: //sithu.net/testinggrounds/?a"> http://sithu.net/testinggrounds/?ab' und so weiter, es ist ein Seitencache bei der Arbeit. – JustOnUnderMillions

+2

Schauen Sie sich die Kopfzeilen von der Seite an: 'X-Cache: HIT X-Cache-Hits: 1 X-Lack: 5816388 5816386' – JustOnUnderMillions

+0

' echo {rand (1, 1000)}: ". $ R;' - Sie müssen es um '{}' wickeln, da Echo nicht weiß, ob es eine Funktion oder eine Zeichenkette ist. – KDOT

Antwort

0

Das Problem scheint von der Tatsache zu kommen, dass Ihr Server irgendeine Art von Cache verwendet. Um clientseitiges Caching (d. H. Browser-Cache) auszuschließen, habe ich die Seite mehrmals mit curl angefordert, was kein Caching durchführt. Es ist also ein Server-Cache.

Nun, wenn wir an den Header mit curl aussehen:

~$ curl http://sithu.net/testinggrounds/ -I 
HTTP/1.1 200 OK 
Date: Fri, 17 Feb 2017 16:09:36 GMT 
Vary: Accept-Encoding 
Content-Type: text/html; charset=UTF-8 
X-Varnish: 6817501 6109691 
Age: 9 
X-Cache: HIT 
X-Cache-Hits: 1 
Accept-Ranges: none 
Connection: keep-alive 

Die Header zeigen deutlich, dass der Server-Caching funktioniert und wir haben den Server-Cache-Hit (X-Cache: HIT und X-Cache-Hits: 1). Der nächste Schritt wäre also, herauszufinden, wie/wo Sie Ihren Server-Caching-Mechanismus ändern können.

Die X-Varnish Kopfzeile zeigt an, dass Ihr Server/Hoster die Varnish HTTP Cache verwendet, um das Caching durchzuführen.

+0

Danke! Ich werde das ausprobieren! Ich werde zurück zu dir. –

+0

JA! xVarnish war der Täter. Ich habe es ausgeschaltet, und jetzt funktioniert es so weit ich kann sagen! –

+0

Froh, dass es das Problem gelöst hat. :) Bitte vergessen Sie nicht, die Antwort upvote, wenn Es war hilfreich. – Striezel