2016-04-13 2 views
0

У меня есть регистрационная форма (контролируемая администратором), которая генерирует нового пользователя. В форме есть один <input>, называемый «сумма».«Регистрационная форма», которая создает несколько пользователей

В настоящее время возможно создать нового пользователя, хотя мне нужна функция, которая генерирует несколько пользователей, в зависимости от того, какое число «количество» заполнено. Знаете ли вы какую-либо аналогичную функцию, которую я мог бы использовать для этого?

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> 
    <title>Generera Licenser</title> 
</head> 

<?php 
include('template.php'); 
if(isset($_POST['email'])) 

{ 
function genRandomString($length = 10) { 
    $characters = "abcdefghijklmnopqrstuvwxyz"; 
    $string = ''; 
    for ($p = 0; $p < $length; $p++) { 
     $string .= $characters[mt_rand(0, strlen($characters))]; 
    } 

    return $string; 
} 
function antal(){ 

} 
    $antal = antal(); 
    $role = '3'; //Detta gör att användaren som skapas får rollvärdet 3//* 
    $password= genRandomString(); 
    $licenseID= genRandomString(); 

    $query = <<<END 

    INSERT INTO user(email, company, courseID, antal, password, licenseID, role) 

    VALUES('{$_POST['email']}','{$_POST['company']}','{$_POST['courseID']}', '$antal', '$password','$licenseID', '$role'); 
END; 
    $mysqli->query($query); 


echo 'Nya licenser har lagts till i databasen'; 

} 
$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" action="sendback.php" method="post"> 
       <div class="form-group"> 
       <input type="text" class="form-control" aria-describedby="basic-addon1" name="company" placeholder="Företag" maxlength="40"> 
       </div> 
       <div class="form-group"> 
       <input type="text" class="form-control" aria-describedby="basic-addon1" name="email" placeholder="Email" maxlength="40"> 
       </div> 
       <div class="form-group"> 
       <input type="text" class="form-control" aria-describedby="basic-addon1" name="antal" placeholder="Antal licenser" maxlength="3"> 
       </div> 
       <div class="form-group"> 
       <div class="checkbox"> 
        <label> 
         <input type="checkbox" aria-describedby="basic-addon1" name="courseID">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="Generera"> 
       </form> 
      </div><!-- Stänger jumbotronen --> 
      </div><!-- Stänger jumbotronadmin --> 
     </div><!-- Stänger container --> 
     </div><!-- Stänger row --> 
END; 
    echo $navigation_admin; 
    echo $content; 
    echo $header; 
    ?> 
+1

Использовать петлю для петли? –

+0

Я думал об этом, но лучше не контур while? –

+0

[Ваш скрипт подвержен риску инъекций SQL.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) Узнайте о [подготовленном] (http: //en.wikipedia.org/wiki/Prepared_statement) для [MySQLi] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php). Даже [избегая строки] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) небезопасно! –

ответ

0

Вы можете цикл по запросу, как показано ниже:

Предположим, получение Граф $amount = $_POST['amount'];

for($i=0; i<$amount; $i++){ 
    $query = <<<END 

    INSERT INTO user(email, company, courseID, antal, password, licenseID, role) 

    VALUES('{$_POST['email']}','{$_POST['company']}','{$_POST['courseID']}', '$antal', '$password','$licenseID', '$role'); 
END; 
    $mysqli->query($query); 
} 

Your script is at risk for SQL Injection Attacks. Подробнее о prepared statements для MySQLi. Даже экранирование строки небезопасно!

+0

Не используйте '$ _REQUEST' и пробел после суммы. – Phiter

+1

Также комментируйте SQL Injections, SO, которым нравится это, когда вы говорите о SQL-инъекциях. – Phiter

Смежные вопросы