php登录系统 - 登录无效

时间:2018-03-15 18:54:01

标签: php mysql sql

我刚写了登录ststem代码,这似乎是checkLogin代码的问题。该寄存器工作正常,但当用户尝试登录时,它会在数据库中找到他(即使它出现在那里)。

代码:

<?php  
session_start();   
include('dbc.php');   

$username=$_POST['name'];    
$mypassword=$_POST['pwd'];    

$sql="SELECT pwd FROM users WHERE   
 name=?";  

$stmt = $conn->prepare($sql);  
$stmt->bind_param("s",$username);  
$stmt->execute();  


mysqli_stmt_bind_result($stmt, $password);  
mysqli_stmt_fetch($stmt);  

$savedpassword = $password;   

if(password_verify($mypassword, $savedpassword)){   
    $_SESSION['name']=$username;  
   // isset($_SESSION['url']) ? $location = $_SESSION['url'] :  
                              $location = 'main.php';  
    header("location:$location");   
}   
else {   
    header("location:login.php?fail=yes");   
} 


?>  

你可以回忆任何代码问题吗?

1 个答案:

答案 0 :(得分:1)

不幸的是我无法发表评论。但我的建议是避免使用mysqli,除非你必须使用它,而是使用PDO。试试这个。

您可以为语句执行分配变量,而不是使用mysqli绑定。

// create new client at /track-my-business/client/
                    final String key =FirebaseDatabase.getInstance().getReference().push().getKey();

                    // get user input and set it to result
                    // edit text
                    Client client = new Client(firstNameEditText.getText().toString(),
                            lastNameEditText.getText().toString());

                    Map<String, Object> clientValues = client.toMap();

                    Map<String, Object> childUpdates = new HashMap<>();

                    childUpdates.put(key, clientValues);
                    FirebaseDatabase.getInstance().getReference().updateChildren(childUpdates);

这样,您可以将$ result分配为包含查询中所有结果的数组。然后,您可以按名称调用每列。