刷新页面后保存登录

时间:2021-04-24 20:27:18

标签: php

我创建了一个独特的用户名生成器。问题是刷新页面后它没有保存在表单中。

有没有办法阻止这种情况?

这是登录生成代码:

<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>

1 个答案:

答案 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 语句,如果存储了用户名,则使用该用户名,否则生成一个新用户名。