2017-02-17 3 views
0

я получил следующее index.php на a testsite:PHP рэнд работает только один раз

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

По какой-то причине я могу только заставить его работать сразу при загрузке страницы, что дает мне два случайных числа, как это должно , и, возможно, еще раз, если я перезагружу страницу с помощью F5. Но тогда он отказывается производить какие-либо случайные числа, пока не пройдет пара минут.

Я чувствую, что мне не хватает чего-то очевидного. Сервер размещается в MissHosting.se и запускает php5.6. Служба поддержки клиентов настаивает на том, что это проблема с кодом. Я буду рад предоставить любую дополнительную информацию по запросу.

Спасибо за помощь!

+4

Вызывайте сторону, подобную той, что 'http: //sithu.net/testinggrounds/? A'' http: //sithu.net/testinggrounds/? Ab' и т. Д., На работе работает кеш страницы. – JustOnUnderMillions

+2

Посмотрите на заголовки со страницы: 'X-Cache: HIT X-Cache-Hits: 1 X-Larn: 5816388 5816386' – JustOnUnderMillions

+0

' echo {rand (1, 1000)}: ". $ R;' - Вам нужно обернуть его вокруг '{}', так как echo не знает, есть ли его функция или строка. – KDOT

ответ

0

Проблема, похоже, связана с тем, что на вашем сервере используется какой-то кеш. Чтобы исключить кеширование на стороне клиента (т. Е. Кеш браузера), я несколько раз запрашивал страницу с завитком, который не выполняет кэширование. Таким образом, это кеш сервера.

Теперь, если мы посмотрим на заголовки с завитком:

~$ 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 

Заголовки ясно показывают, что сервер делает кэширование, и мы попали в кэш сервера (X-Cache: HIT и X-Cache-Hits: 1). Итак, следующим шагом будет выяснить, как/где вы можете изменить механизм кэширования сервера.

Заголовок X-Varnish указывает, что ваш сервер/хост использует Varnish HTTP Cache для выполнения кэширования.

+0

Спасибо, я попробую это! Я вернусь к вам. –

+0

ДА! xVarnish был виновником. Я отключил его, и теперь он работает, насколько я могу судить! –

+0

Рад, что проблема решена. :) Пожалуйста, не забудьте переложить ответ, если это было полезно. – Striezel

Смежные вопросы