2017-10-29 3 views
1
<form action="" method="post" id="customer-register"> 
<table align="center"> 
<div id="container"> 
    <h1>Welcome to Registration Page!</h1> 

     <td>Full Name:</td> 
     <td><input type="text" name="fname" placeholder="enter your name"> 
</td> 
    </tr> 

    <tr> 
     <td>Username:</td> 
     <td><input type="text" name="uname" placeholder="enter your 
username"></td> 
    </tr> 

    <tr> 
     <td>Email:</td> 
     <td><input type="text" name="email" placeholder="enter your email"> 
</td> 
    </tr> 

    <tr> 
     <td>Select your Password:</td> 
     <td><input type="color" name="color1" value="#ff0000"><input 
type="color" name="color2" value="#ff0000"><input type="color" name="color3" 
value="#ff0000"><input type="color" name="color4" value="#ff0000"><input 
type="color" name="color5" value="#ff0000"></td> 
    </tr> 
     <td><input type="submit" name="submit" value="Register"></td> 
</tr>  
</body> 
</html> 

これは私のregister.phpプロジェクトのコードです。あなたが見ることができるように、私はテキストパスワードを使用していない代わりに、ユーザーが登録する5種類の色を選ぶことを許可しています。私の質問は、ユーザーが他のユーザーと同じ色のパターンを入力しないようにするためのソースコードです。データベースに入力して保存しましたか?ユーザがphpで別の色のパターンを選択する方法

if(isset($_POST['submit'])){ 
    $fname=$_POST['fname']; 
    $uname=$_POST['uname']; 
    $email=$_POST['email']; 
    $pass1=$_POST['color1']; 
    $pass2=$_POST['color2']; 
    $pass3=$_POST['color3']; 
    $pass4=$_POST['color4']; 
    $pass5=$_POST['color5']; 
    $register_query = "INSERT INTO `cust`(`fname`, `uname`, `email`, 
`color1`, `color2`, `color3`, `color4`, `colo5`) VALUES 
('$fname','$uname','$email','$pass1', '$pass2', '$pass3', '$pass4', 
'$pass5')"; 
    try{ 
     $register_result = mysqli_query($conn,$register_query); 
     if($register_result){ 
      if(mysqli_affected_rows($conn)>0){ 
       header("location: success.html"); 
      }else{ 
       echo("error in registeration"); 
      } 


     } 

    }catch(Exception $ex){ 
     echo("error" .$ex->getMessage()); 
    } 
}else { 

} 
    this is my code for handling the register. 
+0

色がユーザーテーブルに既に存在するかどうかを確認しないでください。 –

+0

@FastSnail色はすでにユーザーテーブルにあり、ユーザーは登録することができます。しかし、問題は、以前のユーザーと同じ色を入力している他のユーザーがそれを行った場合でも、ユーザーのテーブルに保存することです。登録時にすべてのユーザーが同じ色のパターンを持っていないことを確認しますか?それを検証する?? –

答えて

0

INSERTクエリの前にクエリを実行する必要があります。

$check_query = "SELECT COUNT(*) AS `total` FROM `cust` WHERE `color1`='$pass1' AND `color2`='$pass2' AND `color3`='$pass3' AND `color4`='$pass4' AND `color5`='$pass5'"; 
if ($check_res = mysqli_query($conn, $check_query)) { 
    $row = mysql_fetch_assoc($check_res); 
    if ($row['total'] > 0) { 
     // this means you shouldn't do the insert as a customer exists with this exact sequence of colours. 
    } 
    else { 
     // do your insert here. 
    } 
} 

totalの値が0>であれば、あなたはそれらの正確な色の組み合わせを顧客が存在しているはず。これは特定の色順を前提としています。

関連する問題