Странное поведение mt_rand в PHPPhp

Кемеровские программисты php общаются здесь
Anonymous
Странное поведение mt_rand в PHP

Сообщение Anonymous »

Я использую следующий фрагмент кода: два разных компьютера

Код: Выделить всё

mt_srand($_GET['random_number']);

for ($i = 0; $i < 50; $i++) {
$random_number = mt_rand();

$predicted_token = $random_number;

echo "Predicted magic link token: " . $predicted_token . "
";
}

mt_srand($_GET['random_number']);

for ($i = 0; $i < 50; $i++) {
$random_number = mt_rand();

$predicted_token = $random_number;

echo "Predicted magic link token: " . $predicted_token . "
";
Приведенный выше код генерирует полностью идентичный список на обоих компьютерах, используя значение random_number как 1111.
Теперь на одном из компьютеров, если я остановлюсь мой Apache2 и запустите его снова (чтобы я мог сбросить весь процесс). У меня есть следующий код для отправки электронного письма для сброса пароля.

Код: Выделить всё

if (!isset($_SESSION['seed_set'])) {
mt_srand("1111");

$_SESSION['seed_set'] = "valid";

}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
...
...

try {
// Connect to SQLite database
$db = new PDO('sqlite:users.db');

if ($user) {
$random_number = mt_rand();
Проблема в том, что когда я использую этот подход для получения случайного числа, он совершенно другой. и не входит в список, который я создал выше. Единственное отличие, которое я здесь делаю, это то, что я заполняю только один раз, чтобы у меня был один идентичный список. В чем здесь проблема?

Подробнее здесь: https://stackoverflow.com/questions/790 ... and-in-php

Вернуться в «Php»