Случайный выбор

687
.
# dilp (31.05.2017 / 01:39)
Меня смущает применение сессии, её ведь можно как-то подделать и повлиять на выборку?
Нет, недостаток только в том, что если закрыть браузер, то данные в сессии обнулятся. Поэтому лучше заменить сессии на базу данных или текстовый файл (если описанная причина не желательна).
.
Почему нельзя заменить на глобальную переменную?
.
# dilp (31.05.2017 / 01:52)
Почему нельзя заменить на глобальную переменную?
Чем глобальная переменная отличается от локальной переменной? -- Допустим, записал ты что-то в $GLOBALS. Запустил скрипт, и в $GLOBALS снова произошла инициализация. Не? А тебе надо, чтобы значение хранилось между запросами, а не инициализировалось при каждом старте скрипта.
.
Да,точно ))
А зачем вообще тут сохранение ?
.
# dilp (31.05.2017 / 01:58)
Да,точно ))
А зачем вообще тут сохранение ?
Ну а циферки в массиве где держать? Они же уменьшаться должны при каждом обращении к скрипту. Вот и выходит, что инициализируем мы массив один раз :

$r = [
    'alfa' => 3,
    'beta' => 9,
    'gamma' => 0,
    'delta' => 6
];

// Сохранили массив
$_SESSION['freak'] = $r;
А все последующие обращения к скрипту мы работаем уже с сессией (рандомно уменьшаем значения массива, пока он не станет пуст -- после снова инициализируем массив и сохраняем в сессию)
.
Получается пока все шарики из мешка не вытащить , новых шариков в мешке не появится. Хм,а у меня динамичный набор величин, а я думаю - почему как-то не так работает.
.
# dilp (31.05.2017 / 02:17)
Получается пока все шарики из мешка не вытащить , новых шариков в мешке не появится. Хм,а у меня динамичный набор величин, а я думаю - почему как-то не так работает.
Если исходный массив у тебя подвержен изменениям, тогда можно добавить условие с проверкой на соответствие массивов - если массивы не равны, перезаписывать сессию.
.
# dilp (31.05.2017 / 02:17)
Хм,а у меня динамичный набор величин...
Вот вариант для динамических массивов:
* (+/-)
Всего: 38