В настоящее время я создаю веб-страницу, где администратор на странице может генерировать определенное количество новых пользователей (в зависимости от заказа). В настоящее время работает функция добавления новых пользователей - 1-много. Хотя, когда я создаю новых членов, у них нет уникальных «случайных» -лицензий. Все пользователи, созданные под одним и тем же генератором, имеют одинаковые имена.Создайте уникальные идентификаторы и пароль для каждого цикла
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 Это будет генерировать только новое значение каждую секунду. Если вы вызываете несколько раз в секунду, вы получите то же значение. Это также не случайно. Для любой заданной отметки времени UNIX вы можете просто MD5 их, и вы получите хэш. –