我目前正在开展一个用户登录教育门户的项目。用户应该使用随机生成的许可证和密码登录。
为什么他们需要随机?
用户是工作场所的一部分,负责安全的人员决定雇用的每个人都需要参加“工作场所的火灾危险”教育。这是为了在工作空间中保持所需的安全水平。
安全负责人向二十名员工下订单。教育门户的管理员确认订单并生成20个许可证和密码。密钥在“user”下生成并存储在数据库中,然后发送给订购它们的公司。一旦员工收到登录信息,他们就可以将他们的名字附在许可证上,以证明他们已经通过了教育。
无论如何,我在创建和存储密钥时遇到了麻烦。这是我目前的代码。
{
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;
?>
答案 0 :(得分:0)
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)
答案 1 :(得分:0)
函数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')";