Входные значения не передаются из Ionic в мою базу данных sql

Я работаю над этим проектом, в котором я передаю значения из моего файла Ionic (TypeScript) в базу данных MySQL. Мой PHP дает мне эту ошибку в почтальоне:

<br />
<b>Warning</b>:  mysqli_num_rows() expects exactly 1 parameter, 2 given in
<b>C:\xampp2\htdocs\authapp\ddregistration.php</b> on line
<b>19</b>
<br />
insert into info_user values ('','','','');
<br />
<b>Notice</b>:  Trying to get property of non-object in
<b>C:\xampp2\htdocs\authapp\ddregistration.php</b> on line
<b>33</b>
<br />
<br />
<b>Notice</b>:  Trying to get property of non-object in
<b>C:\xampp2\htdocs\authapp\ddregistration.php</b> on line
<b>33</b>
<br />
[[null,null]]

Я понятия не имею, почему значения не передаются. Так было даже тогда, когда у меня не было предупреждений и уведомлений от php. Я показываю журнал ошибок, чтобы можно было исправить ошибку должным образом.

Это мой файл register.ts

import { Component, ViewChild } from '@angular/core';

import { NavController, AlertController } from 'ionic-angular';

import { HomePage } from '../home/home';

import {Http, Headers, RequestOptions}  from "@angular/http";

import { LoadingController } from 'ionic-angular';

import { Device } from '@ionic-native/device';

import 'rxjs/add/operator/map';

@Component({

selector: 'page-register',

templateUrl: 'register.html'

})

export class RegisterPage {



@ViewChild("name") name;

@ViewChild("phone") phone;

@ViewChild("imei") imei;

@ViewChild("status") status;


constructor(public navCtrl: NavController, public alertCtrl: AlertController,
      private http: Http, private device: Device, public loading: LoadingController) {

}

Register(){

//// check to confirm the username, email, telephone and password fields are filled

if (this.name.value= = "" ){

let alert = this.alertCtrl.create({

title:"ATTENTION",

subTitle:"Name field is empty",

buttons: ['OK']

});

alert.present();

} else


if (this.phone.value= = "" ){

let alert = this.alertCtrl.create({

title:"ATTENTION",

subTitle:"Mobile number field is empty",

buttons: ['OK']

});

alert.present();

}

else

{

var headers = new Headers();

headers.append("Accept", 'application/json');

headers.append('Content-Type', 'application/json' );

let options = new RequestOptions({ headers: headers });

var data = {

name: this.name.value,

phone: this.phone.value,

imei: this.device.serial,

status:1,


};


let loader = this.loading.create({

content: 'Processing please wait…',

});

loader.present().then(() => {
    var myData = JSON.stringify({name: this.name.value,phone: this.phone.value,
        imei: this.device.serial,status:1});
        console.info("Before",myData);    
this.http.post('http://localhost:82/authapp/ddregistration.php',myData, options)

.map(res => res.json())

.subscribe(res => {

loader.dismiss()

if (res= = "Registration successfull"){

let alert = this.alertCtrl.create({

title:"CONGRATS",

subTitle:(res),

buttons: ['OK']

});

alert.present();

this.navCtrl.push(HomePage);

}else

{

let alert = this.alertCtrl.create({

title:"ERROR",

subTitle:(res),

buttons: ['OK']

});

alert.present();

}

});

});

}

}

}

А это мой php скрипт

   <?php
require "dbconnect.php";
if (isset($_SERVER['HTTP_ORIGIN'])) {

        header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");

        header('Access-Control-Allow-Credentials: true');

        header('Access-Control-Max-Age: 86400');    // cache for 1 day

    }

    // Access-Control headers are received during OPTIONS requests

    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))

            header('Access-Control-Allow-Methods: GET, POST, OPTIONS');        



       if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))

            header("Access-Control-Allow-Headers:        {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

        exit(0);

    }

$name = mysqli_real_escape_string($con,$_POST['name']);
$phone = mysqli_real_escape_string($con,$_POST['phone']);
$imei = mysqli_real_escape_string($con,$_POST['imei']);
$status = mysqli_real_escape_string($con,$_POST['status']);

$sql = "select * from info_user where dboy_device_info like '".$imei."';";

$result = mysqli_query($con,$sql);
$response = array();

if (mysqli_num_rows($result)>0)
{
    $code = "reg_failed";
    $message = "User Exists";
    $response = ['code' => $code, 'message' => $message];

    echo json_encode($message);
}
else
{
    $sql = "insert into info_user (dboy_name,dboy_phone,dboy_device_info,dboy_status)values ('".$name."','".$phone."','".$imei."','".$status."');";

    $result = mysqli_query($con,$sql);
    $code = "reg_success";
    $message = "Registration Success";
    $response = ['code' => $code, 'message' => $message];

    echo json_encode($message);
}

?>

Я новичок и учусь.

array_push($response,array("code"->$code,"message"->$message‌​)); не является допустимым php. Должен быть array_push($response,array("code" => $code,"message" => $message)); или даже лучше $response = ['code' => $code, 'message' => $message];
waterloomatt 25.09.2018 14:16

Покажите, пожалуйста, результат var_dump($postdata);.

waterloomatt 25.09.2018 14:20

Пожалуйста, прочтите При каких обстоятельствах я могу добавить к своему вопросу «срочно» или другие похожие фразы, чтобы получить более быстрые ответы? - вкратце, это не идеальный способ обращения к волонтерам и, вероятно, контрпродуктивно для получения ответов. Пожалуйста, воздержитесь от добавления этого к своим вопросам.

halfer 25.09.2018 16:58

Я отредактировал ряд ваших вопросов. Пожалуйста, постарайтесь воздержаться от замечаний, сделанных с целью просить и умолять, или иным образом принуждать читателей к оказанию быстрой / дополнительной помощи в силу того, насколько вы отчаянно или обеспокоены. Так поступать с волонтерами нельзя: у них своя работа и свои дедлайны.

halfer 25.09.2018 17:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
64
1

Ответы 1

Я думаю тебе это не нужно

$postdata =json_decode(file_get_contents("php://input")) ;

просто получить доступ к данным напрямую вот так

$name = mysqli_real_escape_string($con,$_POST['name']);

Я пробовал это сделать, но данные не вставляются в таблицы

shashank verma 25.09.2018 14:15

Хорошо, я вижу, не преобразовывайте данные здесь ... var myData = JSON.stringify({name: this.name.value,phone: this.phone.value,imei: this.device.serial,status:1});var myData = {name: this.name.value,phone: this.phone.value,imei: this.device.serial,status:1};

Jodeveloper8 25.09.2018 14:45

Я отредактировал свой php-скрипт. Он работает нормально, но не вставляет данные, когда находится на онлайн-сервере. локально он вставляет

shashank verma 25.09.2018 18:14

Передаются только пустые значения

shashank verma 25.09.2018 18:21

вы получаете ошибку перекрестного происхождения в консоли?

Jodeveloper8 25.09.2018 20:37

error syntaxerror неожиданный токен <в json в позиции 0 для строки .map (res => res.json ()). он отлично работает на почтальоне

shashank verma 26.09.2018 15:46

Другие вопросы по теме