Exception non gérée : FormatException : Caractère inattendu (au caractère 1) E/flutter (6084) : <br /> E/futter (6084) : ^
P粉891237912
P粉891237912 2024-03-26 09:13:45
0
1
472

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) :

P粉891237912
P粉891237912

répondre à tous(1)
P粉244730625

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 dataMap ou List (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 :

$response = array("result" => "Success");
echo json_encode($response);

Revenons maintenant à votre code de fléchette :

var success = false;
    try{

      final baseUrl = "http://192.168.43.150"; // Use final wherever you can
      final url = "$baseUrl/v1_flutter/lib/php/connection.php"; // Improving flexibility

      final body = {
        "email": email.text,
        "pass": password.text,
      }; // Decouple in variables for readability

      final headers = {"Accept":"application/json"}; // Fix typo

      final response = await http.post(Uri.parse(url), body: body, headers: headers);
      final data = jsonDecode(response.body);
      success = data["result"] == "Success";
   } catch(e) {
      print("Catched an error!");
      print(e);
      success = false;
   }

   if(success) {
   ...
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal