2017-12-29 14 views
0

私は私のデータベースに自分のデータをプッシュすると、私は戻って私のJSONに問題が出ます:にSyntaxError - にSyntaxError: - 1位のJSONに予期しないトークン<イオン

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

は、私はJSONのhtmlを取り戻すとないようですデータ、次のエラー:

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) 

ここでは私のAPIのコードです:

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

私が検索しようとして一日を過ごしました解決策は、すべての投稿をチェックするが、まだ解決策を見つけることができません。それは重複した投稿かもしれないが、正直言って私は他の投稿で答えを見なかった。

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

なぜこの=> '
メールの@ mail.comhere'この不要なものを削除し、天気がそれが有効なJSONを返している、あなたのAPIレスポンスのチェックをチェック! – Onkar

+0

@Onkarそれは私がjsonから得る応答です。なぜ私は私のjsonの前にこれを得る
メールを私は知らない。それは私のデータベース – ChinaXiaoHong

+0

json '解決(res.json());'を解決している間、この応答はエラーを作成します。エラーの原因 – Onkar

答えて

1

問題はサインアップ(である)機能、2回、不要な反響があります、

 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;この不要なものを削除し

echo 'here'; ressponseになっ

+0

ありがとうございました!これは関連しているかどうかわかりませんが、今はvendor.jsという別の問題があります:1704エラー:未知(未定):TypeError:未定義の 'user_id'プロパティを読み取れません TypeError:プロパティ 'user_id' undefined – ChinaXiaoHong

+0

@ChinaXiaoHongこれはタイスクリプトの問題です。あなたのコードをチェックしてください。 – Onkar

1

echo $email_check.'<br/>'.$email; 
関連する問題