fail php:
$email=$_POST['email']; $passworda=$_POST['passworda']; $sql="SELECT * FROM user WHERE email='".$email."'AND passworda='".$password."' "; $result=mysqli_query($db,$sql); $count=mysqli_num_rows($result); if($count>=1){ echo json_encode("success"); } else { echo json_encode("error"); }
Halaman log masuk Flutter:
class Login extends StatelessWidget { TextEditingController email = TextEditingController(); TextEditingController password = TextEditingController(); Future login(BuildContext cont) async { if (email.text == "" || password.text == "") { Fluttertoast.showToast( msg: "please complete!", toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.CENTER, fontSize: 16.0, ); } else { var url = "http://192.168.43.150/v1_flutter/lib/php/connection.php"; var response = await http.post(Uri.parse(url), body: { "email": email.text, "pass": password.text, }, headers: {"Accept":"applicarion/json"}); var data = jsonDecode(response.body); if (data == "success") { Navigator.pop(cont); Navigator.pushNamed(cont, "/registre"); } else { Fluttertoast.showToast( msg: "The user and password does not exist!", toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.CENTER, fontSize: 16.0, ); } }}
Konsol:
E/flutter (6084): [Ralat: flutter/lib/ui/ui_dart_state.cc(198)] Pengecualian tidak dikendalikan: FormatException: Watak tidak dijangka (at Watak 1) E/Flutter (6084):
E/Flutter(6084):^ E/Flutter(6084): E/Flutter(6084): #0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1383:5) E/Flutter(6084): #1 _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1250:9) E/Flutter(6084): #2 _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:915:22) E/Flutter(6084): #3 _parseJson (dart:convert-patch/convert_patch.dart:35:10) E/Flutter (6084): #4 JsonDecoder.convert (dart:convert/json.dart:612:36) E/Flutter (6084): #5 JsonCodec.decode (dart:convert/json.dart:216:41) E/Flutter (6084): #6 jsonDecode (dart:convert/json.dart:155:10) E/Flutter (6084): #7 Login.login (pakej:mes_v1/pages/Authentication/login.dart:25:18) E/Flutter(6084): E/Flutter (6084):
Kod anda kelihatan mudah ralat, tetapi memfokuskan pada masalah anda: pengecualian kelihatan jelas dan penghuraian respons anda rosak. (Saya juga akan mengatakan bahawa anda harus membungkus kod anda dengan cuba/tangkap untuk mengelakkan sebarang masalah pecah kod dan menangkap dengan betul).
Biar kami selesaikan masalah anda:
var data = jsonDecode(response.body);
Ini akan menukar rentetan anda (response.body) kepada json, yang bermaksud
data
是Map
atauList (di mana dinamik ialah Peta atau senarai bersarang lain), jadi perkara berikut tidak masuk akal
if(数据==“成功”){
jika(data=="berjaya"){Sekarang, mari lihat kod php anda:
echo json_encode("成功");
echo json_encode("berjaya");Saya bukan pakar php, tetapi dari dokumentasi ia harus digunakan seperti ini:
Sekarang mari kembali kepada kod dart anda: