2017-10-07 4 views
0

これはPHPコードです。ここでは、ユーザー名とパスワードをionic 3から選択クエリを要求しています私のSQLにデータがある場合、私はイオン3に戻ってきます。もしそうでなければ、これはログインページのために拒否されます。ionic 3でエラーが発生しました:ランタイムエラー予期せぬトークン<0のJSONで、ionic3からPHPに投稿するとき

$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"); 

     } 

私のイオン3コード:これは私がそれが受け入れられたりされていない場合は、PHPでjson_encodeを取得したいボタンのクリック機能に

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(); 

}

サインイン機能であります

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(); 
} 

}

答えて

0

このエラーは、マッピング機能で発生します。レスポンスはJSON形式ではないので、res.json()にマップすることはできません

郵便配達または一部のツールであなたの応答をチェックしてください。そうでない場合はマップ関数を削除し、レスポンスをチェックします。

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

私はちょうど.MAPを削除し、それは私にエラーを与えますが、ボタンをクリックすると、「this.itemsは」NULL値を与えているが、2つの入力値がデータベース内にある、あなたはこれで私を助けることができます停止! ! –

+0

あなたの応答を記録して、私を送ることができますか? –

+0

console.log(res)がエラーを出しています:名前 'res'を見つけることができません。私はマップなしでそれを使用できますか?私はそれを使わずにこれを使いましたが、項目はボタンクリックでヌル値を与えています。これで助けてもらえますか? –

関連する問題