首页 > 解决方案 > 在 Flutter 注册 php 和 mysql 中检查注册用户

问题描述

我有通过 php 和 mysql 进行用户注册检查的颤振应用程序。我在 php 中搜索,例如:

 $sqlUser = "SELECT * FROM users WHERE username = '".$username."'";
    $rs = mysqli_query($con ,$sqlUser);
    $numUsers = mysqli_num_rows($rs);

    if($numUsers > 0) {
        echo "User already exists<br/>";
    }

这是我创建用户的 php 脚本:

 <?php
 require_once 'connectdb.php';

  $user_id= $_POST['id'];
  $username = $_POST['email'];
  $password = $_POST['password'];
  $nama = $_POST['name'];
  $nik = $_POST['nik'];
  $lahir = $_POST['born'];
  $tentang = $_POST['about'];
  $pengalaman = $_POST['exp'];
  $linkedin = $_POST['linkedin'];


$query="INSERT INTO user_info(id, email, password, name, nik, born, about, exp,linkedin)
     VALUES ('$user_id','$username','$password','$name','$nik', '$born', '$about', '$exp', '$linkedin')";
    $exeQuery = mysqli_query($con, $query) ;

     if($exeQuery){
     echo (json_encode(array('code' =>1, 'message' => 'Ajouter avec succée')));
}else {echo(json_encode(array('code' =>2, 'message' => 'Non Terminer')));
 }


 ?>

我的颤振注册:

void _register() async {
    setState(() {
      _isLoading = true;
    });
    var url = "url/newuser.php";

    await http.post(url, body: {
      "email": _emailController.text,
      "password": _passwordController.text,
      "name": _nameController.text,
      "nik": _nikController.text,
    });
    setState(() {
      _isLoading = false;
    });
    onCreatedAccount();
    //print(_adresseController.text);
  }

但是我如何将它传递给我的颤振应用程序,所以我的应用程序知道它已经注册了电子邮件/用户?

标签: phpmysqldartflutter

解决方案


我建议你使用 Dio 库Flutter Dio Library并使用响应从服务器获取数据。

Dio dio = new Dio();
FormData formData = new FormData.from({
  "email": _emailController.text,
  "password": _passwordController.text,
  "name": _nameController.text,
  "nik": _nikController.text,
});
dio
    .post("http://yoururl.com/register.php",
        data: formData,
        options: Options(
            method: 'POST',
            responseType: ResponseType.PLAIN // or ResponseType.JSON
            ))
    .timeout(Duration(seconds: 15))
    .then((response) {
  Map<String, dynamic> data = jsonDecode(response.data);
  if (data['code'] == '1') {
       //success code
  }else{
      //error code
  }

在服务器中:

$response = array();
//do sql test and storing
if(success){
    $response['code'] = '1';
    $response['message'] = 'success message.';
}else{
    $response['code'] = '2';
    $response['message'] = 'error message.';
}
echo json_encode($response);

推荐阅读