Странное поведение 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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