2017-10-07 4 views
0

c'est le code php, ici je demande le nom d'utilisateur et mot de passe de ionique 3 pour faire une requête select s'il y a des données dans mon sql je retournerai à ionique 3 accepté et si non, rejeté ceci est pour la page de connexion.Je reçois une erreur dans l'ionique 3: Erreur d'exécution Jeton inattendu <dans JSON à la position 0 lors de l'envoi à php d'ionic3

$Username= filter_var($_REQUEST['Username'], FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_LOW); 
$Password = filter_var($_REQUEST['Password'], FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_LOW); 
$sql="SELECT Username, Password FROM doctoradd WHERE Username = :Username AND Password = :Password"; 
     //$sql = "INSERT INTO technologies(name, description) VALUES(:Username, :Password)"; 
     $stmt = $pdo->prepare($sql); 
     $stmt->bindParam(':Username', $Username, PDO::PARAM_STR); 
     $stmt->bindParam(':Password', $Password, PDO::PARAM_STR); 
     $stmt->execute(); 
     while($row = $stmt->fetch(PDO::FETCH_OBJ)) 
     { 
     // Assign each row of data to associative array 
     $data[] = $row; 
     } 
     if($data == []){ 
      echo json_encode("null"); 
     } 
     else{ 
      echo json_encode("accepted"); 

     } 

mon ionique 3 code: ceci est le sur le bouton clic fonction

let Username : string = this.form.controls["Username"].value, 
Password : string = this.form.controls["Password"].value; 

    let body  : string = "Username=" + Username + "&Password=" + Password, 
    type  : string = "application/x-www-form-urlencoded; charset=UTF-8", 
    headers : any  = new Headers({ 'Content-Type': type}), 
    options : any  = new RequestOptions({ headers: headers }), 
    url  : any  = this.baseURI + "sign-in.php"; 

this.http.post(url, body, options) 
.subscribe((data) => 
{ 
    // If the request was successful notify the user 
    // if(data.status === 200) 
    // { 
    // //this.hideForm = true; 

    // this.toast.create({ 
    //  message: 'Welcome ', 
    //  duration:3000 


    //   }).present(); 
    // //this.sendNotification(`Congratulations the technology: ${username} was successfully added`); 



    // } 
    // // Otherwise let 'em know anyway 
    // else 
    // { 
    // //this.sendNotification('Something went wrong!'); 
    // this.toast.create({ 
    //  message: 'Wrong Username or Password', 
    //  duration:3000 


    //   }).present(); 

    // } 



}); 


this.SignIn(); 

}

la fonction signin où je veux récupérer le json_encode dans le php si elle est acceptée ou non

SignIn(){ 
this.http.get('http://localhost:10080/testdb/sign-in.php') 
.map(res => res.json()) 
.subscribe(data => 
{ 
    this.items = data; 
}); 
alert(this.items); 
if(this.items=="accepted"){ 
    this.navCtrl.push('ExamplePage',this.username); 
} 
else{ 
    this.toast.create({ 
    message: 'Wrong Username or Password', 
    duration:3000 
      }).present(); 
} 

}

Répondre

0

Cette erreur se produit dans la fonction de mappage. la réponse que vous obtenez n'est pas dans un format JSON, donc vous ne pouvez pas le mapper à res.json()

vérifiez votre réponse dans Postman ou un outil. sinon éliminer la fonction de carte et vérifier la réponse;

SignIn(){ 
this.http.get('http://localhost:10080/testdb/sign-in.php') 
.map(res => res) 
.subscribe(data => 
{ 
    console.log(res); 
    // this.items = data; 
}); 
alert(this.items); 
if(this.items=="accepted"){ 
    this.navCtrl.push('ExamplePage',this.username); 
} 
else{ 
    this.toast.create({ 
    message: 'Wrong Username or Password', 
    duration:3000 
      }).present(); 
} 
+0

je viens enlevé le .map et il a cessé de me donner l'erreur, mais « this.items » donne une valeur nulle en cliquant sur le bouton, mais les deux valeurs d'entrée sont dans la base de données peuvent vous me aider! ! merci youu –

+0

pouvez-vous console connectez-vous votre réponse et envoyez-moi? –

+0

console.log (res) donne une erreur: Impossible de trouver le nom 'res'. puis-je l'utiliser sans le .map? je l'ai utilisé sans elle mais this.items donne une valeur nulle sur le bouton cliquez sur ce que vous pouvez aider avec cela? –