私は現在、ページの管理者が注文に応じて特定の量の新規ユーザーを生成できるWebページを作成しています。今では、新しいユーザー、1-manyを追加する機能が働いています。新しいメンバーを作成するときには、独自の「ランダム」なライセンスはありません。同じgenerateの下で作成されたすべてのユーザーは同じです。ループごとに一意のLicenseIDとパスワードを作成
admin.php(形と機能を持つコード)
<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>
<meta charset="UTF-8">
<title>Generera licenser</title>
<meta http-equiv="content-type" content="text/html" charset="ISO-8859-1" />
</head>
<?php
include('template.php');
if(isset($_POST['email'])) //inkluderar template och hämtar inlogg//
{
$characters = "abcdefghijklmnopqrstuvwxyz";
function genRandomString($length = 10) {
$characters ='abcdefghijklmnopqrstuvwxyz';
$string = '';
for ($p = 0; $p < $length; $p++) {
$string .= $characters[mt_rand(0, strlen($characters))]; //funktion för slumpmässig kod//
}
return $string;
}
$courseID = '1';
$antal = $_POST['antal'];
$role = '3'; //Detta gör att användaren som skapas får rollvärdet 3//*
$password = genRandomString();//genererar slumpmässig kod för licens och lösenord//
$licenseID = genRandomString();
mysql_query('SET character_set_results=utf8');
mysql_query('SET names=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_connection=utf8'); //dessa löser åäö inmatningar till databasen.(Kan vara redundanta).
mysql_query('SET character_set_results=utf8');
mysql_query('SET collation_connection=utf8_swedish_ci');
for($tmp = 1; $tmp <= $antal; $tmp++){
$query = <<<END
INSERT INTO user(email, company, courseID, password, licenseID, role)
VALUES('{$_POST['email']}','{$_POST['company']}', '$courseID', '$password','$licenseID', '$role');
END;
//För in data från formuläret till databasen via poster.//
$mysqli->query($query) or die(mysql_error());
}
header('Location:Bekraftat.php'); //När genereringen är genomförd skickas man till en bekräftelse sida.
}
$content = <<<END
<div class="row">
<div class="container">
<div class="jumbotronadmin">
<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="email" placeholder="Email" maxlength="40" pattern="[A-Za-z0-9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,3}$" title="Ej en legitim emailadress" required>
</div>
<div class="form-group">
<input type="text" class="form-control" aria-describedby="basic-addon1" name="company" placeholder="Företag" maxlength="40" patter="[A-Za-z0-9]+$" required>
</div>
<div class="form-group">
<input type="text" class="form-control" aria-describedby="basic-addon1" name="antal" placeholder="Antal licenser" maxlength="3" pattern="[0-9]+$" title="OBS! Endast siffror" required>
</div>
<div class="form-group">
<div class="checkbox">
<label>
<input type="checkbox" aria-describedby="basic-addon1" name="courseID"><p>Webbutbildningen i brandskyddskunskap</p>
</label>
</div>
</div>
<br>
<input type="submit" class="btn btn-default" value="Generera">
</form>
</div><!-- Stänger jumbotronen -->
</div><!-- Stänger jumbotronadmin -->
</div><!-- Stänger container -->
</div><!-- Stänger row -->
END;
//innehållet på admin.php med formulär//
echo $navigation_admin;
echo $content;
echo $header;
// hämtar navigationsmenyn för admin, innehåll och logotyper.//
?>
だから、私の質問は、あなたはユニークなライセンスおよびパスワードを作成するループを作るためにどのように任意のアイデアを持っていますか?
は、ループ内のランダムな文字列( '$のpassword'と' $ licenseID')を再生してみてください。ループの外側で一度だけ生成します。 –
@ SverriM.Olsenと言うと、内部ループを生成し、もっとユニークなものとして、 'md5(time());'で生成しようとします。 – urfusion
@urfusionこれは毎秒新しい値を生成するだけです。 1秒に何回も呼び出された場合、同じ値になります。それは決してランダムではありません。任意のUNIXのタイムスタンプについては、それらをMD5で保存するだけで、ハッシュを取得できます。 –