首页 > 解决方案 > "error":true,"message":"required parameters are not available" while check api call using postman

问题描述

我正在学习如何使用 volley 将 android 应用程序与 php 管理面板连接起来,为此我使用了Javatpoint的教程,但是当他们告诉我在Postman web中创建和检查 apicall 时,我制作了两个文件,我收到了这个错误:

"error":true,"message":"所需参数不可用"

我也附上了截图邮递员截图

这是我要从中获取数据的表的结构。

截图5

谁能帮我解决这个错误,我真的不知道如何解决它。

<?php   
  require_once 'connection.php';  
  $response = array();  
  if(isset($_GET['apicall'])){  
  switch($_GET['apicall']){  
  case 'signup':  
    if(isTheseParametersAvailable(array('username','email','password',))){  
    $username = $_POST['username'];   
    $email = $_POST['email'];   
    $password = md5($_POST['password']);  
   
    $stmt = $conn->prepare("SELECT user_id FROM ci_users WHERE username = ? OR email = ?");  
    $stmt->bind_param("ss", $username, $email);  
    $stmt->execute();  
    $stmt->store_result();  
   
    if($stmt->num_rows > 0){  
        $response['error'] = true;  
        $response['message'] = 'User already registered';  
        $stmt->close();  
    }  
    else{  
        $stmt = $conn->prepare("INSERT INTO ci_users (username, email, password,) VALUES (?, ?, ?, ?)");  
        $stmt->bind_param("ssss", $username, $email, $password);  
   
        if($stmt->execute()){  
            $stmt = $conn->prepare("SELECT user_id,id, username, email, FROM users WHERE username = ?");   
            $stmt->bind_param("s",$username);  
            $stmt->execute();  
            $stmt->bind_result($user_id, $id, $username, $email);  
            $stmt->fetch();  
   
            $user = array(  
            'id'=>$id,   
            'username'=>$username,   
            'email'=>$email,  
          
            );  
   
            $stmt->close();  
   
            $response['error'] = false;   
            $response['message'] = 'User registered successfully';   
            $response['user'] = $user;   
        }  
    }  
   
}  
else{  
    $response['error'] = true;   
    $response['message'] = 'required parameters are not available';   
}  
break;   
case 'login':  
  if(isTheseParametersAvailable(array('username', 'password'))){  
    $username = $_POST['username'];  
    $password = md5($_POST['password']);   
   
    $stmt = $conn->prepare("SELECT user_id, username, email, mobile_no FROM ci_users WHERE username = ? AND password = ?");  
    $stmt->bind_param("ss",$username, $password);  
    $stmt->execute();  
    $stmt->store_result();  
    if($stmt->num_rows > 0){  
    $stmt->bind_result($id, $username, $email, $mobile);  
    $stmt->fetch();  
    $user = array(  
    'id'=>$id,   
    'username'=>$username,   
    'email'=>$email,  
    'mobile'=>$mobile  
    );  
   
    $response['error'] = false;   
    $response['message'] = 'Login successfull';   
    $response['user'] = $user;   
 }  
 else{  
    $response['error'] = false;   
    $response['message'] = 'Invalid username or password';  
 }  
}  
break;   
default:   
 $response['error'] = true;   
 $response['message'] = 'Invalid Operation Called';  
}  
}  
else{  
 $response['error'] = true;   
 $response['message'] = 'Invalid API Call';  
}  
echo json_encode($response);  
function isTheseParametersAvailable($params){  
foreach($params as $param){  
 if(!isset($_POST[$param])){  
     return false;   
  }  
}  
return true;   
}  
?>  

标签: phpmysql

解决方案


查看您提供的屏幕截图和 php 代码。您可能忘记在请求正文中发送三个帖子参数,即“用户名”、“电子邮件”、“密码”。在 api 端点中由函数 isTheseParametersAvailable 检查。如https://www.javatpoint.com/android-volley-library-registration-login-logout中所述。您的邮递员请求正文应如下所示。 在此处输入图像描述


推荐阅读