Добрый день, подскажите плиз, есть массив из которого мне нужно выбрать случайное значение
$managers = array(
'Kirill',
'Slava',
);
$key = array_rand($managers); // по идее должно быть значение случайное
Но проблема в том, что значение меняется если обновить страницу, а если просто открывать новую вкладку с сайтом, то значение остаётся одно и тоже. А нужно что-бы менялось. В чем может быть косяк, как правильно сделать?
меняется если обновить страницу, а если просто открывать новую вкладку с сайтом
В чём разница между этими двумя действиями?
У вас кеш какой-то срабатывает, судя по описанию, к php эта проблема не имеет никакого отношения. Php не знает "обновили" вы страницу или "просто открыли новую вкладку". Он просто всегда генерирует случайное* значение.
Если у вас в массиве мало значений, то вероятность получения одного и того же подряд относительно большая.
Проблема в том что клиенты при заходе на сайт видят один и тот же номер телефона, а нужно что-бы телефоны менялись...вот например сайт https://polyarnik.com/vagon-doma/, справа вверху номер и у всех как правило показывается номер где в конце цифры 72, а второй номер клиентам не попападается...только если обновиться страницу
Мне сразу при первом захоже попался номер 8 [ 3952 ] 74-53-24.
При обновлении номер остался таким же. При следующем обновлении сгенерировался 8 [ 3952 ] 95-89-72.
Без полного кода мы вам ничем помочь не можем - может, там куки какие-то или кеш или ещё что.
Вообще, это как раз ожидаемое поведение с точки зрения клиента - почему у него внезапно должен измениться номер на сайте? И, скорее всего, под это дело написан какой-то код, который "прикрепляет" номер. Почему он "открепляется" при обновлении страницы у меня гиптоез нет, правда.
Алексей Уколов, Номер меняется, для того что-бы распределять нагрузку между 2-мя менеджерами, сейчас все заявки идут к одному менеджеру, в зависимости от переменной из массива подставляются номер телефона и презентация. Возможно сервер кеширует, как вы говорите, это кеширование можно как-то побороть?
Сергей, если вам нужно постепенно кидать нагрузку двоим менеджерам судя из комментариев сделайте не рандомную функцию, а последовательную типо я хз как это написать но суть такова. Просто определить кто получил первый номер и судя из этого показать 2 посетителю 2-й номер и так по кругу как-бы "циклом", не знаю возможно ли такое. НО у я чекнул сайт мне выбило 24, далее я подождал минут 5 и показало 72.
Спасибо, мб так и сделаю, в PHP не силён, но думаю можно например писать в файл чей номер показался последним и исходя из этого показывать другой номер
Как-то это подозрительно. Массив же у вас содержит более двух значений? Сколько раз открывали новую вкладку и видели один и тот же элемент? Элементы в массиве не повторяются?
В массиве всего 2 значения, открывал новую вкладку раз 20 и в режиме инкогнито и в другом браузере...
Справа вверху должен менять номер телефона https://polyarnik.com/vagon-doma/ но он меняется только если обновлять страницу...(