2017-10-16 27 views
-3

我有一个登录页面,我必须输入密码,如下面的示例: 用户名:abc密码:123456789如何从输入中的密码中获取选定的字符串以便登录?

密码将始终为9位数字。现在登录用户必须从 输入来自密码的第1,第3和第8个字符串。并且每当用户 将重新加载3个字符串应该不同的页面时。就像现在它的 第一次,第三次,第八次在装载一段时间之后,它将不同于第二,第九,第五。

<!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

你为什么要求输入三个密码? – 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> 
相关问题