Как я могу генерировать случайную строку, используя php и только один раз в день? - PullRequest
0 голосов
/ 11 октября 2018

У меня есть код, который генерирует случайные строки, но я хочу генерировать случайные строки только один раз в день.

Это код, генерирующий случайную строку при каждой загрузке страницы.Как мне этого добиться?

function random_string($length) {
$key = '';
$keys = array_merge(range(0, 9), range('a', 'z'));

for ($i = 0; $i < $length; $i++) {
$key .= $keys[array_rand($keys)];
}

return $key;
}
$sehiradi = "diyarbakir";
$subdomainadi = "$sehiradi."."".random_string(5);

Ответы [ 3 ]

0 голосов
/ 12 октября 2018

Так как вы не хотите хранить эту информацию в базе данных и, возможно, не захотите использовать куки-файлы, поскольку они зависят от пользователя, здесь используется другой подход:

Использовать текущую дату (только день, месяци год) в качестве семени для вашего генератора случайных чисел.Это сделает его таким, что оно меняется каждый день и одинаково для всех пользователей без сохранения одного бита данных.

0 голосов
/ 12 октября 2018

Вы можете добиться того же результата, используя хеш-функцию с текущей датой.

$sehiradi.substr(sha1('someString'.date('Ymd')),0,5);

Это будет работать для вас, поскольку хеш всегда будет приносить один и тот же результат с одним и тем же вводом.Каждый день функция будет использовать другое входное значение, поскольку день меняется.

РЕДАКТИРОВАТЬ: Используя свои значения, вы можете иметь:

$sehiradi = "diyarbakir";
$subdomainadi = $sehiradi.substr(sha1('someString'.date('Ymd')),0,5);

Пожалуйста, замените 'someString' на некоторую клавишу, которую выиметь в виду.Смысл в том, чтобы кому-то было трудно узнать источник вашей «случайной» строки.

0 голосов
/ 12 октября 2018

Вы пытались просмотреть файлы cookie php и сохранить их в файле cookie, который имеет ttl в течение 1 дня?Я говорю это только потому, что вы упомянули, что не хотите хранить его в базе данных

...