php - 在 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);
}
但是我如何将它传递给我的颤振应用程序,所以我的应用程序知道它已经注册了电子邮件/用户?
解决方案
我建议你使用 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);