Генерация без кнопки
Здравствуй, подскажите, этот код генерирует пароли при нажатии на кнопку, при обновлении страницы пароли остаются те же, подскажите как сделать так, что бы при обновлении пароли появлялись новые, спасибо
ob_start();
session_start();
$lines = 6; // Количество строк с паролями
$max = 100; // Максимально допустимая длина пароля
$min = 6; // Минимально допустимая длина пароля
if (! empty($_SESSION['err'])) {
$view = $_SESSION['err'];
$_SESSION['err'] = '';
$_SESSION['pass'] = [];
$passwords = [];
} else {
$passwords = isset($_SESSION['pass']) ? $_SESSION['pass'] : [];
$view = '';
}
$headerLocation = function() {
header('Location: ' . $_SERVER['REQUEST_URI']);
exit;
};
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$_SESSION['post'] = $_POST;
extract($_SESSION['post']);
$numbs = ! empty($numbers) ? range(0, 9) : [];
$upper = ! empty($upper_case) ? range('A', 'Z') : [];
$lower = ! empty($lower_case) ? range('a', 'z') : [];
$chars = ! empty($special_chars) ? ['%', '*', ')', '?', '@', '#', '$', '~'] : [];
$len = ! empty($length) ? (int)abs($length) : $min;
if ($len < $min || $len > $max) {
$msg = '<p id="err"><b>Длина пароля установлена не корректно!</b></p>';
$_SESSION['err'] = $msg;
$headerLocation();
}
$args = array_merge($numbs, $upper, $lower, $chars);
$pass = [];
if (! empty($args)) {
for ($i = 0, $l = $len - count($args); $i < $l; $i++) {
$args[] = $args[$i];
}
for ($i = 0; $i < $lines; $i++) {
shuffle($args);
$pass[] = join(array_slice($args, 0, $len));
}
$_SESSION['pass'] = $pass;
} else {
$msg = '<p id="err"><b>Выберите символы для генерации!</b></p>';
$_SESSION['err'] = $msg;
}
$headerLocation();
}
empty($passwords) ?: extract($_SESSION['post']);
ob_end_flush();
?><!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Онлайн генератор паролей</title>
<style>
body {
background-color:#D5D4D2;
width:100%;
}
div#block {
width:750px;
height:950px;
margin:2% auto;
padding:2% 20px 3%;
box-shadow:0 0 20px grey;
background:#F0EEE9;
position:relative;
}
div#border {
padding:25px 30px 35px 45px;
}
ul {
word-wrap:break-word;
}
#center {
text-align:center;
}
#err {
background-color:#CEDEFF;
border:1px dotted #F4AD42;
border-radius:50px 50px 50px 0;
text-align:center;
font-size:23px;
padding:15px;
position:absolute;
left:25%;
top:3%;
}
</style>
</head>
<body>
<div id="block">
<div id="border">
<?= $view ?>
<h2 id="center">Генератор паролей</h2>
<p><b>Хотите сгененрировать пароль? Просто заполните форму ниже и нажмите кнопку "Создать пароль".</b></p>
<form method="post">
<fieldset>
<legend>Настройки генератора</legend>
<p>
<input type="checkbox" name="numbers" value="1" <?= isset($numbers) ? 'checked' : '' ?>> Цифры<br>
<input type="checkbox" name="upper_case" value="1" <?= isset($upper_case) ? 'checked' : '' ?>> Прописные буквы<br>
<input type="checkbox" name="lower_case" value="1" <?= isset($lower_case) ? 'checked' : '' ?>> Строчные буквы<br>
<input type="checkbox" name="special_chars" value="1" <?= isset($special_chars) ? 'checked' : '' ?>> Спец.символы %, *, ), ?, @, #, $, ~<br>
Длина пароля <input type="number" min="2" max="100" size="5" name="length" value="<?= isset($length) ? $length : $min ?>" pattern="\d{1,3}"> символов
</p>
</fieldset>
<p><input type="submit" value="Создать пароль"></p>
</form>
<?php if (! empty($passwords)) : ?>
<p><b>Ваши сгенерированные пароли:</b></p>
<?php foreach ($passwords as $password) : ?>
<?= $password ?>
<?php endforeach ?>
<br>
<?
?>
<p><b>Скопируйте сгенерированный пароль и добавьте сайт в закладки!</b></p>
<?php endif ?>
</div>
</div>
</body>
</html>```