2017-10-16 4 views
-3

私は次の例のようにパスワードを入力する必要があるログインページを持っています: ユーザ名:abcパスワード:123456789ログインのために入力時にパスワードから選択した文字列を取得する方法は?

パスワードは常に9桁です。今すぐログインユーザーのために パスワードから第1、第3および第8文字列を入力する必要があります。ユーザーが を呼び出すたびに、3つの文字列が異なるはずのページがリロードされます。今の場合のように 第1、第3、第8、第2、第9、第5、

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
<?php 
include 'conn.php'; 
if (isset($_POST['submit'])) 
{ 
    $name = $_POST['username']; 
    $pin = $_POST['pin']; 
    $pass = $_POST['pass']; 
    $sql = 'SELECT name,pass,pin from `emp` where `name` = "'.$name.'" AND pass = "'.$pass.'" AND pin = "'.$pin.'" '; 
    $sql = mysqli_query($conn,$sql); 
    $data = mysqli_fetch_assoc($sql); 
    if ($data) { 
     header('Location: home.php'); 
     echo 'success'; 
    } 
    else 
    { 
     echo 'Fail'; 
    } 
} 

?> 
<form action="" method="post"> 
    Username: 
    <input type="text" name="username" value=""> 
    Pin: 
    <input type="password" name="pin" value=""> 
    Password: 
    <input type="password" name="pass" placeholder='1st' value=""> 
    <input type="password" name="pass" placeholder='5th' value=""> 
    <input type="password" name="pass" placeholder='7th' value=""> 
    <button name="submit">Submit</button> 
</form> 


</body> 
</html> 

どのようにこれを達成することができます。

+0

あなたのコードで何が問題になっていますか?質問は何ですか? – Teemu

+1

ご質問を明確にしてください。何も分かりません。 –

+1

なぜ3つのパスワードを要求していますか? – hungrykoala

答えて

0

これはあなたに役立つでしょう。フィールドを定義するためにランダムなユニークな数字を使用し、レコードを識別するためにmysqlの関数SUBSTRを使用しました。

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
<?php 
include 'conn.php'; 
if (isset($_POST['submit'])) { 
    $name = $_POST['username']; 
    $pin = $_POST['pin']; 
    $pass1 = $_POST['pass1']; 
    $pass2 = $_POST['pass2']; 
    $pass3 = $_POST['pass3']; 
    $char1 = $_POST['char1']; 
    $char2 = $_POST['char2']; 
    $char3 = $_POST['char3']; 

    $sql = 'SELECT name,pass,pin from `emp` ' 
      . 'where `name` = "'.$name.'" ' 
      . 'AND SUBSTR(pass, '.$char1.', 1) = \''.$pass1.'\' ' 
      . 'AND SUBSTR(pass, '.$char2.', 1) = \''.$pass2.'\' ' 
      . 'AND SUBSTR(pass, '.$char3.', 1) = \''.$pass3.'\' ' 
      . 'AND pin = "'.$pin.'" '; 
    echo $sql; 


    $sql = mysqli_query($conn,$sql); 
    $data = mysqli_fetch_assoc($sql); 
    if ($data) { 
     header('Location: home.php'); 
     echo 'success'; 
    } 
    else 
    { 
     echo 'Fail'; 
    } 

} 

// generate unique, not equal numbers 
$char_pos = range(1, 9); 
shuffle($char_pos); 
$char_pos = array_slice($char_pos, 0, 3); 
sort($char_pos) 

?> 
<form action="" method="post"> 
    <input type="hidden" name="char1" value="<?php echo $char_pos[0]; ?>"> 
    <input type="hidden" name="char2" value="<?php echo $char_pos[1]; ?>"> 
    <input type="hidden" name="char3" value="<?php echo $char_pos[2]; ?>"> 
    Username: 
    <input type="text" name="username" value=""> 
    Pin: 
    <input type="password" name="pin" value=""> 
    Password: 
    <input type="password" name="pass1" placeholder='<?php echo $char_pos[0]; ?>st' value=""> 
    <input type="password" name="pass2" placeholder='<?php echo $char_pos[1]; ?>th' value=""> 
    <input type="password" name="pass3" placeholder='<?php echo $char_pos[2]; ?>th' value=""> 
    <button name="submit">Submit</button> 
</form> 


</body> 
</html> 
関連する問題