drtwqc3744 2018-12-05 03:41
浏览 76
已采纳

如何验证用户密码并将用户数据作为json字符串回显?

I'm working on an android app, a java app, and i called for a response from a php file uploaded on my host, and my response is ' []', i checked the php code and i dont know what the problem is, i saw some posts it's an encode problem about which i dont know nothing, can you help me please , here's my php code.

<?php 

require_once '../includes/DbConnect.php';

$response =array(); 

if($_POST['username'] && $_POST['password']){
    $username = $_POST['username'];
    $password = $_POST['password'];

    $sql = "SELECT * FROM users WHERE username=?";
    $stmt = mysqli_stmt_init($con);
    mysqli_stmt_bind_param($stmt,"s",$username);
    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt);
    if($user = mysqli_fetch_assoc($result))
    {
        $passwordCheck = password_verify($password,$user['password']);
        if($passwordCheck == false){
            $response['error'] = true; 
            $response['message'] = "Invalid username or password";  
        }
        else if($passwordCheck == true) {

            $response['error'] = false; 
            $response['id'] = $user['idUsers'];
            $response['email'] = $user['email'];
            $response['username'] = $user['username'];
            $response['country']= $user['country'];
             $response['firstname']= $user['firstname'];
              $response['lastname']= $user['lastname'];
               $response['points']= $user['points'];
        }
    }
}



echo json_encode($response);

?>
  • 写回答

1条回答 默认 最新

  • drq61040 2018-12-05 04:21
    关注

    My recommended adjustments:

    <?php     
    require_once '../includes/DbConnect.php';  // <-- change from procedural to obj-oriented
    $response['error'] = true;                 // default value
    if (!isset($_POST['username'], $_POST['password'])) { 
        $response['message'] = "Invalid username or password";
    } elseif (!$con) {
        $response['message'] = "Database Connection Error: "; // for private debugging only: . $con->connect_error;
    } elseif (!$stmt = $con->prepare("SELECT * FROM users WHERE username = ?")) {
        $response['message'] = "Prepare Syntax Error";  // for private debugging only: . $con->error
    } elseif (!$stmt->bind_param("s", $_POST['username']) || !$stmt->execute() || !$result = $stmt->get_result()) {
        $response['message'] = "Statement Error";  // for private debugging only: . $stmt->error
    } elseif (!$user = $result->fetch_assoc() || !password_verify($_POST['password'], $user['password'])) {
        $response['message'] = "Invalid username or password";  
    } else {
        $response['error'] = false; 
        $response['id'] = $user['idUsers'];
        $response['email'] = $user['email'];
        $response['username'] = $user['username'];
        $response['country'] = $user['country'];
        $response['firstname'] = $user['firstname'];
        $response['lastname'] = $user['lastname'];
        $response['points'] = $user['points'];
    }
    echo json_encode($response);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python