2016-04-13 12 views
0

私は新しいユーザーを生成する登録フォーム(管理者が管理)を持っています。フォームには、「金額」と呼ばれる1つの<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

forループを使用しますか? –

+0

私はそれについて考えていましたが、whileループは良くありませんか? –

+0

[あなたのスクリプトはSQLインジェクション攻撃の危険にさらされています。](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) //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を取得したとします。 MySQLiについてprepared statementsについて学んでください。文字列をエスケープすることは安全ではありません!

+0

'$ _REQUEST'を使わず、金額の後ろにスペースがあります。 – Phiter

+1

また、SQLインジェクションについてのコメントを作成します.SOインジェクションは、SQLインジェクションについて語るときに好きです。 – Phiter

関連する問題