2017-12-29 12 views
0

Wenn ich meine Daten zu meiner Datenbank drücken, bekomme ich ein Problem mit meinem JSON zurück:Syntaxerror - Syntaxerror: unerwartetes Token <in JSON an Position 1 - Ionic

1 
<br/>[email protected]{"userData": {"user_id":"21","name":"eman","email":"[email protected]","username":"username_name","token":"6de6b72ad590562b566675f6f780cb26cf67dc46e73cf025ad5ef7da92735b45"}} 

Scheint mich zurück html und nicht JSON Daten, die folgende Fehlermeldung:

SyntaxError: Unexpected token < in JSON at position 1 
    at JSON.parse (<anonymous>) 
    at Response.Body.json (http://localhost:8106/build/vendor.js:71523:25) 
    at SafeSubscriber._next (http://localhost:8106/build/main.js:757:29) 
    at SafeSubscriber.__tryOrUnsub (http://localhost:8106/build/vendor.js:38232:16) 
    at SafeSubscriber.next (http://localhost:8106/build/vendor.js:38179:22) 
    at Subscriber._next (http://localhost:8106/build/vendor.js:38119:26) 
    at Subscriber.next (http://localhost:8106/build/vendor.js:38083:18) 
    at XMLHttpRequest.onLoad (http://localhost:8106/build/vendor.js:72016:38) 
    at t.invokeTask (http://localhost:8106/build/polyfills.js:3:15660) 
    at Object.onInvokeTask (http://localhost:8106/build/vendor.js:4974:33) 

Hier ist meine API-Code:

postData(credentials, type){ 

    return new Promise((resolve, reject) =>{ 
     let headers = new Headers(); 
     this.http.post(apiUrl+type, JSON.stringify(credentials), {headers: headers}). 
     subscribe(res =>{ 
     resolve(res.json()); 
     }, (err) =>{ 
     reject(err); 
     }); 

ich den ganzen Tag verbracht zu finden versuchen, eine Lösung, überprüfen Sie jeden Beitrag auf SO aber immer noch keine Lösung finden. Es könnte ein Duplikat sein, aber ehrlich gesagt habe ich die Antwort nicht auf anderen Posts gesehen.

--edit-- WebAPI

<?php 
require 'config.php'; 
require 'Slim/Slim.php'; 

\Slim\Slim::registerAutoloader(); 
$app = new \Slim\Slim(); 

$app->post('/login','login'); /* User login */ 
$app->post('/signup','signup'); /* User Signup */ 
$app->get('/getFeed','getFeed'); /* User Feeds */ 
$app->post('/feed','feed'); /* User Feeds */ 
$app->post('/feedUpdate','feedUpdate'); /* User Feeds */ 
$app->post('/feedDelete','feedDelete'); /* User Feeds */ 
$app->post('/getImages', 'getImages'); 


$app->run(); 

/************************* USER LOGIN *************************************/ 
/* ### User login ### */ 
function login() { 

    $request = \Slim\Slim::getInstance()->request(); 
    $data = json_decode($request->getBody()); 

    try { 

     $db = getDB(); 
     $userData =''; 
     $sql = "SELECT user_id, name, email, username FROM users WHERE (username=:username or email=:username) and password=:password "; 
     $stmt = $db->prepare($sql); 
     $stmt->bindParam("username", $data->username, PDO::PARAM_STR); 
     $password=hash('sha256',$data->password); 
     $stmt->bindParam("password", $password, PDO::PARAM_STR); 
     $stmt->execute(); 
     $mainCount=$stmt->rowCount(); 
     $userData = $stmt->fetch(PDO::FETCH_OBJ); 

     if(!empty($userData)) 
     { 
      $user_id=$userData->user_id; 
      $userData->token = apiToken($user_id); 
     } 

     $db = null; 
     if($userData){ 
       $userData = json_encode($userData); 
       echo '{"userData": ' .$userData . '}'; 
      } else { 
       echo '{"error":{"text":"Bad request wrong username and password"}}'; 
      } 


    } 
    catch(PDOException $e) { 
     echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    } 
} 


/* ### User registration ### */ 
function signup() { 
    $request = \Slim\Slim::getInstance()->request(); 
    $data = json_decode($request->getBody()); 
    $email=$data->email; 
    $name=$data->name; 
    $username=$data->username; 
    $password=$data->password; 

    try { 

     $username_check = preg_match('~^[A-Za-z0-9_]{3,20}$~i', $username); 
     $email_check = preg_match('~^[a-zA-Z0-9._-][email protected][a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$~i', $email); 
     $password_check = preg_match('~^[[email protected]#$%^&*()_]{6,20}$~i', $password); 

     echo $email_check.'<br/>'.$email; 

     if (strlen(trim($username))>0 && strlen(trim($password))>0 && strlen(trim($email))>0 && $email_check>0 && $username_check>0 && $password_check>0) 
     { 
      echo 'here'; 
      $db = getDB(); 
      $userData = ''; 
      $sql = "SELECT user_id FROM users WHERE username=:username or email=:email"; 
      $stmt = $db->prepare($sql); 
      $stmt->bindParam("username", $username,PDO::PARAM_STR); 
      $stmt->bindParam("email", $email,PDO::PARAM_STR); 
      $stmt->execute(); 
      $mainCount=$stmt->rowCount(); 
      $created=time(); 
      if($mainCount==0) 
      { 

       /*Inserting user values*/ 
       $sql1="INSERT INTO users(username,password,email,name)VALUES(:username,:password,:email,:name)"; 
       $stmt1 = $db->prepare($sql1); 
       $stmt1->bindParam("username", $username,PDO::PARAM_STR); 
       $password=hash('sha256',$data->password); 
       $stmt1->bindParam("password", $password,PDO::PARAM_STR); 
       $stmt1->bindParam("email", $email,PDO::PARAM_STR); 
       $stmt1->bindParam("name", $name,PDO::PARAM_STR); 
       $stmt1->execute(); 

       $userData=internalUserDetails($email); 

      } 

      $db = null; 

      if($userData){ 
       $userData = json_encode($userData); 
       echo '{"userData": ' .$userData . '}'; 
      } else { 
       echo '{"error":{"text":"Enter valid data"}}'; 
      } 

     } 
     else{ 
      echo '{"error":{"text":"Enter valid data"}}'; 
     } 
    } 
    catch(PDOException $e) { 
     echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    } 
} 
function email() { 
    $request = \Slim\Slim::getInstance()->request(); 
    $data = json_decode($request->getBody()); 
    $email=$data->email; 
    try { 

     $email_check = preg_match('~^[a-zA-Z0-9._-][email protected][a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$~i', $email); 

     if (strlen(trim($email))>0 && $email_check>0) 
     { 
      $db = getDB(); 
      $userData = ''; 
      $sql = "SELECT user_id FROM emailUsers WHERE email=:email"; 
      $stmt = $db->prepare($sql); 
      $stmt->bindParam("email", $email,PDO::PARAM_STR); 
      $stmt->execute(); 
      $mainCount=$stmt->rowCount(); 
      $created=time(); 
      if($mainCount==0) 
      { 

       /*Inserting user values*/ 
       $sql1="INSERT INTO emailUsers(email)VALUES(:email)"; 
       $stmt1 = $db->prepare($sql1); 
       $stmt1->bindParam("email", $email,PDO::PARAM_STR); 
       $stmt1->execute(); 


      } 
      $userData=internalEmailDetails($email); 
      $db = null; 
      if($userData){ 
       $userData = json_encode($userData); 
       echo '{"userData": ' .$userData . '}'; 
      } else { 
       echo '{"error":{"text":"Enter valid dataaaa"}}'; 
      } 
     } 
     else{ 
      echo '{"error":{"text":"Enter valid data"}}'; 
     } 
    } 

    catch(PDOException $e) { 
     echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    } 
} 
/* ### internal Username Details ### */ 
function internalUserDetails($input) { 

    try { 
     $db = getDB(); 
     $sql = "SELECT user_id, name, email, username FROM users WHERE username=:input or email=:input"; 
     $stmt = $db->prepare($sql); 
     $stmt->bindParam("input", $input,PDO::PARAM_STR); 
     $stmt->execute(); 
     $usernameDetails = $stmt->fetch(PDO::FETCH_OBJ); 
     $usernameDetails->token = apiToken($usernameDetails->user_id); 
     $db = null; 
     return $usernameDetails; 

    } catch(PDOException $e) { 
     echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    } 

} 

function getFeed(){ 


    try { 

     if(1){ 
      $feedData = ''; 
      $db = getDB(); 

       $sql = "SELECT * FROM feed ORDER BY feed_id DESC LIMIT 15"; 
       $stmt = $db->prepare($sql); 
       $stmt->bindParam("user_id", $user_id, PDO::PARAM_INT); 
       $stmt->bindParam("lastCreated", $lastCreated, PDO::PARAM_STR); 

      $stmt->execute(); 
      $feedData = $stmt->fetchAll(PDO::FETCH_OBJ); 

      $db = null; 

      if($feedData) 
      echo '{"feedData": ' . json_encode($feedData) . '}'; 
      else 
      echo '{"feedData": ""}'; 
     } else{ 
      echo '{"error":{"text":"No access"}}'; 
     } 

    } catch(PDOException $e) { 
     echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    } 

} 

function feed(){ 
    $request = \Slim\Slim::getInstance()->request(); 
    $data = json_decode($request->getBody()); 
    $user_id=$data->user_id; 
    $token=$data->token; 
    $lastCreated = $data->lastCreated; 
    $systemToken=apiToken($user_id); 

    try { 

     if($systemToken == $token){ 
      $feedData = ''; 
      $db = getDB(); 
      if($lastCreated){ 
       $sql = "SELECT * FROM feed WHERE user_id_fk=:user_id AND created < :lastCreated ORDER BY feed_id DESC LIMIT 5"; 
       $stmt = $db->prepare($sql); 
       $stmt->bindParam("user_id", $user_id, PDO::PARAM_INT); 
       $stmt->bindParam("lastCreated", $lastCreated, PDO::PARAM_STR); 
      } 
      else{ 
       $sql = "SELECT * FROM feed WHERE user_id_fk=:user_id ORDER BY feed_id DESC LIMIT 5"; 
       $stmt = $db->prepare($sql); 
       $stmt->bindParam("user_id", $user_id, PDO::PARAM_INT); 
      } 
      $stmt->execute(); 
      $feedData = $stmt->fetchAll(PDO::FETCH_OBJ); 

      $db = null; 

      if($feedData) 
      echo '{"feedData": ' . json_encode($feedData) . '}'; 
      else 
      echo '{"feedData": ""}'; 
     } else{ 
      echo '{"error":{"text":"No access"}}'; 
     } 

    } catch(PDOException $e) { 
     echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    } 

} 

function feedUpdate(){ 

    $request = \Slim\Slim::getInstance()->request(); 
    $data = json_decode($request->getBody()); 
    $user_id=$data->user_id; 
    $token=$data->token; 
    $feed=$data->feed; 

    $systemToken=apiToken($user_id); 

    try { 

     if($systemToken == $token){ 


      $feedData = ''; 
      $db = getDB(); 
      $sql = "INSERT INTO feed (feed, created, user_id_fk) VALUES (:feed,:created,:user_id)"; 
      $stmt = $db->prepare($sql); 
      $stmt->bindParam("feed", $feed, PDO::PARAM_STR); 
      $stmt->bindParam("user_id", $user_id, PDO::PARAM_INT); 
      $created = time(); 
      $stmt->bindParam("created", $created, PDO::PARAM_INT); 
      $stmt->execute(); 



      $sql1 = "SELECT * FROM feed WHERE user_id_fk=:user_id ORDER BY feed_id DESC LIMIT 1"; 
      $stmt1 = $db->prepare($sql1); 
      $stmt1->bindParam("user_id", $user_id, PDO::PARAM_INT); 
      $stmt1->execute(); 
      $feedData = $stmt1->fetch(PDO::FETCH_OBJ); 


      $db = null; 
      echo '{"feedData": ' . json_encode($feedData) . '}'; 
     } else{ 
      echo '{"error":{"text":"No access"}}'; 
     } 

    } catch(PDOException $e) { 
     echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    } 

} 



function feedDelete(){ 
    $request = \Slim\Slim::getInstance()->request(); 
    $data = json_decode($request->getBody()); 
    $user_id=$data->user_id; 
    $token=$data->token; 
    $feed_id=$data->feed_id; 

    $systemToken=apiToken($user_id); 

    try { 

     if($systemToken == $token){ 
      $feedData = ''; 
      $db = getDB(); 
      $sql = "Delete FROM feed WHERE user_id_fk=:user_id AND feed_id=:feed_id"; 
      $stmt = $db->prepare($sql); 
      $stmt->bindParam("user_id", $user_id, PDO::PARAM_INT); 
      $stmt->bindParam("feed_id", $feed_id, PDO::PARAM_INT); 
      $stmt->execute(); 


      $db = null; 
      echo '{"success":{"text":"Feed deleted"}}'; 
     } else{ 
      echo '{"error":{"text":"No access"}}'; 
     } 

    } catch(PDOException $e) { 
     echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    } 

} 
$app->post('/userImage','userImage'); /* User Details */ 
function userImage(){ 
    $request = \Slim\Slim::getInstance()->request(); 
    $data = json_decode($request->getBody()); 
    $user_id=$data->user_id; 
    $token=$data->token; 
    $imageB64=$data->imageB64; 
    $systemToken=apiToken($user_id); 
    try { 
     if(1){ 
      $db = getDB(); 
      $sql = "INSERT INTO imagesData(b64,user_id_fk) VALUES(:b64,:user_id)"; 
      $stmt = $db->prepare($sql); 
      $stmt->bindParam("user_id", $user_id, PDO::PARAM_INT); 
      $stmt->bindParam("b64", $imageB64, PDO::PARAM_STR); 
      $stmt->execute(); 
      $db = null; 
      echo '{"success":{"status":"uploaded"}}'; 
     } else{ 
      echo '{"error":{"text":"No access"}}'; 
     } 
    } catch(PDOException $e) { 
     echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    } 
} 

$app->post('/getImages', 'getImages'); 
function getImages(){ 
    $request = \Slim\Slim::getInstance()->request(); 
    $data = json_decode($request->getBody()); 
    $user_id=$data->user_id; 
    $token=$data->token; 

    $systemToken=apiToken($user_id); 
    try { 
     if(1){ 
      $db = getDB(); 
      $sql = "SELECT b64 FROM imagesData"; 
      $stmt = $db->prepare($sql); 

      $stmt->execute(); 
      $imageData = $stmt->fetchAll(PDO::FETCH_OBJ); 
      $db = null; 
      echo '{"imageData": ' . json_encode($imageData) . '}'; 
     } else{ 
      echo '{"error":{"text":"No access"}}'; 
     } 
    } catch(PDOException $e) { 
     echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    } 
} 
?> 
+0

warum diese => '
@ mail.comhere' Mail in ressponse bekommen, überprüft Wetter Ihrer api Antwort Prüfung ist es gültig json zurückkehrt? – Onkar

+0

@Onkar das ist die Antwort, die ich von Json bekomme. Ich weiß nicht, warum ich diese
Mail vor meinem JSON bekomme. Es geht gut in meine Datenbank – ChinaXiaoHong

+0

diese Antwort erstellt Fehler beim Auflösen von Json 'resolve (res.json());', seine Ursache für Fehler – Onkar

Antwort

1

Problem ist in SIGNUP() Funktion, zwei mal unerwünschtes Echo gibt es ,

 echo $email_check.'<br/>'.$email;    // remove this unwanted stuff 

     if (strlen(trim($username))>0 && strlen(trim($password))>0 && strlen(trim($email))>0 && $email_check>0 && $username_check>0 && $password_check>0) 
     { 
      echo 'here';   // remove this unwanted stuff 
     .... 

echo $email_check.'<br/>'.$email; entfernt diese unerwünschten Dinge

echo 'here'; entfernt diese unerwünschten Dinge

+0

Vielen Dank! Ich weiß nicht, ob das verwandt ist, aber jetzt bekomme ich ein anderes Problem, das ist vendor.js: 1704 FEHLER Fehler: Uncaught (in Versprechen): TypeError: Kann die Eigenschaft 'user_id' von undefined nicht lesen TypeError: Kann Eigenschaft 'user_id' nicht lesen von undefined – ChinaXiaoHong

+0

@ChinaXiaoHier ist das Problem mit dem Typoskript, überprüfen Sie Ihren Code, der nicht mit dieser Frage verbunden ist – Onkar

1

In Ihrer Anmeldung Funktion müssen Sie diese Zeile entfernen:

echo $email_check.'<br/>'.$email; 
Verwandte Themen