我创建了一个独特的用户名生成器。问题是刷新页面后它没有保存在表单中。
有没有办法阻止这种情况?
这是登录生成代码:
<div>
<label for="username">Ваш логін</label>
<input type="text" name="username" value="' .
(strval(bin2hex(openssl_random_pseudo_bytes(1)))) . date("Y") .
(strval(bin2hex(openssl_random_pseudo_bytes(1)))) . date("d") .
(strval(bin2hex(openssl_random_pseudo_bytes(1)))) . date("m") .
(strval(bin2hex(openssl_random_pseudo_bytes(1)))) . '"
readonly="readonly">
</div>
答案 0 :(得分:0)
您正在页面中生成用户名但未存储它。
这是一个示例,我通过带有提交按钮的 POST 发送生成的用户名,然后使用 php 会话存储该用户的用户名:
<?php
session_start();
if(isset($_POST['username'])) {
$_SESSION['username'] = $_POST['username'];
}
if(isset($_SESSION['username'])) {
$value = $_SESSION['username'];
} else {
$value = (strval(bin2hex(openssl_random_pseudo_bytes(1)))) . date("Y") .
(strval(bin2hex(openssl_random_pseudo_bytes(1)))) . date("d") .
(strval(bin2hex(openssl_random_pseudo_bytes(1)))) . date("m") .
(strval(bin2hex(openssl_random_pseudo_bytes(1))));
}
?>
<form action="" method="post">
<label for="username">Ваш логін</label>
<input type="text" name="username" value="<?php echo $value; ?>"
readonly="readonly">
<input type="submit" value="Save username">
</form>
存储用户名后,我做了一个简单的 if 语句,如果存储了用户名,则使用该用户名,否则生成一个新用户名。