php - ionic : unable to send form data to php on MAMP server

标签 php mysql ionic-framework ionic2

我最近开始使用 Ionic 开发应用程序。由于我更熟悉用于后端解决方案的 MySQL,因此我想做的是:从表单中提取凭据并将其发送到 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>

Ionic Controller 中的功能:

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

login.php 文件(基于我在 StackSkills 上的发现):

<?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";
}
?>

事情的状态: 目前,logIn 功能已被触发。由于 {{ responseMessage }} 没有改变,我假设信息没有发送/没有从 `login.php 返回。

有谁知道解决这个问题或者仍然使用 Ionic to php for MySQL 的替代方案吗?

编辑:
正在检索数据,但由于以下错误,我仍然无法发送数据: 语法错误:意外的标记 N

谢谢!

最佳答案

这个错误是因为在 php 中你的第一行是 header("Content-Type: application/json; charset=UTF-8");

这意味着它尝试以 json 形式对响应进行编码,但您仅返回字符串 10

尝试在 php 中执行以下操作。

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

关于php - ionic : unable to send form data to php on MAMP server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40536730/

相关文章:

javascript - ajax 发送 POST 两次,从 PHP 接收双重/重复结果

Mysql:阅读 const 表后注意到不可能的地方

php - 新连接上的 MySqli 错误 2014

cordova - Ionic 需要 android target 19 ,我安装了 target 21

php - 如何使用 Angular 和 Ionic 将 Facebook 用户数据保存到 MySql 数据库

php - mb_convert_encoding() 不适用于 phpunit

javascript - 如何正确连接reCAPTCHA?

javascript - 防止保存html内容的多个副本

php - symfony 1.4 & Doctrine 1.2 - 几个表的一个模型

angularjs - 如何找到 Ionic 1 项目中使用的 ui-router 版本?