通过一个操作存储的唯一随机密码和许可证编号


Unique random password and license number stored with one action

我目前正在进行一个项目,用户登录门户进行教育。用户应该使用随机生成的许可证和密码登录。

为什么它们需要是随机的?

用户是工作场所的一部分,负责安全的人决定,雇佣的每个人都需要参加"工作场所火灾隐患"教育。这是为了在工作空间中保持所需的安全级别。

安全负责人为这二十名雇员下了命令。教育门户网站的管理员确认订单并生成20个许可证和密码。密钥生成并存储在"用户"下的数据库中,然后发送给订购它们的公司。一旦员工收到登录信息,他们就可以将自己的姓名附加到许可证上,以证明他们已经通过了教育。

无论如何,我在mysql中创建和存储密钥时遇到了问题。这是我当前的代码。

{
function genRandomString($length = 10) {
    $characters = ‘0123456789abcdefghijklmnopqrstuvwxyz’;
    $string = ”;
    for ($p = 0; $p < $length; $p++) {
        $string .= $characters[mt_rand(0, strlen($characters))];
    }
    return $string;
INSERT INTO user(email, company, courseID, no_licenses, password, licenseid)
    VALUES('{$_POST['email']}','{$_POST['company']}','{$_POST['courseID']}', '{$_POST['antal']}', '{genRandomString, . random_string(10)}',{'genRandomString, . random_string(10)'})

现在我正在使用它来测试genRandomString。随机字符串显示为"genRandomString",而不是一个随机字符串。有人知道为什么这个功能不起作用吗?

这是我在这里的第一个问题。如果我把它格式化错了,我很抱歉。

提前谢谢。


我尝试了一些答案的组合,我很感激。虽然没有插入数据,但它现在似乎正在生成一个随机字符串。我得到了几个未定义的变量错误。我不确定出了什么问题。

  Notice: Use of undefined constant ‘0123456789abcdefghijklmnopqrstuvwxyz’ - assumed '‘0123456789abcdefghijklmnopqrstuvwxyz’' in C:'xampp'htdocs'Webbprojekt'admin.php on line 15
”gim�ts2ymc
Notice: Undefined variable: pass in C:'xampp'htdocs'Webbprojekt'admin.php on line 28
Notice: Undefined variable: license in C:'xampp'htdocs'Webbprojekt'admin.php on line 29
Notice: Undefined variable: sql in C:'xampp'htdocs'Webbprojekt'admin.php on line 31
Notice: Undefined variable: pass in C:'xampp'htdocs'Webbprojekt'admin.php on line 32
Notice: Undefined variable: license in C:'xampp'htdocs'Webbprojekt'admin.php on line 34
Error, insert query failed

这是整个代码。

<head>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <title>Generera Licenser</title>
</head>
<?php
include('template.php');
if(isset($_POST['email']))
{
function genRandomString($length = 10) {
    $characters = ‘0123456789abcdefghijklmnopqrstuvwxyz’;
    $string = '”';
    for ($p = 0; $p < $length; $p++) {
        $string .= $characters[mt_rand(0, strlen($characters))];
    }
    return $string;
}
echo genRandomString();
    $query = <<<END
     $pass = genRandomString();
     $license = genRandomString(); 
     $sql = "INSERT INTO
 user(email, company, courseID, antal, password, licenseid) 
 VALUES('{$_POST['email']}','{$_POST['company']}','{$_POST['courseID']}',  
        '{$_POST['antal']}', '$pass','$license')";

END;
    $mysqli->query($query) or die ('Error, insert query failed');
echo 'Nya licenser har lagts till i databasen';
}
 $content = <<<END
 <div class="row">
         <div class="container">
            <div class="jumbotron">
          <div class="container">
  <h2>Generera Licenser</h2>

            <form action="admin.php" method="post">
              <div class="form-group">
              <input type="text" class="form-control" aria-describedby="basic-addon1" name="company" placeholder="Företag">
              </div>
              <div class="form-group">
              <input type="text" class="form-control" aria-describedby="basic-addon1" name="email" placeholder="Email">
              </div>
              <div class="form-group">
              <input type="text" class="form-control" aria-describedby="basic-addon1" name="antal" placeholder="Antal licenser">
              </div>
              <div class="form-group">
                <div class="checkbox">
                    <label>
                        <input type="checkbox" aria-describedby="basic-addon1" name="courseID">Licenser till Webbutbildningen i Allmän brandskyddskunskap
                    </label>
                </div>
                 <div class="checkbox">
                    <label>
                        <input type="checkbox" aria-describedby="basic-addon1" name="role">Skapa en ny administrativ användare
                    </label>
                </div>
                </div>
              <input type="submit" class="btn btn-default" value="Beställ">
              </form>
            </div><!-- Stänger jumbotronen --> 
         </div><!-- Stänger container --> 
      </div><!-- Stänger row --> 
END;
  echo $navigation;
  echo $content;
  echo $header;
  ?>

函数genRandomString似乎还可以。但在创建sql期间操作字符串的方式对我来说似乎很奇怪。

这个怎么样:

$pass = genRandomString();
$license = genRandomString(); 
$sql = "INSERT INTO
 user(email, company, courseID, no_licenses, password,    licenseid) 
 VALUES('{$_POST['email']}','{$_POST['company']}','{$_POST['courseID']}',  
        '{$_POST['antal']}', '$pass','$license')";
function genRandomString($length = 10) {
   $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
   $string = "";
   for ($p = 0; $p < $length; $p++) {
      $string .= $characters[mt_rand(0, strlen($characters))];
   }
  return $string; 
}
echo genRandomString();

这是你的功能,检查一下。

如果您在将其插入数据库时遇到问题。然后我想创建变量,然后在查询中使用这些变量,如下所示。

$email= //get your email
$company= //get your company
$courseId= //get your courseId
$company= //get your no_licenses
$password= //get your password
$licenseid= //get your licenseid
INSERT INTO user(email, company, courseID, no_licenses, password, licenseid)
values ($email,$company,$courseId,$no_licenses,$password,$licenseid)