2016-11-10 1 views
0

最近Ionicを使ってアプリケーションを開発し始めました。私がバックエンドソリューションのためにMySQLをよく知っているので、私がしたいのは、フォームから資格を抽出し、MAMPサーバー上のphpファイルにそれらを送信することです。このファイルはアカウントが存在するかどうかをチェックし、応答します。ここでIonic:MAMPサーバーのフォームデータをPHPに送ることができません

は、フォームの:イオンコントローラーで

<form name="loginForm" novalidate> <!-- ng-submit="LogIn(loginForm)" --> 
     <div class="section-big"> 
      <div id="logo_container"> 
       <img src="img/Logo.png" id="logo"> 
      </div> 

      <div id="login_container"> 
       <input class="login_item" name="email" type="email" ng-model="userdata.email" placeholder="email" ng-minlength="5" required> 
       <input class="login_item" name="password" type="password" ng-model="userdata.password" placeholder="password" ng-minlength="5" required> 
      </div> 
     </div> 

     <span> {{responseMessage}} </span> 

     <div class="section-small"> 
      <button type="button" class="button button-full button-outline button-light login-inactive" ng-show="loginForm.$invalid">LOGIN</button> 

     </div> 
    </form> 

機能:

$scope.logIn = function(userdata) { 
    $scope.responseMessage = "in treatement"; 

    console.log($scope.userdata.email) 

    var request = $http({ 
     method: 'post', 
     url: 'http://localhost:8888/login.php', 
     crossDomain: true, 
     headers: {'Content-Type' : 'application/x-www-form-urlencoded'}, 
     data: { 
      email: $scope.userdata.email, 
      password: $scope.userdata.password 
     }, 
    }); 
    console.log("passed"); 

    request.success(function(data) { 
     if(data == "1"){ 
      $scope.responseMessage = "Login Successful"; 
     } 
     else { 
      $scope.responseMessage = "Wrong credentialsemai"; 
     } 
    }); 
    console.log("end reached"); 
} 

(StackSkills上の私の調査結果に基づいて)login.phpファイル:

<?php 
header("Content-Type: application/json; charset=UTF-8"); 
header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods: GET, POST'); 

$postdata = file_get_contents("php://input"); 
$request = json_decode($postdata); 
$email = $request->email; 
$password = $request->password; 

include_once 'dbconnect.php'; 

$request = "SELECT * FROM User WHERE email ='$email' AND password = '$password'"; 
$result = $conn->query($request); 

if($result){ 
    echo "1"; 
} 
else { 
    echo "0"; 
} 
?> 

物事の状態: カレントyでは、logIn関数がトリガされます。 {{ responseMessage }}は変更されないので、私は情報が送られないと仮定します。/ login.phpから情報を戻さないと思います。

誰かがこれを修正するアイデアを持っていますか、それともIonicをMySQLに使用していますか?

EDIT:
データが取得されているが、私はまだ次のエラーのためにそれを送信することができません: SyntaxError: Unexpected token N

ありがとう! PHPであなたの最初の行は、それがJSONでの応答をエンコードしようとしていますがのみ1または0

てみPHPで次の文字列を返していることを意味header("Content-Type: application/json; charset=UTF-8");

あるので

+1

うん...空のオブジェクト '$ scope.userdata = {};' – Hackerman

+0

@Hackerman、うん空のオブジェクトは、それがテストの一部です:それはあります場合、i 'は、他の取得 '未定義'定義されていないプロパティの電子メールを読むことができません.. – TanguyH

+0

あなたは空のオブジェクトを右に宣言しています...そして、下の行には存在しないプロパティにアクセスしようとしています...それがあなたがundefined ....今、あなたはあなたのhtmlに 'ng-controller'指令を追加していますか? – Hackerman

答えて

1

このエラーがあります。

if($result){ 
    echo json_encode(array("status"=>1)); 
} 
else { 
    echo json_encode(array("status"=>0)); 
} 
+0

うまく動作します!説明してくれてありがとう! – TanguyH

関連する問題