fichier 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"); }
Page de connexion 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, ); } }}
Console :
E/flutter (6084) : [Erreur : flutter/lib/ui/ui_dart_state.cc(198)] Exception non gérée : FormatException : caractère inattendu (à Caractère 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 (package:mes_v1/pages/Authentification/login.dart:25:18) E/Flutter(6084) : E/Flutter (6084) :
Votre code semble sujet aux erreurs, mais concentrez-vous sur votre problème : l'exception semble claire et l'analyse de votre réponse est interrompue. (Je dirais également que vous devriez envelopper votre code avec try/catch pour éviter toute rupture de code et détecter correctement les problèmes).
Laissez-nous résoudre votre problème :
var data = jsonDecode(response.body);
Cela convertira votre chaîne (response.body) en json, ce qui signifie
data
是Map
ouList (où dynamique est une carte ou une autre liste imbriquée), donc ce qui suit n'a aucun sens
if(数据==“成功”){
if(data=="succès"){Maintenant, jetons un œil à votre code php :
echo json_encode("成功");
echo json_encode("succès");Je ne suis pas un expert en php, mais d'après la documentation, il devrait être utilisé comme ceci :
Revenons maintenant à votre code de fléchette :